practical blockchain system
Just to get it out of the way: BLOCKCHAIN ! ! !.
Even dough I recently do not work with blockchain, I still believe in the technology. I do not believe in the currencies, they are mostly fraught. That still does not change anything on the value of blockchain.
So far, I worked with three big blockchain systems. Hyperledger Fabric, Hyperledger Sawtooth and BigchainDB. They all have in common the different focus of use case. They try to make business and organizations work more effective together.
Working with these systems, I learned log about the architectures of blockchain and business applications. In Fabric there is a great separation of responsibilities for the different components. These components (endorser/orderer/ledger) can each execute one part of the infrastructure and make sure to process lots of transactions. As a storage Fabric can use various database management systems.
Sawtooth is storing data in a local merkle tree. I believe you are not able to store as much data in the sawtooth store as you can do in Fabric or bigchainDB. There is an other feature that surprised be a lot. They have the ability to let the users generate their rsa-key-pair in the browser. Also the user can create and sign transactions in browser so that the sever never need to see the private key. As I had analysed, it would be possible to implement that feature as well for fabric. but it would require a major rewrite of the SDK.
On the technical part it is nice and good, still I see there is space for a system, that is able to cover many use cases that other blockchain architectures do not have in mind. I see that todays blockchain systems do not have the sovereignty of organizations of companies in mind. Sure, it would be a dream if companies would share data more openly. Still I do not believe that companies and government organizations would ever be able (and for sure not willing) to open all data goes into the decision for the execution of transactions. I believe organizations and individuals have to be able to do independent decisions if they accept certain transactions or not(during the endorsement process).
A second huge feature I see missing is what I call fragmentation. I believe to participate on a blockchain it should not be required to download and verify each and every transaction. I have my wallet, My car or my house or my stock portfolio, I don’t care about the wallet of my neighbor, I don’t care about the fishing licence of Joe Public in Bavaria and for sure i don’t care about the beer bottle with the id a83aebd7-8a6c-46cc-83c8-8b99bba195d5
was warm when it was served in London. Still I want to be sure, that when someone makes a decision to stand by it (within reasonable limits).
And third, setting up a blockchain system has to be reasonable easy to manage. Almost like the famous 5-minutes installation of a wordpress website. As long as setting up blockchain systems requires large teams of developers, and expert knowledge in economy, politics and computer science, I do not believe that blockchain has a real chance for a wide adoption.
You know, based on that assumption, I believe it would be possible to combine the advantages of all systems and create a blockchain architecture, that consist of distributed components for great scalability, allow user determined management of their crypto materials, support lots of transactions on a single channel, store huge amounts of data in a ledger database, verify a transaction against a blockchain without downloading and storing all data ever.
how can that be done? look at the next post.