The main challenges that all fintech startups based on blockchain facing are assuring the security, lowering the high transaction costs, and supporting the high performance for processing the huge number of transactions.
Thus, lots of founders are coming up with an idea to consider the private network instead of Ethreum with a well-developed ecosystem. Indeed, it is easier to start with the Ethrereum for a simple wallet management app or any fintech startups leveraging the blockchain technologies for the financial services.
However, there are lots of technologies and solutions available in the market to revise the way of thinking and private blockchains are commonly used in the fintech domain due to the high performance and security.
Blockchain is known to be immutable, which is both its strongest and weakest point.
Transactions immutability does not mean data stored in the blockchain cannot be changed, for example, it is possible to alter data stored in smart contracts, but all those changes are stored in the database and smart contracts (or similar solution) should assume upfront what kind of changes would be made and allow such functionality.
All in all architecture and implementation of blockchain application requires lots of upfront planning (you cannot change what was not planned to be changed initially) which goes against modern development methodologies (agile).
Internally, we've designed the Blockchain cards - a solution for software architects for fast and easy decision making in designing blockchain-driven systems. It substantially decreases the timelines for Senior Architects, Business owners to make reasonable tech decisions based on the Consensus Algorithms Comparison.
In the blockchain world, there are 2 different camps for implementing business logic:
- Smart Contracts popularized by Ethereum. Works on top of the blockchain introducing itself as an abstract super-computer. However, capabilities of smart contracts are quite limited and in many cases require external middleware to implement the features they can't do (like getting in data outside blockchain network or scheduling tasks execution, oracles).
- Native business logic. This is the approach used by Sawtooth Lake with their "transaction families" or Exonum with their "services". Assumes implementing business logic as a part of blockchain technology itself with widespread programming tools. This approach is much more flexible than smart contracts, but harder to start with. Usually, it is a good idea to have as little as possible business logic on the blockchain side and as much as possible on the common back-end side, e.g. using habitual programming languages and frameworks for business logic and blockchain for storing data (raw and computed).
Which solution to choose for fintech startups?
There is no silver bullet or any other ultimate solution in the world of private blockchains. All of the solutions have their pros and cons and should be chosen based on actual project needs.
Here are a few solutions we use most often:
Quorum - JP Morgan's fork of Ethereum. Not lightweight by any means and relatively slow. Recommended for cases where anonymous transactions and anonymous smart contracts are a must.
Hyperledger Sawtooth Lake - Intel's blockchain solution, part of Hyperledger initiative. Ultra-fast and very flexible. However, it is harder to start with, comparing to Ethereum and its forks. Recommended for projects with high-performance requirements or moderate to a high amount of business logic in the blockchain.
However, if we talk about the compatible and lightweight solution for the fintech projects aiming to process the cross-border payments, multi-currency transactions via distributed exchange - Stellar is the suitable one. The core dev team consists of the ex CTO and ex CEO at Stripe ( well know USA payment gateway), founders of AngelList, and WordPress.com.
In fact, Stellar - is a decentralized network of servers that can store the info about the transactions that occurred in this network. The main advantage of this network that it doesn't depend on any single server. The logic is that Stellar ledger records a list of all the balances and transactions belonging to every single account on the network.
In case you want to swap the information between the counterparties ( banks or other financial institutions) and allow them to have the security access to the info about the transactions, parties, exchange rates, etc by providing the private key for encrypting the info - Stellar blockchain can easily do it.
Despite all the hype, Blockchain is just a very slow distributed immutable database from a technical standpoint. Technically it is possible to store files as is within Blockchain, but this is super expensive (requires lots of gas in Ethereum terms) and impractical.
Anyway, Stellar is very lightweight as every validator creates his own list of validators. It is done on the Stellar Consensus Protocol (SCP) based on the decentralized control, low latency, flexible trust, asymptotic security. The consensus is reached when all nodes update their ledgers and externalize the same value.
This is how it looks like:
As participants don't get the mining rewards, It causes instability in the network and fewer validators. It means that it will be hard to persuade the community to trust this network.
In any case, It is also the compatible solution for building the different banking tools, apps working with the transactions, and as it could proceed around 600 K transactions with 0,01 USD fee.
From the security perspective, Stellar's expressive but purposely limited system for smart contracts limits the potential to write exploitable code, so it means that it's ideal for applications that don't require the full generality of Turing-complete smart contracts.