The Sikoba Network is designed to be a high-performance blockchain application that is ready for mass adoption. It will support millions of users without needing any knowledge of cryptocurrencies.
The Sikoba Network will be accessible via the sikobaPay mobile app, a web interface, and APIs. The network itself will consist of gateways to filter and pre-validate requests and transactions, passive nodes that respond to queries, and consensus nodes that process transactions and ensure a consistent state. Later on, depending on transaction volume, we may also add clearing nodes to the mix.
The back-end has three components:
* a Server to handle user requests* a Transaction Processor to manage and execute submitted transactions* a Services component to execute periodic actions and perform clearing
All of these components are written in the Crystal programming language using the Lucky web framework. We use PostgreSQL to store data and Redis to store queued transactions. The entire system is built with and runs in Docker.
The Sikoba front-end consists of the sikobaPay mobile app, available for both Android and iOS (currently in beta) and a web interface (currently under development).
The mobile app is written in React Native, while the web interface is written in React JS. Both communicate with the backend via a RESTful API.
We are currently working on building our blockchain layer using Babble, a very simple to use Distributed Consensus Middleware. We had already tested an earlier version of Babble in mid-2018 and have looked at two other blockchain middlewares in the meantime (including Fantom Lachesis) but finally decided on Babble because it is the simplest.
Users will not communicate directly with the blockchain nodes but will connect with gateways whose role will be to pre-filter messages. This will help protect the network against spam attacks and open up the possibility of having both passive nodes (responding to read-only queries), consensus nodes (processing transactions that potentially modify state), and clearing nodes (to perform ongoing optimisation of IOUs).
Cryptography and Biometrics
For signing transactions, we use the same elliptic curve cryptography as Bitcoin, Ethereum and many other blockchains, i.e. the curve Secp256k1. For the hashing function, we use both Sha256 and Argon2, depending on the use case. Our approach focuses on usability, meaning that users do not necessarily need to know about private key management and practical account recovery methods must be available.
Every user will have an associated Sikoba account number, for example:SKOA-K0FP-RUNT-X3W0-FU0MThese account numbers are linked to the account's master key.
As to other technologies, we have started to work on integrating a facial recognition feature using OpenCV and open-source deep learning / neural network software.
4 Q 2020