Macro comparison of Bitcoin, Ethereum, and hyperledger technologies

1. The biggest confusion: what is worldstate?

 

There is no account concept in Bitcoin, all balances are UTXOcalculated. There is an account concept in both Ethereum and hyperledger. Ethereum accounts are divided into ordinary accounts and contract accounts. Each account corresponds to a permanent storage space, which stores the account's ether balance, bytecode, counter (used to prevent replay attacks), and other key-value pairs. The account in hyperledger is the account chaincodeID. Each chaincode (chaincode is the name for smart contracts in hyperledger) is an account, and each account also has a permanent storage space for storing custom key-value pairs. The permanent storage space in Ethereum and hyperledger is worldstate.

 

2. Where exactly is worldstate stored?

 

This problem confuses Bitcoin developers even more, because with Bitcoin, each node maintains a complete blockchain and no other data needs to be stored. And for Ethereum and hyperledger, where is the worldstate information (that is, account-related information) stored? Is it in the blockchain or somewhere else? That is, on-chain storage or off-chain storage? The answer is off-chain storage. In fact, each block of Ethereum and hyperledger will just contain a hash of the entire data set of the current corresponding worldstate, called worldstate-hash. The complete data of the Ethereum worldstate is stored under ~/.ethereum, and the worldstate data of /var/hyperledger/production/dbhyperledger is stored under.

 

3. The block speed is different

 

Everyone should be clear about this. Bitcoins are issued once every 10 minutes on average (for beginners, explain a little, it is average, not fixed. The processing logic is that as long as the miner calculates the answer, the block will be generated immediately, which can be as fast as a few seconds or as slow as a few hours. Possibly), Ethereum is an average of more than ten seconds, and hyperledger defaults to 1 transaction to produce a block, and also supports a CommitTxBatchmode where multiple transactions produce a block (just my understanding, not fully verified). That is to say, when there is no transaction, hyperledger will not produce a block. For example, if there is no transaction for one day, no new block will be generated for one day. Unlike Bitcoin and Ethereum, blocks will be generated even if there is no transaction (because miners themselves will publish coinbase transactions and earn mining fees).

 

4. The consensus mechanism is different

 

Bitcoin is the originator of PoW, Ethereum also adopts PoW at present, and hyperledger uses ibm version of PBFT. PoW all need to design tokens (Bitcoin and Ethereum, used to reward miners and prevent attacks), PBFT does not necessarily, so the current hyperledger does not have built-in tokens.

 

5. Do Ethereum and hyperledger support SPV?

 

Bitcoin’s success SPV is a big part of it. The genius of Satoshi Nakamoto manifests in many ways, and SPV is one of them. If there is no SPV I believe that few people play bitcoin now. Imagine what kind of experience it is to download a wallet and wait for several days to synchronize before using it! I haven't looked into whether Ethereum currently supports SPV. But hyperledger is currently not supported (currently speaking is the fabric 0.6.1 version), not supporting SPV will be a disaster!

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324931947&siteId=291194637