...by Daniel Szego
quote
"Simplicity is the ultimate sophistication."
Leonardo da Vinci

Wednesday, July 6, 2016

Notes on Blockchain privacy and private Blockchains


Blockchain applications like Bitcoin or Ethereum are highly secure by design, despite some of the data that is stored in the Blockchain are actually far from being private. Even in the Bitcoin Blockchain practically every pieces of transaction and account are visible even with a simple browser, like Bitcoin Block explorer. That is certainly not a desired functionality, professional Blockchain 2 Customer or Blockchain 2 Business services would require extended information privacy. Let we just summarize some of the possibilities.

- decentralized public ledger: that is the most basic model, all accounts and all transactions are publicly available, all mining and validating nodes of the network run public as well.  

- private identity: all transactions and accounts are visible in the blockchain however identity behind an account is practically impossible to identify. There are attempts for such a mechanism in Bitcoin protocol with the always newly generated addresses. 

- private transactions: well it is pretty difficult question. On the one hand all transactions have to be validate by all nodes, on the other hand it is a normal customer requirement that certain transactions should be fully analysed only from theirs owner and not from other third party users. If the two requirements technically satisfiable in the same time is questionable.  
  
- private network nodes: processing and mining of information is not available for everyone, but only a certain group has got the privilege to do. 

- private blockchain: the whole blockchain is not available for everyone and does not contain every transactions but only transactions of a certain application and party of member companies are recorded and certainly the information is only for this group visible. 

The major question is certainly if it makes sense to create such a private blockchain applications or is it better to use for such a scenarios classical client server models.