Hello there! I am Wiebe-Marten, the Technical Officer of the FintechFans project, and I am very eager to tell you more about what is going on behind the scenes. I frequently visit meetups and other gatherings on working with block chains or programming in general. Inevitably, the FintechFans project comes up from time to time, and people ask me all kinds of questions.
Since some questions reappear regularly, it seemed like a good idea to write a more detailed answer to some of them. One of the most asked questions – if not the sole most asked question – is ‘Why do you use the Ethereum Blockchain for this project?’.
This question is of course by no means a surprise: After all, according to Coinmarketcap, there are currently at least 1384 cryptocurrencies in existence (And although there by no means is a 1:1 correspondence between the number of cryptocurrencies and number of block chains and other distributed ledgers out there, this does give a rough indication of the explosion of technological directions of innovation that are currently being tried). We are aware of at least seven different platforms that allow to create, host and maintain some form of Smart Contracts, and choosing between them is by no means a decision to take lightly.
But let’s take a step back. Before answering why we chose Ethereum specifically, we need to answer a question that is arguably a lot more important: 'Why does the FintechFans Decentralized Marketplace need a block chain at all?'
One of my firm beliefs is that ‘Blockchain’ when used only as a marketing tool is very dangerous. The use of a block chain is a wonderful stepping stone in projects where it makes sense to do so. But it is by no means a complete solution on its own! It will not magically fix all of the world’s problems. And in many cases, you should definitely not use a block chain for your project:
When you need a fault-tolerant system, you can either choose a technology built on top of CRDTs(Conflict-Free Replicated Data Types) if they are trustworthy, or a DHT (Distributed Hash Table) if they are not. Only when the absolute ordering of all events is a requirement for the project does it make sense to use a block chain.
When a block chain is used naïvely, this will result in an application that is slow, complex, and difficult/expensive to maintain.
So keeping all this in mind, why did we decide to still choose a block chain for our project?
The answer is that we do want all information in the data store of the Decentral- ized Marketplace to be fully ordered. For this system this makes a lot of sense, because the placing, responding to, fulfilling and finishing of advertisements is an ordered process.
Furthermore, in-between multiple freelance job advertisements there also is a causal ordering of which job was created first, as well as which reviews happened before other reviews. This causal information is important for the reviewing process that lies to the core of the marketplace.
The fact that you can pay using cryptocurrencies automatically through the Smart Contracts themselves was not something that influenced our initial choice to use a block chain, but it definitely can be considered another advantage of using an established block chain layer to build on top on.
As mentioned before, there are between seven and ten different ledger-like platforms that allow some form of Smart Contract deployment process, depending on what exactly you call a ‘Smart Contract’:
Bitcoin itself offers some minimal scripting possibilities, but there is only very limited space to do so, and the scripting language is (on purpose!) turing incomplete.
Ripple used to have a Smart Contract platform called Codius, but unfor- tunately it is no longer maintained.
Hyperledger (Fabric, Sawtooth) has strong development and permissioning capabilities, but is not made to work in a public environment.
NEO is a project that claims that you will be able to write code in a large group of well-known programming languages and have them compile to their own smart contract bytecode.
NEM, which uses Proof-of-Importance to allow for fast transactions and it includes a ‘smart asset’ system called Mosaics.
Ethereum, which has been worked on since 2013, and was the first platform to allow turing-complete scripting and a lot of versatility with smart contracts calling other smart contracts directly.
For our project, the choice quickly narrowed to one between Ethereum, NEM and NEO. The main reason we went with Ethereum for the Decentralized Marketplace is that it currently is the most mature of the three. This does not mean that the other two projects are worse, per se: We are keeping an eye on the developments there, and we might consider using them for future projects when the time is there.
However, for the Decentralized Marketplace, Ethereum makes the most sense: We do not need an extremely high throughput rate because advertisements and responses on them are not something that need to be committed in real time. In exchange for the slightly slower block times of Ethereum vs NEM and NEO, we do gain a large advantage: The whole existing Ethereum infrastructure.
There are a lot of existing Smart Contracts and assets already on Ethereum. Being interoptable with these resources is absolutely wonderful for the job marketplace we are going to build: It will allow you to pay for services in any of the ERC20-compliant tokens that are out there, as well as build your own contracts that interact with the marketplace directly. Maybe, in the future, some other contracts might automatically create or fulfill certain job openings!
And besides the infrastructure on the block chain itself, Ethereum’s developement tooling is currently also superior to the tooling of the other systems out there. For a project in which it is so important to get it right the first time because there is no way to alter the code after the fact, this is very important.
So, there you go. We use a block chain because the Decentralized Marketplace requires full ordering both because its reviewing system is ordered and because it is dealing with money. We use the Ethereum Blockchain specifically because it currently is the most mature smart-contract supporting public block chain out there, and it allows interopatibility with a large ecosystem of existing infrastructure.