I am wondering why Bitcoin's inter-block time is 10 minutes, whereas it is only about 15 sec in Ethereum. Given both Bitcoin and Ethereum are based on PoW consensus algorithm, why not decreasing the inter-block time in Bitcoin to be as Ethereum and thus increase the system througput?
Bitcoin and Ethereum inter-block time difference
256 views Asked by Noureddine At
1
There are 1 answers
Related Questions in ETHEREUM
- The newer Hyperledger-fabric version doesn't contain membersvr module, instead by orderer?
- Unable to query on chaincode example 2
- Cannot "Query" hyperledger-fabric, error code -32003
- Cannot build "chaintool/example02"
- peer node start => Cannot dial to 0.0.0.0:7050, because of grpc: timed out when dialing
- Error building peer: "bzip2 data invalid" in goshim.tar.bz2
- Hyperledger Fabric v0.6 using Docker Toolbox
- What is the ibm bluemix blockchain port for events?
- initDeliver -> ERRO 129 Cannot dial to 0.0.0.0:7050, because of grpc: timed out when dialing
- IBM Blockchain (Hyperledger) - "Error when deploying chaincode"
Related Questions in BITCOIN
- The newer Hyperledger-fabric version doesn't contain membersvr module, instead by orderer?
- Unable to query on chaincode example 2
- Cannot "Query" hyperledger-fabric, error code -32003
- Cannot build "chaintool/example02"
- peer node start => Cannot dial to 0.0.0.0:7050, because of grpc: timed out when dialing
- Error building peer: "bzip2 data invalid" in goshim.tar.bz2
- Hyperledger Fabric v0.6 using Docker Toolbox
- What is the ibm bluemix blockchain port for events?
- initDeliver -> ERRO 129 Cannot dial to 0.0.0.0:7050, because of grpc: timed out when dialing
- IBM Blockchain (Hyperledger) - "Error when deploying chaincode"
Related Questions in CONSENSUS
- The newer Hyperledger-fabric version doesn't contain membersvr module, instead by orderer?
- Unable to query on chaincode example 2
- Cannot "Query" hyperledger-fabric, error code -32003
- Cannot build "chaintool/example02"
- peer node start => Cannot dial to 0.0.0.0:7050, because of grpc: timed out when dialing
- Error building peer: "bzip2 data invalid" in goshim.tar.bz2
- Hyperledger Fabric v0.6 using Docker Toolbox
- What is the ibm bluemix blockchain port for events?
- initDeliver -> ERRO 129 Cannot dial to 0.0.0.0:7050, because of grpc: timed out when dialing
- IBM Blockchain (Hyperledger) - "Error when deploying chaincode"
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
The Bitcoin block time was chosen to make sure disk space would not become an issue.
Bitcoin whitpaper (2008): A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore’s Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory.
Another reason is to minimize orphan blocks. Which is a block that has been solved within the blockchain network but was not accepted due to a lag within the network itself. So the block is valid but broadcasted to the network too late. In the Bitcoin blockchain these orphan blocks go to waste, as the miner that mined it gets no reward for it. Which is a waste of computing power.
Also along with the wastage, if multiple nodes start generating the same block simultaneously or within a short period of time, this will lead into multiple and more frequent bitcoin forks, which is unhealthy for the network.
Ethereum, being a smart contract blockchain, needed a block time that was as fast as possible and solved this issue by introducing the Greedy Heaviest Observed Subtree (GHOST) protocol. This protocol included orphan blocks when finding the longest chain after a fork and it also rewarded the miners of these orphans blocks. So their computing power was not completely wasted.
TLDR: The use cases of the Bitcoin and Ethereum blockchains are different and Ethereum needs a faster block time to fulfill its purpose as a smart contract blockchain. A more detailed and technical explanation by Prabath Siriwardena can be found here: The Mystery Behind Block Time