...by Daniel Szego
quote
"On a long enough timeline we will all become Satoshi Nakamoto.."
Daniel Szego
Showing posts with label Proof of Work. Show all posts
Showing posts with label Proof of Work. Show all posts

Friday, September 28, 2018

Nakamoto consensus, quorum and parallel processing


There is a fundamental difference between the two major consensus algorithms: Nakamoto consensus and quorum. Since in Nakamoto consensus always on node "wins" that creates the next block, the whole process is pretty much sequential. It means that the winning block will be a "dictator" for the block to create implying a quasi sequential processing. With that structure a lot of services and algorithms are not too easy to realize, such decentralized random oracle, decentralized external oracle, or decentralized exchange. On the contrary, in a quorum consensus some of the nodes create the next state together, implying a quasi parallel working which provides the real possibility to realize the previously mentioned service and algorithms.

Tuesday, August 21, 2018

the different the roles of proof of work


Proof of work has several different roles in a blockchain protocol. On the one hand, it guarantees that old values of the chain can not be hacked, they would be needed to recalculate the whole blockchain starting from the modified block. On the other hand it is essential to the fork resolution strategy, the longest chain wins actually means that the chain with the most cummulated proof or work wins. These two roles in a Bitcoin or Ethereum protocol combined into one, however they not necessarily must be always combined. Cummulated proof of work could be actually separated from the consitency of the blockchain, as there might be requirements where the cryptoeconomical security of a given transaction should not be increased without end but might be limited after a high enough number.  

Thursday, December 28, 2017

Notes on Nakamoto Consensus



From a theoretical perspective in a blockchain protocol a Nakamoto consensus works as a lottery game, the one who wins the lottery gets the possibility to create the next block. If the next block is faulty or there is a cheat, than there is a huge possibility that the new block will be not propagated successfully to the network, so the winning node does not get a reward. The winning lottery combination or "ticket" is actually a nonce value of the block that is both consistent with the previous block hashed and with the difficulty of the system.

The analogy is actually not 100%, in a blockchain style lottery system the winning ticket might be different or individual for each miner because the coinbase transaction is different for each of them. There should be on a long term always one winning ticket, in short term however it is possible that winning tickets are competing to become final one, it is practically called as standard forking. 

Monday, December 25, 2017

Proof of Useful Work with Proof of Stake


Classical Blockchain systems with Proof of Work have been suffering from the fact that the work for resolving the cryptographic puzzle is actually not a useful one. There are many attempts to overcome this problem, however the real problem is that finding a useful computational problem that can be scaled both with difficulty and with timing to a blockchain algorithm is extremely difficult: 
- Such an algorithm has to have a difficulty level that can be adjusted based on the miners or validators. 
- The algorithm has to produce result in a certain time frame. 
There is only one attempt that managed successfully to find such an algorithm, that is Primecoin. 

There is however a fundamentally different approach to deal with Proof of Userful work and that is actually via Proof of Stake. In Proof of Stake something has to be deposited as a stake to provide an incentive to stabilize the network. This deposit can be actually produced with the help of a scare resource that might be a computationally intensive algorithm that is doing something useful. In this way several problems of a classical Proof of Work system is eliminated: the useful algorithm must not necessarily be solved in a certain timeframe, the difficulty should not be necessarily varied, and what is most important the actual miners should not compete on the resources but everyone who puts work in gets rewarded. 

Certainly, there are some open questions as well: 
- How can be guaranteed and measured that a certain amount of work has been really carried out ?
- How can be made sure that the resulting algorithm and consensus really provide a Nash equilibrium to maintain the consistency of the network,    

Monday, December 18, 2017

Proof of Useful Work in Hashgraph


Hashgraph algorithms actually do not really need a Proof of Work algorithm, the voting itself can be realized by the graph itself with a relative minimal cost, the only issue that remain how the system should avoid Sybil attacks. Here one of the idea might be to use some kind of a tokens for voting and the token distribution can be controlled in a way. One of the idea for the voting token distribution can be simply a consortium network scenario, the other one is a something similar to a Proof of Stake. 

However the voting token distribution can be controlled with the help of a Proof of useful Work algorithm as well. Everyone who did some amount of useful work get tokens in the system to vote. Such a mechanism provide several advantages comparing to classical Proof of Work of a Blockchain system. In Hashgraph Proof of Work we do not need rounds, so the work itself must be not scalable to blocks, it might vary and take largely different amount of time frames. On the other hand, the proof of work should not be competitive as in Bitcoin for example where the fastest wins and the rest of the efforts will be lost. Here, practically every piece of work will be regarded with tokens, so they are considered as valid.    

Certainly, there remain some open question. On the one hand, how can be proved that the amount of work was really done. On the other hand, it must be analysed by game theoretical perspective if maintaining the system is a Nash equilibrium.