Silvio Micali:如何建立更安全的权益证明

金色财经现场报道,2018年9月11日-9月12日,2018区块链·新经济第四届区块链全球峰会在上海外滩W酒店举办。会上麻省理工教授、图灵奖得主Silvio Micali发表以《Algorand:真正的分布式账本》为题的演讲,以下是演讲全文:

Pw5cwdsCtTQQeEFuacfWMQpFWNEhewMvp81Ap8XS.jpeg

我们都知道区块链,所以我们热爱它,区块链给我们带来了安全性、透明度、分布式,使我们在不失信任的情况下进行交易,所以区块链就是基础设施。

差异的地方是如何实现,在实现区块链的时候要实现两点,1.建立链,这样才能保证不会泄露数据或者发生其他的问题。2.选择块,真正困难的部分是选择下一个块,传统的方法是中本聪发明的方法——“工作量证明”。主要的假设是大多数算力是诚实的人,那么工作量证明有什么样的技术局限性呢?我们都知道成本很高,如果我们不考虑通胀的话,交易的成本20美元,现在有可能更高甚至买披萨都买不起。

在工作量证明中算力是集中在三个两个矿工中的,难道这是分布式的吗?肯定不是,还有可扩展性。除非区块链扩展,不然的话怎么对世界有用呢?如果一秒钟只能处理几个交易,对世界来说是没有什么用处的,还有缺少最终确定性。

如果一个节点支付给我一笔钱非常好,但我们也不知道最新的块是否还会在区块链上,常常会出现软分叉,块可能就消失了。在金融世界中,如果转账时汇款的钱会消失,我们会允许这一切吗?不会。我们需要等到块处理,块可能需要60、20个块之后才会出来,延时是非常长的。如果成本很高但是很快的话可以容忍,如果成本很高又慢的话为什么要容忍呢?

安全性,它安全吗?可以防御算法攻击吗?可以防御网络攻击吗?可以防御算力攻击,但是不能防止网络的攻击。如果大家看到了这一切,你就会发现最终工作量证明是第一个想法,大家其实都同意工作量证明是伟大的想法,但我们需要更好的东西。

下一个阶段是权益证明,可能一个词有很多含义,传统的含义是委托的权益证明。有些时候会觉得这个月20个人来负责决定下一个块,下一个月再换20个人,这是分布式的吗?不是。但至少这是诚实的,这个月是这20个人来决定,但你要知道这20个人在这个月会成为很大的靶子。假设这20个人都是非常诚实的,但是你要知道有时候一秒钟内可以对20个人发起拒绝服务的攻击,一下子区块链就停止了,所以这种设计是不可以的。

担保的权益证明意味着什么呢?意味着允许20、200、2000个人把很多钱放在桌上,他们也不能碰它(钱),由出钱的人来决定下一个块,影响力和出的钱是成比例的。但这样可以吗?我问大家一个根本性的问题,典型用户可支配收入当中有多少比例可以拿出来放在桌上不能碰的?只有很小的比例是可以的。

在这样的系统中只能让有钱的人来出资,他们唯一的目的就是控制区块链。这些都是权益的证明,但其实隐藏着中心化的功能。有一些比较开放,比如说委托。有些是比较中心化,比如说担保权益证明。

我介绍一下纯粹权益证明,首先我们不会惩罚任何人。惩罚坏人的概念使我们看起来就像个好人,但这种做法是无的是幻想性的,可能你有一种方式能够找到坏人惩罚它,但是在现实生活中是不可能的,为什么不设计一个体系让坏人不可能得逞不就好了?在纯粹的权益证明当中钱始终是在你的手中,钱不会放在桌子上,只会在你的钱包里。前提是大部分的钱都是在诚实的用户手中,只要这样的话系统就是安全的。大部分的钱并不以为这一些人大部分的钱,而是所有用户大部分的钱,只有所有人大部分钱都是在诚实人手中才是安全的。

这里钱包里的每一个代币都有同样的决策权,这才是最终的决策系统。为了达到这一点我们必须要开发很多技术。区块链不能只是一种愿望,必须是一种技术,能够实现愿望,我们不能每天都在希望。

总结一下,主要的假设是大多数的钱都是在诚实的用户手中,大多数算力都在诚实用户手中,有钱的话什么都可以做,可以买任何东西,包括算力、挖矿的设备,如果你有钱可以买更多的挖矿设备,那么你就可以拥有很多不诚实的钱。我的主要假设是大多数钱都在公民用户手中!

Algorand的技术优势是什么呢?计算是微不足道的,任何人都有钱做计算。系统是真正去中心化的,因为用户是不分等级的,只有一个类别的用户,没有外生的算力、外生的矿工,付款是有最终确定性的,每一个块只要一出现就会一直于区块链当中。

Algorand确实会出现分叉,但是分叉的概率是非常非常低的。分叉的概率是10的-18次方,是非常小的。假设每秒出一个块是非常好的,10的-18次方是从世界发生一直到现在,可能会出现分叉,但你需要等到世界都爆炸以后才能出现分叉,分叉的概率很低。

只要我们能够传播出块就可以出块,在块当中你必须要能够广播块,不然系统不存在,所以可扩展性是非常快的。安全性,我们可以防御非常坏的敌对者,敌对者可能会控制很大的网络,但我们依然能够低于协议和网络的攻击,区块链不仅仅会在协议层遭到攻击,而且人们可以会把电线切掉或者把路由器进程重新的编程,要成功的区块链有时会有一大笔资金,一大笔资金上去以后很多攻击会朝你瞄准。

再来看一下Algorand,创始区块是“B1”,达成创始区块的共识是非常容易的,因为是协议的一部分。慢慢的区块链就生成了,你可能会问软分叉?工作量证明呢?没有软分叉,也没有工作量证明,只有一条链,就应该是这个样子,是一个区块连另一个区块。

怎么实现这一点呢?通过两个神奇的阶段来实现这一点。奇迹是由算术来达成的,首先要在所有的用户中随机选择一个用户,选中的概率和在系统中拥有的钱是有比例的。选择的用户要提出新的块,比如说我被选的话就提供一个新的块,看交易是否有效,如果有效的话就提出一个区块然后传播它。

阶段二是在所有的用户中随机选取1000个用户,他们需要就第一个用户所提出的块所达成共识。在任何社会中肯定会有坏人,即使是1%2%,如果是在真实世界中可能10%20%的人都是坏人。但是坏人不是大多数,你在社会中随机选择1000个人,绝大多数人都是诚实的,即使社会中有10%的人是罪犯。一旦你看到一个区块已经被提出来被签名了,比如说1000个人当中有750个人签名了,你就知道这个区块是正确的下一个区块,你不需要改变自己的想法。我们就是这样运作的。

大家肯定会有很多问题,这些问题都非常合理,至少有30个问题是可以提出来的。谁来选择委员会?如果我是敌对方我想要控制委员会我怎么来做?回答是反直觉的回答,每一个委员会的成员秘密地选择自己进入委员会。你会想不是吧,这个想法太可怕了,这应该是我听过最差的想法。如果我是坏人我可以选择自己,今天明天后天都可以选择自己进入委员会来选择下一个区块,每一天都可以选择自己来决定下一个区块。

先不要这么早下决定、论断,为了要选择自己你必须要运行自己的彩票机制。在我的电脑中必须要运行自己的彩票,如果你赢了就会获得一张赢了的证明,可以证明你是这个区块这个委员会的一员。如果你看到我出具的证明就可以对我的出块选择支持或者反对。获胜的概率是和人们在系统中投入的钱有比例。

什么是“最终速度”?彩票选择方法只需要一毫秒的时间,一毫秒的时间1000个人就可以选择自己进入最终委员会,如果我是坏人如果想孵化委员会,但我不知道在委员会中给谁打电话,我不知道哪一个人将会获得彩票、获得抽奖。如果你赢得了抽奖就可以传播消息,那你就可以出具证明,我知道是你但是我没有办法孵化你,因为你的时机已经太晚上了,你的意见已经广播在了网络当中,要不是支持新块,要不是反对块。你的意见已经广播出去了我现在再贿赂你的话太晚了,总而言之计算非常少,完美地扩展性和交易的安全性可以防止协议和网络的攻击。

特别讲一讲灵活的治理,没有硬分叉。没有一个人的价值结构会永远存在下去,只有是人就会改变,人类会不变地适应。区块链会永远存在吗?不会的。所以现在采用的是共识的协议,先提出然后达成共识,这是非常灵活的。同意的是什么呢?99.9%的时候是就下一个块达成共识,但我们还可以对规则的变革、新的政策达成共识。所以不一定会就区块达成共时,有时我们可以以分布式协作方式来自我监管。

谢谢大家!

本文来源: 金色财经 / 责任编辑:许珂