区块链概论
  • 前言(ver 2023)
  • 第一章 区块链底层概念
    • 1.1 比特币白皮书
    • 1.2 区块链概念的学习路径
    • 1.3 区块链的共识
    • 1.4 什么是挖矿
    • 1.5 什么是分叉
    • 1.6 比特币的特色和局限
    • 1.7 小讨论
  • 第二章 区块链钱包
    • 2.1 钱包及账户里的秘密
    • 2.2 签名与多重签名
    • 2.3 交易与Gas
    • 2.4 双重支付(双花)
    • 2.5 电脑钱包安装
    • 2.6 手机钱包安装
    • 2.7 钱包的数据存储方式与特色
    • 2.8 钱包的安全性
    • 2.9 讨论与练习
  • 第三章 区块链1.0:数字加密货币
    • 3.1 加密货币的探索
    • 3.2 竞争币
    • 3.3 几个竞争币的简介
    • 3.4 课外阅读与思考
  • 第四章 区块链2.0:智能合约
    • 4.1 以太坊白皮书及以太坊解读
    • 4.2 连接钱包和使用以太坊登录
    • 4.3 通证(token)及其多样性
    • 4.4 智能合约(Smart Contract)
    • 4.5 ERC-20通证标准及其爆发性应用
    • 4.6 ERC-721非同质通证标准及其严重缺陷
    • 4.7 EIP-1155 多重通证标准
    • 4.8 ERC-1155:为区块链游戏而生
    • 4.9 挽救ERC-721纰漏的ERC-2569
    • 4.10 EIP-3712:多种批量同质化通证标准
    • 4.11 账户抽象化:EIP-86、EIP-2938、EIP-3074、ERC-4337与RIP-7560等等
      • EIP-7702:设置EOA账户代码
    • 4.12 ERC-792仲裁标准及其特色
    • 4.13 EIP-7777:Governance for Human Robot Societies?
    • 4.14以太坊EIPs
    • 4.15 智能合约和以太坊的价值
    • 4.16 区块链的定义与分类错误
    • 4.17 课外阅读与参考资料
  • 第五章 纷繁复杂的区块链应用案例
    • 5.0 艰难的探索
    • 5.1 小始祖彩色币
    • 5.2 去中心化交易所Bitshares
    • 5.3 去中心化交易所Kyber Network
    • 5.4 去中心化交易协议0x Protocol
    • 5.5 去中心化币币交易网络Bancor Network
    • 5.6 通用的去中心化交易协议Uniswap
    • 5.7 去中心化稳定币DAI
    • 5.8 DeFi 借贷平台 Compound
    • 5.10 闪电贷及EIP-3156:一种闪电贷标准
    • 5.11 DeFi 小小闪光点:Pool Together
    • 5.12 流支付
    • 5.14 启发
    • 5.15 参考资料与讨论
  • 第六章 区块链协作
    • 6.1 基础概念
    • 6.2 区块链3.0:DAO
    • 6.3 DAO 2.0
    • 6.4 开源的优势与必要
    • 6.5 区块链的激励式开放性协作
    • 6.6 如何保证协作安全
    • 6.7 参考资料与课后阅读
  • 第七章 智能合约开发语言
    • 7.1 智能合约与Solidity语言
  • 区块链入门极简版
    • 第一章 比特币的启迪
    • 第二章 以太坊的重大创新和严重过失
    • 第三章 Worldcoin:可耻的资本主义镰刀
    • 第四章 铲除匿名资本主义外衣下的诈骗和盗窃
  • A Beginner's Guide to Blockchain
    • 1. Insights from Bitcoin
    • 2. The Great Innovatio and Grave Mistakes of Ethereum
    • 3. Worldcoin:shameful capitalist sickle
由 GitBook 提供支持
在本页

这有帮助吗?

在GitHub上编辑
导出为 PDF
  1. 第一章 区块链底层概念

1.5 什么是分叉

区块链里面有三种形式的分叉。

第一种是经常发生但大家都熟视无睹的。这种分叉是去中心化共识的副产物。对于比特币来说,只要两个矿工几乎同时完成记账就会发生分叉,因为他们同时广播了两个区块,当后续的多个区块链接到其中一个区块,使这个链最长,另一个区块或其小分叉就会被网络“孤立”以至“抛弃”掉。这种形式的分叉是常见而且正常的,一般我们在讨论分叉时很少提及它。

以太坊也常发生分叉。但不同的是:在以太坊中,孤块被称为“叔块”(uncle block),它们可以为主链的安全作出贡献,因此挖出七代内的叔块都能够得到奖励,并且叔块的代数离主链上下一次挖出的区块的代数越近,则其被矿池招安能够得到的奖励将会也多,根据离的代数越远,奖励比例也越小,依次为7/8、6/8、5/8、4/8、3/8、2/8、1/8。叔块奖励 = 奖励比例 * 出块奖励。

另外两种分叉则是基于共识层面而产生的,它们需要社区谨慎处理,因为它们在社区无法达成共识时,有可能造成社区和项目的分裂。

软分叉

软分叉是在原有的规则范围内强化既有规则。譬如新规则单纯将区块的大小由1MB 减小到500K,因原有的规则为区块的大小未超过1MB就是有效的区块,所以未升级的节点会继续将新交易视为有效。然而未升级节点继续挖出的1MB区块将被已升级节点视为无效区块而被拒绝。这也就是说,旧节点无法觉察到协议的变化,不能发现软件已升级,从而继续参与新节点用新协议所挖出的区块的验证工作,但旧节点矿工将无法在新区块上继续添加新节点矿工视为无效的区块,旧节点矿工无法获得对应工作的收益——如果社区未达成共识,多数节点(实质为多数算力)拒绝升级,那么其分叉方案就可能对社区造成伤害。

那么部署一个成功的软分叉,因为需要网络的大部分算力的支持,最好是在达成社区共识的前提下进行。缺乏充分共识的软分叉并不可取。

硬分叉

硬分叉是改变原有的规则,引入不兼容旧软件的新规则。譬如将区块的大小上限由1MB 增加到8MB,没升级的节点会将新区块视为无效,因此未升级节点无法协同已升级节点的工作,和软分叉不同的是矿工马上会发现这一问题!从这个角度说,硬分叉更透明更清晰些。

业界有一种认识上的误区,认为只有软分叉是向后兼容的。实际上无论哪种分叉,都是必须是向后兼容的。“向后兼容性”是指新的软件或协议接受原有的旧格式的数据,只是软分叉到了分叉的哪个时间点后,新的软件或协议将不一定接受旧格式的数据。

比特币此前就曾因代码bug被利用等情况而经历多次的软硬分叉。以太坊也曾经几次硬分叉,并且它现在正在通过硬分叉解决其交易拥堵以及升级换代等诸多问题。

另外要提醒大家的是:除了公链,区块链应用(dApp)也是可以分叉的,因为区块链应用如果遵循区块链的核心价值,那么其智能合约及其数据就都是公开透明的,合约的调用就是无需许可的,从技术上说,分叉就往往变得非常容易了。譬如去中心化交易所Sushi就是从大名鼎鼎的Uniswap分叉产生的。

上一页1.4 什么是挖矿下一页1.6 比特币的特色和局限

最后更新于3年前

这有帮助吗?