第1章 一台全球计算机
以太坊 历史 以太坊 发展阶段 以太坊 特色第2章 账户是什么
以太坊 基础知识 Keystore 与私钥保存 以太坊 常用钱包 以太坊 EIP-55 账户地址第3章 交易是驱动力
以太坊 交易是驱动力 以太坊 交易发送 以太坊 交易方法 以太坊 交易生命周期 共识与工作量证明 矿工与挖矿奖励第4章 数据结构
以太坊 数据结构 以太坊 Radix树 以太坊 Merkle树 Merkle Patricia树 以太坊 RLP编码 以太坊 状态树 以太坊 交易树 以太坊 收据树 以太坊 区块第5章 构建私链
以太坊 安装geth 以太坊 启动私链 以太坊 接收挖矿奖励 以太坊 转账与收款第6章 部署智能合约
以太坊 部署智能合约 以太坊 什么是智能合约 以太坊 安装编译器 Solc 编译智能合约 智能合约发布准备 部署智能合约 调用智能合约第7章 以太坊虚拟机
以太坊虚拟机 虚拟机的执行结果 虚拟机的执行资源 合约调用合约 虚拟机的输入输出 Gas 花费与退回 虚拟机指令集第8章 Solidity 语法
Solidity 语法练习 Solidity 基础语法 Solidity 语法进阶 Solidity 高级语法 Solidity 安全第9章 Truffle 开发
Truffle 合约开发 编译、测试工具安装 Truffle 启动样例 Truffle ERC20合约 Truffle ERC20合约测试Truffle 冷知识
Truffle 冷知识 短地址攻击 比特币的区块 以太坊与比特币账户的区别 “不可能的三角”问题 ETHASH 挖矿算法第1章 一台全球计算机
以太坊 历史 以太坊 发展阶段 以太坊 特色第2章 账户是什么
以太坊 基础知识 Keystore 与私钥保存 以太坊 常用钱包 以太坊 EIP-55 账户地址第3章 交易是驱动力
以太坊 交易是驱动力 以太坊 交易发送 以太坊 交易方法 以太坊 交易生命周期 共识与工作量证明 矿工与挖矿奖励第4章 数据结构
以太坊 数据结构 以太坊 Radix树 以太坊 Merkle树 Merkle Patricia树 以太坊 RLP编码 以太坊 状态树 以太坊 交易树 以太坊 收据树 以太坊 区块第5章 构建私链
以太坊 安装geth 以太坊 启动私链 以太坊 接收挖矿奖励 以太坊 转账与收款第6章 部署智能合约
以太坊 部署智能合约 以太坊 什么是智能合约 以太坊 安装编译器 Solc 编译智能合约 智能合约发布准备 部署智能合约 调用智能合约第7章 以太坊虚拟机
以太坊虚拟机 虚拟机的执行结果 虚拟机的执行资源 合约调用合约 虚拟机的输入输出 Gas 花费与退回 虚拟机指令集第8章 Solidity 语法
Solidity 语法练习 Solidity 基础语法 Solidity 语法进阶 Solidity 高级语法 Solidity 安全第9章 Truffle 开发
Truffle 合约开发 编译、测试工具安装 Truffle 启动样例 Truffle ERC20合约 Truffle ERC20合约测试Truffle 冷知识
Truffle 冷知识 短地址攻击 比特币的区块 以太坊与比特币账户的区别 “不可能的三角”问题 ETHASH 挖矿算法“不可能的三角”问题
在当下的区块链设计中,存在一个所谓的“不可能的三角”。
这三个角分别是 规模性 (Scalability)、去中心化 (Decentralization)和 安全性 (Security)。
目前的区块链技术只能同时满足其中两项,下面分情况讨论。
满足安全性、去中心化,则无法满足规模性。我们以比特币为例,比特币平均10分钟打包一次,平均而言,每秒的交易处理量为7笔。相比之下,VISA信用卡服务则可以每秒处理4000笔。制约比特币规模扩展的原因是它追求全网数据完全拷贝和全网共识同步。完全拷贝代表每个节点都要有硬盘空间存储所有数据。参与的计算机节点越多,则越是能达到共识的“去中心化”,同时多份的完整拷贝也保障了数据的“安全”。但是每一份拷贝都要占据硬盘空间。如果每秒交易量规模提升,则代表存储空间成正比增长。目前比特币区块数据占据了200GB的空间,普通家庭计算机尚能承受,如果储存规模进一步增大,则只有买得起昂贵硬盘的少数玩家才能参与。网络中参与的节点越少,数据的安全性越低,也让共识的完全去中心化特性变成寡头共识。在满足安全和去中心化的前提下,规模性提升困难。
满足去中心化、规模性,则无法满足安全性。当网络中节点数量越来越多,区块链数据占硬盘体积越来越大时候,需要一种解决方案来可靠横向扩展网络。以太坊即将提出的区块分片存储方案就试图解决规模性问题。该方案的设想是通过将区块链数据分割成不同的部分,分布式地存储在网络中,让每个节点仅存储部分区块链数据。各个节点仅持有一部分的数据(类似于一张地图,分割开来,每人持有部分地图),在查询自己未持有的数据的时候可以向其他节点请求查询。这个方案巧妙地缓解了单一节点的存储压力,提高规模性,同时保留多人参与的架构,维持去中心化的特色。以太坊的区块分片存储方案实际上是一种的“多链”结构,子链各维护各自的交易区块数据,子链之间共享同一份世界状态。在这个方案中,总链的算力将被分散,验证节点也会分散,数据传输过程可能会有通信不畅的问题。单链算力下降导致潜在的51%共识攻击的可能性提升。这就是满足了去中心化和规模性之后,降低了安全性的方案。
满足规模性、安全性则无法满足去中心化。区块链网络最显著的特点是没有中央服务器,是完全由协议控制的、去中心化的运营模式。但去中心化意味着要做一件事,必须所有人达成共识才能行动(所谓去中心化)。这个在现有的计算力、带宽条件下牢牢约束住了网络规模。PoW共识模式的效率很低,它需要通过浪费能源来证明共识的可靠性。如果去除PoW,采用 PoS(权益证明)或 PoA(权威证明)的方式,仅挑选少数核心参与者形成共识(例如EOS的超级节点概念),这就可以大大加快每次共识形成的速度,提高规模性也满足安全性。但是这对“去中心化”的理念是一种倒退。例如现在的联盟链,仅允许身份验证过的节点进行记账,加入该联盟需要注册和身份认证,形成了实际上的多中心。这种网络的安全性很高,同时区块的形成速度也很快,可以提高吞吐量规模,但对完全区块链的去中心化的理想场景而言,是一种现实的妥协。
下一章:ETHASH 挖矿算法
把最好的东西留到最后品尝,本书将以太坊的PoW(Proof of work)挖矿算法核心ETHASH算法作为最好的礼物留到最后讲解。掌握了ETHASH算法我们就有能力进行新的、独立的公链开发。这个知识也是最难消化的, ...
AI 中文社