回顾:鹿特丹见面会,2018年7月18号 (第一部)

上个星期,卡尔达诺首次在荷兰鹿特丹举办了见面会。从精心策划的活动空间,到精彩的演说安排以及荷兰社群的积极参与,此次见面会格外的成功! 特此感谢Blocklab提供的会场还有组织了本次见面会的社群成员@ilhan, @bullish 和@Andy_Hendrikx。
(请注意这只是回顾贴的第一部分,本次总结会包括伯纳德.大卫 Bernado David的演说,第二部分则会继续分享艾德斯科.德.弗里斯 Edsko de Vries的演讲。)
卡尔达诺基金会的汤姆和乔恩简单的介绍了我们的项目、基金会的职责以及卡尔达诺社群,以此拉开了见面会的帷幕。
接下来IOHK的研究员以及东京工业大学的助理教授:伯纳德.大卫 Bernardo David登上了讲台。他的演讲是关于乌洛波洛斯,卡尔达诺主要使用的共识协议,还讲解它和比特币并其他区块链的不同之处。

简介&背景

伯纳德首先罗列出PoW工作量证明系统现有的问题:

  • 在一个以PoW为基础的系统里,产生区块的用户并不一定是投资的用户
  • 这就意味着持币者(通过购买Token代币来投资系统的人)和职业矿工(管理矿场的人,他们生产新的区块并从中赚取利益)是有区分的
  • 矿工掌控整个系统的操作
  • 掌控者可以摧毁区块链,改变政策,让它成长,允许硬分叉发生,等等
  • 而且采矿的回报也减少了
  • 用比特币来说,每生产21万个区块,报酬就减半一次
  • 这就意味着投资挖矿的诱因会下降,这是麻烦,因为整个系统需要靠采矿运转
  • 那么当那些系统的报酬等于零的时候会发生什么?
  • 还有第三点,在PoW系统里,对联网的控制是非常中心化的
  • 大家都知道整个比特币联网是由一小部分中国矿场管理的
  • 如果中国迎来了监管改革,比特币可能就此坍塌。总的来说,如果系统是由少数龙头完全掌控,这对系统也不利
  • 还有,假设一方有足够的能量可以挖矿,并且超过了百分之五十的用户,那么理论上就可以完全掌控系统
  • PoW系统是能源密集型,它会耗费巨大的能源
  • 一个比特币矿池的耗费超过整个荷兰一天的花销
  • 为了建造一个可持续性的系统,我们不想耗费自然能源,同样,我们也不想造成更多的污染

我们怎么解决这些问题呢?

  • 一个选项就是转移机制,离开PoW
  • 比如权益证明Proof of Stake 和太空证明 Proof of Space
  • Proof-of-Space和PoW非常相似,除了一点,不使用计算,而是用存储
  • 对于卡尔达诺,研究人员和IOHK, 我们想要转移到一个不耗费能源的模式,并运用那些选定的能源为系统和社群做出有益的贡献
  • Proof of Stake 权益证明是建立在一个理论上的,那就是作为一个用户,投入系统越多你的权利也就越大,你可以确信自己可以把握整个项目的走向(使用你的投票权)
  • PoS权益证明也很节能
  • 生产一个区块你仅仅需要一个签名和几个加密操作就可以,这不会耗费任何的能源或者数据
  • 也不会浪费能源,用户可以掌控系统并确保区块链的成长

基础结构:PoS怎么运作?

伯纳德使用吉卜力人物来解释PoS权益证明的运作方式:龙猫,红猪和千寻 (图片中从左向右)
https://forum.cardano.org/uploads/short-url/ayXMjRs3YqagHYoWI59fBFunxnO.JPG

  • 你可以看到,龙猫有9个币,红猪有6个,千寻则有15个币
  • 系统中谁拥有更多的币(也就是投资最多的人)在一个PoS为基础的系统里应当可以生产更多的区块
  • 具体谁可以生产下一个区块这是随机抽取的
  • 那么拥有更多币的人赢得机会的几率更大,在这个例子里,千寻最有可能
  • 在每次需要产生区块的时候,和当你需要区块链成长的时候,就会随机抽取一次。和比特币联网相比较,PoW权益证明需要解开一些谜底
  • 第一个假设,也是PoS的基础机制:千寻赢的次数会更多因为她投资的多
  • 卡尔达诺称产生区块的人被为Slot领导者
  • 每一个区块都有一个时间Slot。在这个时间段内,某人可以生产一个区块
  • 一个区块长达20秒,每次的抽奖也会配合每个20秒的区块
  • 在卡尔达诺使用的协议中,这个抽奖被称为Slot 领导者甄选程序

他们的研究给这一领域贡献了什么?

  • 在IOHK研究所发表论文之前,没有人有证据能够证明这个系统是在数学上是可靠的。
  • 写这一证明非常的复杂,通过三年的努力,研究人员推出了一个系统,并宣称是可靠的,也可以用数学证明,在同一太空的其他人也可以进行考证
  • 最先来的是一个正式模型:以PoS权益证明作为基础的共识协议
  • 接下来是乌洛波洛斯,第一个可证明安全性的区块链协议,这是以PoS为基础
  • 乌洛波洛斯:源于希腊神话的衔尾蛇,我们在这里使用这个名字的含义是因为区块链会从自己的状态产生随机效应
  • 但这个协议也是附带条件的,这些今年才被解决,这就是乌洛波洛斯 Praos,它改善了上一个提案的安全性并提升了效率
  • “Praos” 在古希腊语的语义是“和缓,放松”
  • 原始的协议必须假定用户一直在线,不断地在发表他们的信息,也必须行动迅速。而新的提案Praos 可以更加实际的迎合用户,用户可以随时上线或者下线,也就是说可以更放松
  • Praos是一个成就,因为它找到了一个模式:在维持安全性同时也能够迎合现实世界的模式

乌洛波洛斯

  • 第一个提案假设的是同步,也就是说所有人(不论他们在世界的那个角落)需要有一个和其他人同步的时钟,这也是必须的,因为需要知道什么时候发送信息(比如制作抽奖和生产区块)
  • 根据这一假设,在系统内,只要竞争对手不掌控超过百分之五十的权益,它会和比特币一样安全
  • 另一个假设就是如果对手不能自动控制人群,也就是说对手需要侵截或者冒充你,他们必须等一段时间才可以侵入下一个计算或者一个损坏延误
  • 他们清楚这些假设不太可能会发生,但是也需要用它们先制作一个简单的系统。
  • 在继续说明Praos如何解决了这些假设之前,伯纳德描述了抽奖的规则和协议的总体机制。

抽奖规则是什么?

  • 它使用“Follow the Satoshi”协定
  • 这个方法可以让我们在所有用户中选定一个用户,几率是和这个用户所拥有的币成正比的

  • 简单说,你从一个加密散列函数(H)开始,它会采集一个随机数值(别称seed种子)
  • 然后你会得到一个数字“i”的输出
  • 这个“i”是在0和区块链里的Satoshi总数之间的数值
  • Satoshi是加密货币中最小的货币单位(像一分钱)
  • 用卡尔达诺来说,散列函数的输出会在1和整个区块链中Ada艾达的总数之间
  • H(种子)会给你一个艾达币数值i的输出
  • 在区块链上会显示一场交易,显示这个i币属于这个“用户”
  • 选取的数值是随机的,所以,每一个货币都会有同样的几率
  • 但如果你有更多货币,你会更有可能被经常选中
  • 那我们如何生产这个随机的种子呢?
  • 我们怎样能用一个去中心化的方式来完成任务呢?

协议:一个纪元 (EPOCH)

  • 每一个EPOCH都有一定数量的Slot,每一个slot会产生一个区块
  • 从创始区块B0开始(在时间开始以前就存在的blog)
  • 在这里你会看到所有用户的记录还有他们每个人拥有的货币还有随机性
  • 看图片,你可以看到在第一个slot里,没有人在线,所以也没有产生区块
  • 在接下来的两个slots里,生产了区块,区块链开始进步
  • 在这里的一个问题就是,我们用的名单上是拥有货币的人,还有固定的随机选择可以生产区块的人
  • 但在现实中,大家会交易或者交换货币,所以名单会失去时效
  • 举个例子:在区块1以后,用户1可能会卖了他的货币所以不再拥有任何权益
  • 但在一个EPOCH结束的时候,如果他还有这些货币的话,他还可能会被选中
  • 所以这是必须注意的一点,我们需要这样做才能确保安全性
  • 但是我们不想要一个从始至终都会贯彻整个协议的过期的名单
  • 所以这就是为什么它被分割成epoch(时期)
  • 在一个epoch结束的时候,会产生一个新的随机数值,然后名单会被更新(这很简单,因为所有的交易都被记录在每一个区块里)
  • 在乌洛波洛斯的第一个协议中,是有限制的,就是所有的信息会在Slot结束的时候被送出,但是在Praos,他们解决了这个限制
  • 现在也没有限制可以有多少空白的区块
  • 最大的限制就是有诚信的人必须在线(在初版乌洛波洛斯里)

协议:多重纪元

  • 完整的协议当然会包括多重epochs 时期
  • 通过使用一个工具Guaranteed Output Delivery (G.O.D),Coin Tossing, 你可以得到一个随机源
  • 这个工具就像一个黑匣子一样,和区块链协议平行进行,会给出一个确保是随机的数值(前提是50%的用户是诚实的)
  • 这个区块盒使用一个互动型协议,这就要求用户通过区块链互相沟通,通过研究我们可以证明数值是完全随机的
  • 在每一个epoch会重复这一过程
  • 我们必须生产新的随机功能,因为如果一直使用同一个随机系统,一个没有诚信的用户可以预测哪些货币会被选上,然后专门购买那些货币

乌洛波洛斯 Praos

  • 乌洛波洛斯 Praos是在初代协议之后推出的
  • 它不再需要同步的假定
  • 同时也改善了乌洛波洛斯的安全性。虽然也有完全适应型的破坏,比如无诚信的玩家不会在一次破坏后“等待”然后再进行下一个破坏
  • 这是通过未知的领导甄选,转发安全的签名,还有局部随机的生产

乌洛波洛斯 Genesis

  • 这项协议再次改进了Praos,通过他们复杂的区块链挑选规则,以达到通用可组合性
  • 在Praos里,你需要假设如果一些从来没有使用过区块链的用户加入这个系统,他们会需要一个可以信赖的人来给他们提供系统的中期状态(系统的区块)用来核查他们收到的链是正确的
  • 但这个并不理想。你会想要能够从初始区块那里引导整个区块链
  • 一般你会用“longest chain rule” 最长区块链法则,也就是选择最长的区块链,但是这个不会给你最好的保障
  • 使用他们复杂的法则,它可以允许你从初始区块直接进行引导,并不需要一个可信任的中期关卡
  • Genesis通过废除关卡从而改善了安全性
  • 他们同时也在改善性能
  • 几年前他们在未优化的乌洛波洛斯版本上运转了最新基准,当时的数据是每秒100次交易

总结一下,伯纳德说明了他们的研究还有他们创作的乌洛波洛斯协议可以达到和比特币一样的安全性。同时耗费更少的能源,还能提供更好的性能。所有的创作都是基于已经熟知的加密技巧,并且已通过数学验证为准确的。

如果您对此感兴趣想要了解更多,或者阅读乌洛波洛斯的论文,您可以在这里找到它们:
Ouroboros
Ouroboros Praos
Ouroboros Genesis

敬请期待!第二部:鹿特丹见面会和艾德斯科.德.弗里斯的演讲

1 Like

Proof of Space!!! 太新鲜了!!