查看原文
其他

干货 | Vitalik: 25分钟认识以太坊(下)

2017-11-23 Vitalik Buterin 以太坊爱好者

编者按:以下为Vitalik Buterin在Ethereum Devcon3上的演讲《Ethereum in 25 minutes, vision 2017》的下半部分。以下中文皆直接从视频中听写并译出,如有错失,请不吝赐教。附:科普 | Vitalik: 25分钟认识以太坊(上)

默克尔树(Merkle tree)

(PPT上放着Ralph Merkle的照片)让我们都向Ralph Merkle(译者注:Merkle树的发明人。)鞠躬、祈祷! Ralph Merkle,他的Merkle树是唯一真正让轻客户端成为可能的东西,所以,这在技术上是非常重要的突破,它值得人们赋予崇高的敬意。

重点是,默克尔树允许一个交易被包含在一个区块中的证据成为可高效验证的,或者说,普遍性地允许任何特定的数据片段被包含在在一个非常大的数据块中的证据成为可高效验证的。所以,如果你拥有一大块的数据,你可以从你的数据中创建这个叫做“Merkle树”的数据结构,有了这棵默克尔树之后,你可以为任何在这棵树上的数据片段创建叫做“默克尔分支”的东西,也就是组成了默克尔树的这种哈希值。 加上所有这些中间层,通过把哈希值相互匹配,你就可以判断这段数据是不是真的在这棵树上,对吧?

所以,为了建立起这棵树,你可以拿来你的数据,把两个片段的数据放在一起哈希;为每两片数据做完哈希之后,再把得到的(两个)哈希值放在一起哈希;如是反复,最终将只剩下一个哈希值在顶端。要证明其中存在任何特定的数据,你只要得到这些哈希值的分支,然后让它们相互匹配。如果是否存在一个错误的话,(也就是说)如果你想证明一段数据并不在那里的话,那么至少其中一个哈希值将是无法匹配的。

在以太坊上,我们使用它以证明一些特定的交易是包含在区块中的,但也存在一些叫做“状态树(State Tree)”的东西。状态树就是整个以太坊状态的一棵默克尔树。所以,每一个账户、每一个合约,余额,Nonce,合约代码,合约库,以太坊上的所有数据的全部状态都被哈希在这棵树的结构中,而这棵树的根哈希值将成为区块头,这就是所谓的“状态根”。所以,从任何一个区块到下一个区块,总是会有一部分状态被修改,然后默克尔树就会改变。但我们有一种特定类型的树叫做“默克尔帕特里夏树(Merkle Patricia tree)”,意味着当状态发生改变的时候,默克尔树上必须做出的更新的数量实际上是非常小的。它是像对数那样变化的。有了这个,一个轻客户端就可以要求网络,“给我一个特定账户的默克尔分支”;而一些全节点可以用这一分支来回复;轻客户端自己就可以从头到尾检查该分支的哈希值。如果所有的哈希值都相互匹配,那么,太棒了!然后轻客户端就可以接受并且证实显示账户余额的特定数据、或者一些库的钥匙,是确实在默克尔树上的。

所以,在以太坊中,默克尔树是用在交易、状态和收据上的。帕特里夏树则允许高效的插入和删除操作。区块头则包含了这三种树。

拜占庭版本(Byzantium)中的更新

拜占庭是我们做的一个硬分叉,从10月16号开始运行,它引入了一系列新的很棒的隐私保护措施。拜占庭中有三种主要的、可能也是最让人感兴趣的特性。理论上来说,当然还有其他特性,但这三种让人感兴趣的东西是因为拜占庭中的新特性才成为可能的,对吧?这里包括我们叫做“预编译(pre-compile)”的东西,可以充分利用虚拟合约。虚拟合约的功能是做椭圆曲线编辑(eliptic curve edition)、椭 47 31258 47 14940 0 0 2227 0 0:00:14 0:00:06 0:00:08 2755曲线标量乘法(eliptic curve multiplication)、椭圆曲线配对(eliptic curve pairing)还有大数计算。这也允许你在以太坊上写合约来做一些事情,比如:验证环签名(Ring Signature),验证ZK-SNARKs,验证RSA签名(RSA signature),所以,这也可以被用来提升以太坊跟使用公钥、授权证书以及其他东西的现有系统的兼容性。接下来你还将听到这些东西。

除了这些,还有一系列很重要的特性,比如说:静态调用操作码(STATICCALL opcode),它允许你写作没有同等程度可变性的安全合约,以及在一些情况下重新进入(出现)问题(的地方),它同样允许你更容易去做纯粹功能性的变成。你拥有一个回返数据备份、恢复原状操作码(REVERT opcode),帮助你节约Gas,以及让EVM在某些情况下更高效的操作码,还有一系列更小的提升。但我会说,拜占庭硬分叉的主题是把这类强大的密码学加进去,以使强大的隐私保护应用成为可能。还有非常有有意思的的东西正在被建构到上面,比如说,你知道的, 建立在声誉系统上的ZK-SNARK(我昨天才听到这个东西)。这些都在非常快速地往前推进。

未来的方向

Casper,你们可以看Changwu的演讲,就在下一场。Vlad也准备展示他自己的Casper版本,称为“Casper CBC”。

分片(Sharding),可以看今天结束的时候我的演讲。虽然,我会说它不仅仅是关于分片的,它的主题在实际上比分片要广泛得多。它同样也是EVM更新的尾巴,一个小很多的协议升级。

现在,比起以太坊区块链核心技术的未来方向,可以被建设在以太坊上的第二层(second layer,数据链路层)架构、中间工具和系统有一个大得多的关于未来方向的列表。这包括可扩展性方案,比如Plasma;也包括可以被建设在环签名上的所有东西,你已经知道了,椭圆曲线乘法、匹配,ZK-SNARK;还包括多种其他多种隐私保护协议。还有状态通道(State Channel)系统。所有这些都是很棒的,也是非常重要的改进,我希望我们将听到更多关于它们的消息。

那么,谢谢你们。再一次,希望你能享受这次大会。


视频链接: https://www.youtube.com/watch?v=Yo9o5nDTAAQ&feature=youtu.be
作者: Vitalik Buterin
翻译&校对: 阿剑 & Elisa


更多文章:

干货 | 以太坊的工作原理

区块链是什么——太长不看版

教程 | 雷电网络开发预览版 - 初体验

记录 | 以太坊协议的发展史

教程 | 你的第一个Truffle分布式app (3) 

教程 | 你的第一个Truffle分布式app (4)

Ethereum Casper 101 | 初识以太坊 Casper

采访 | ETHNews 对 Vitalik Buterin 的独家专访

观点 | 关于区块链的二三感想(三)

PPT分享 | V神在Devcon3的分享: “一个区块链,两套系统”

观点 | 企业代币化

记录 | 以太坊:走向公众

干货 | 理解ERC-20 token合约

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存