万书网 > 文学作品 > 尖峰对话区块链 > 第一问 Casper和分片能应对以太坊开发者的期待和抱怨吗

第一问 Casper和分片能应对以太坊开发者的期待和抱怨吗




王峰:2018年6月15日,你在Ethereum  Core  Devs会议上表示,以太坊将考虑改变Casper和分片(Sharding)的激活上线顺序,不再分别发布,而是可能让它们同时激活更新。你是什么时候开始构思Casper机制的?你建立这一机制是受到了什么启发?

Casper:以太坊的权益证明(PoS)实现的工作流,并不是一个具体的工作流,它实际上是由以太坊团队正在积极研究的两个主要项目组成。不同于其他权益证明共识,在该共识下,系统可以快速惩罚节点的作恶行为。

分片:进行区块链扩容的一种解决方案,通过改变网络验证的方式来增加网络吞吐量。通常情况下,每个节点和区块链网络都包含区块链的完整副本。分片是一种允许节点具有完整的区块链的部分副本的技术,以提高整体性能和稳定速度。

V神:以太坊最初的计划是将Casper作为以太坊上的智能合约,让开发者可以更轻松地完成开发,同时可以完成分片存储。在权益证明和分片技术上,以太坊虽然已经取得进展,但如继续沿这个路线图发展,可能会产生一个更糟的产品,造成大量浪费,因此以太坊不得不选择放弃Casper的首个版本,重新构建Casper。

智能合约:当一个预先编好的条件被触发时,智能合约会立即执行相应的合同条款,其工作原理类似于计算机程序的if-then语句。智能合约的概念于1995年由尼克·萨搏(Nick  Szabo)首次提出,但直到近年随着区块链技术的发展才逐步被社会大众熟悉。智能合约的概念具备承诺、协议、数字形式三大要素,因此能够将区块链的应用范围扩展至金融行业的交易、支付、结算和清算等各个环节。目前的智能合约,通常指的是支持执行图灵完备(turing  complete)程序的以太坊区块链。

王峰:我们对早期的工作量证明机制(PoW)、权益证明机制都比较熟悉,现在你能用通俗易懂的语言,简单介绍一下Casper机制的工作原理吗?

V神:目前,新的路线图仍然是“先Casper,后分片”(Casper  then  Sharding),但是Casper的第一个版本会被修改,以便它可以完成一个完整的Casper和分片部署。

工作量证明机制:是对于工作量的证明,是生成要加入区块链中的一笔新的交易信息(即新区块)时必须满足的要求。在基于工作量证明机制构建的区块链网络中,节点通过计算随机哈希散列的数值解争夺记账权,求得正确的数值解以生成区块的能力是节点算力的具体表现。比特币挖矿采用的就是工作量证明机制。

权益证明机制:与要求证明人执行一定量的计算工作不同,权益证明要求证明人提供一定数量加密货币的所有权即可。类似于把资产存在银行里,银行会通过你持有数字资产的数量和时间给你分配相应的收益。

此外,这种策略还有其他好处,例如,我们正在考虑在短期内使用BLS签名进行聚合以及长期使用STARK[1]签名进行聚合,能够允许Casper机制处理更多验证器,也能让我们把验证器的大小从1500以太坊减少到32以太坊。

BLS签名:2003年由博内(Bonnet)、林恩(Lynn)和沙哈姆(Shaham)3人提出。它是一个基于双线性映射且具有唯一确定性的签名方案,由于产生的签名很短,通常也被称为短签名方案。该方案的签名是椭圆曲线群上的元素,验证算法使用的是双线性映射。

但问题在于,仅仅验证区块链是否有效是不够的,我们还必须验证区块链中的所有数据是否在点对点(P2P)网络[2]中可用,并且任何人都可以在有需求的时候下载其中的任何一个数据。否则,即使区块链是有效的,生成不可用的区块仍然可以被当作一种攻击手段,用剥夺其他人更新加密验证的能力来阻止其他用户从账户中提取资金。

对此,我们已有解决方案,虽然方案有些复杂,即利用冗余编码数据且允许用户随机抽样,来检查大部分数据是否在线,但如果可以验证大部分数据是联机的,则可以使用冗余数据来恢复其余数据。并且,在整个点对点网络中,冗余编码数据都是随机分布的。

王峰:关于Casper,我咨询过中国一个知名的公链设计者,他提出:“为什么Casper设计安全存款来阻止小玩家成为以太坊生态系统中的验证节点?即使在今天,如果你是比特币或以太坊的独立矿工,你仍然有可能挖掘一个区块,但是在Casper之后,所有的小矿工都不再有任何可能验证一个区块,这是否意味着Casper为块链系统带来了不公平问题和特权节点?”你能否在这里帮我解开这个困惑?

V神:“在Casper之后,所有的小矿工都不再有任何可能验证一个区块”的说法,我认为是不准确的。

首先,32以太坊大约等于10万元人民币。我认为,在任何情况下工作量证明矿工的资金都不会小于这个数,因为工作量证明挖矿属于规模经济。如果你的算力小于这个数,可以通过加入矿池的方式来参与。

挖矿:利用电脑硬件计算、记录和验证被称为区块链的数字信息的过程。挖矿实际上就是记账的过程,矿工是记账员,区块链是账本,成功抢到记账权利的矿工会获得新生的比特币等奖励。其工作原理和矿物开采十分相似,故被称为挖矿。

矿池:本质上是一个完全节点,通过将少量算力合成并联合运作的方法,整合区块链网络中的零散算力,并在所有成员中共享奖励。在此机制中,不论个人矿工所能使用的算力多寡,只要是通过加入矿池来参与挖矿活动,无论是否成功挖掘出有效资料块,皆可按对矿池的贡献来获得少量奖励。

我们预计权益总量大约在10000000以太坊,因此接管整个分片需要至少10000000以太坊的40%,所以成本会非常高。即使真的有人拥有了接管分片的能力,如果以太坊遭受了攻击,我依然有能力恢复。

Casper背后的核心思想,就是将链的权益证明和传统拜占庭容错(Byzantine  Fault  Tolerance,简称BFT)算法整合在一起,类似Lamport、Paxos、PBFT等算法。许多人问我们,为什么不直接使用这些传统算法。答案是,我们觉得这些算法既复杂,又不适合区块链的范式和需求,因此我们钻研算法,并创建了一个我们认为更简单、更适合区块链范式的版本。

拜占庭容错:一类分布式计算领域的容错技术,来源于拜占庭将军问题。拜占庭将军问题是莱斯利·兰波特(Leslie  Lamport)为描述分布式系统一致性问题(Distributed  Consensus)在论文中假设出来的一个著名例子。由于硬件错误、网络拥塞或中断以及遭到恶意攻击等,计算机和网络可能出现不可预料的行为,拜占庭容错技术被设计用来处理这些异常行为,并满足所要解决的问题的规范要求。

数据可用性问题是分片中最具挑战性的问题之一,[3]我发现,许多其他项目,甚至是那些和加密算法相关的项目,其实对于这个问题也没有太过重视。