本系列分享一些关于区块链的深度技术见解。 区块链,作为分布式系统的一种形式,其通过区块高度建立区块链的顺序,在几乎所有基于PoW共识出块的公链系统中,都需要使用动态的难度调整机制,以在全网算力大小动态变化的情况下,控制固定的区块时间。例如在bitcoin中,区块时间被为10分钟。 那么,在中本聪设计Bitcoin之初,为何选取10分钟为区块时间?为何不选取更短的区块时间,以加快区块生产速率呢?如果这样,比特币交易的处理速度就会快得多。 Satoshi Nakamoto (比特币的发明者)自己决定,区块生产速度应保持每 10 分钟 1 个区块的稳定平均速度。这是因为,区块链估计需要 10 分钟将最新区块传播到全球所有节点,以便区块链保持适当的同步。 如果块以更快的速度生成,地球另一端的一些节点可能无法足够快地赶上最新的交易数据,这可能导致节点不再正确对齐,从而导致“叔块”(链分裂),这基本上是一个区块链必须尽可能避免的事情,以便保持安全。换言之,其目的在于防止主链频繁fork出现支链。 有好奇心的读者可能会发问,同样是PoW共识算法的以太坊,为什么可以做到17秒的区块时间呢? 以太坊通过GHOST协议来实现对区块时间的加速。幽灵协议,英文为“GHOST(Greedy Heaviest Observed Subtree) Protocol”,由 Yonatan Sompolinsky 和 Aviv Zohar 在 2013 年 12 月提出。GHOST 是一种主链选择协议,经典的 PoW 共识协议是取最长链为主链的原则,进行下区块的选择。GHOST 协议是包含子树数目最多为基本原则,进行下区块的选择,这是 GHOST 与 POW 协议的最大差异也是唯一差异。 统计上,以太坊有 10% 的分叉率。因此以太主网发生分叉后尽快合并以维护主网的同意尤为重要。 下图中,假设一个大型矿池 A 打包了一个黑色的 3 号区块,并将 3 号区块 flooding 发送出去,告知其他矿工 3 号区块已经被 A 挖掘出来了。以太坊中的出快时间是 15 秒,在 15 秒内这个 3 号区块并没有完全扩散到整个区块链网络中,因此其他没有收到这个区块的节点会继续挖掘 3 号区块。 发布了 3 号区块之后 A 继续挖 4 号区块,在此过程中 A 陆续收到了其他节点挖出的 3 号区块的通知。上图中假设 A 收到了来自其他四个节点发布的 3 号区块(上图中灰色表示,分别是 3A、3B、3C 和 3D (代表叔块而不是父块)),A 收到这四个区块之后,意识到必须尽快挖出 4 号区块以证明自己所在的链才是主链,让他们在 A 发布的 3 号黑色区块上继续挖掘 4 号区块。有什么办法让其他节点认同并合并到 A 发布的 3 号区块呢? A 会在正在挖掘的 4 号区块上打包两笔铸币交易(因为以太坊规定每个区块最多包含 2 个对叔父区块的奖励),这两笔交易分别奖励给发布 3A 和 3B 区块的矿工,这两笔交易的价值分别是出块奖励的 7/8,即 3A 和 3B 被 A 招安,除了出块奖励以外,还能获得出块奖励额外 1/32 的奖励。 这样,3A 和 3B 在收到招安奖励后,会停止在 3A 和 3B 继续挖矿而是会在 A 的 4 号区块后挖掘,因为他们已经获得了叔块奖励,继续挖掘的意义不大。 3C 和 3D 几乎同时与 3A 和 3B 发布区块,后者得到了奖励,那么前者就要被主网抛弃吗?显然,这是不合理的。所以以太坊考虑到一个区块会发生多个分叉的情况,设计了二代叔块概念,即当在 4 号区块之后的 5 号区块的发布者可以继续招安 3C 和 3D,但是因为区块中间隔着 3 号区块,3C 和 3D 仅可以获得 6/8 的出块奖励。而 5 号区块的发布者可以获得出块奖励之外的额外 1/32 的招安奖励。 通过GHOST协议,未被包含在主链中的叔块与二代叔块同样可以获得挖矿奖励。但值得注意的是,这些叔父区块后面继续挖掘出来的区块不会得到任何奖励,这是为了激励其他区块在发现最长的区块链之后尽快进行合并。 作为系列第一篇,我们阐释了block time的含义及作用,以及在PoW共识中Bitcoin与Ethereum不同的处理方式。下一篇我们将把目光放在timestamp,讨论其在调整区块难度方面的作用,以及其潜在的不足。 参考: 1. https://www.chainnews.com/articles/795894083736.htm 2. https://blog.ethereum.org/2015/09/14/on-slow-and-fast-block-times/ 3. https://www.chainnews.com/articles/910462138902.htm 4. https://medium.facilelogin.com/the-mystery-behind-block-time-63351e35603a 5. https://medium.com/@neerja28/the-blockchain-technology-a-beginners-guide-to-cryptocurrency-heists-5476d4c8d5ea 6. https://bitcointalk.org/index.php?topic=10241.20 7. https://en.bitcoin.it/wiki/Weaknesses 8. https://en.bitcoin.it/wiki/Block_timestamp 9. https://bitcoin.stackexchange.com/questions/20479/how-accurate-is-bitcoin-network-time 10. http://culubas.blogspot.com/2011/05/timejacking-bitcoin_802.html 11. https://blog.bitmex.com/bitcoins-block-timestamp-protection-rules/ 12. https://arxiv.org/pdf/1803.09028.pdf 13. https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-January/015677.html 14. https://mp.weixin.qq.com/s/LQqs47kBEbHqUGc3wH7G4g 15.https://github.com/ethereum/wiki/wiki/Problems/89fd07ffff8b042134e4ca67a0ce143d574016bd 16. https://vitalik.ca/general/2019/11/22/progress.html —- 编译者/作者:链博科技 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
链博科技区块链深度技术解析(一):PoW&Block Time
2019-12-12 链博科技 来源:区块链网络
LOADING...
相关阅读:
- 凌姗说币:8.1比特币,以太坊持续拉升,手上空单如何获取解套2020-08-01
- Coinbase考虑添加新的ETH DeFi代币,例如Kava,AMPL2020-08-01
- 以太坊经典区块链因一名矿工重组而分裂2020-08-01
- DeFi项目yEarn.Finance是否能带来丰厚的利润?2020-08-01
- 日报丨蚂蚁集团发布国内首款区块链自研软硬件一体机2020-08-01