[小知识]POW和POS的超白话解析,附Ouroboros说明

大家好,我是链链,英文名Julia,我喜欢写一些“略”烧脑的文章,哈哈。我的每篇文章都会从零散的知识点中挑选一个角度,然后从这个角度出发去贯穿一条主线。为了使观众们可以更愉快地接触新知识,我会尽量使用简短、轻松的语言来讲解!好啦,欢迎你来到今日的《主题分享》。



前一篇([小知识] Cardano如何实现规模化应用?(一))讲了Cardano的共识算法是Ouroboros,今天想继续补充一下。

Ouroboros被证实是一种非常安全的pos算法,其实在eos和Cardano之前,pos就被其他加密货币使用过。

比如Nxt、Blackcoin、Peercoin等等。

1

POW和POS的区别

普及一下,比特币使用的共识算法是POW,以太坊目前使用的是POW,但是将来要切换到一种叫做Casper的POS上,那么POW和POS之间有哪些不同呢?

第一,pow使用哈希算力,pos使用权益。

第二,pow需要矿工挖矿,pos则需要权益持有者经过选举记账。

第三,pow的情况,谁用大的算力先计算(哈希碰撞)出答案谁就取得记(wā)账(kuàng)权,而pos则是用一种随机的进程来决定谁取得记账权。

2

POS的优势

与POW对比,POS算法有以下几种好处:

1、不像POW那么浪费电力和算力。

2、速度更快,更有效率。

3、比POW更能抵御51%攻击。

什么意思呢,我一个一个来说明一下:

比如有一户人家钥匙忘在家里了,找一个开锁师傅来开锁,假设开锁师傅开锁需要先配出一把钥匙。

一种办法是,为了快速开锁,找让5个开锁师傅同时打造钥匙,先打造出钥匙并且可以打开门的人可以拿到报酬,另外4个人就空手回去了。

另一种办法是,随机从5个师傅中挑选一名,让他开锁,然后给他报酬。另外4个师傅到别人家里去开锁。

大家可以看出,第一种办法显然是浪费了另外4名工人的时间和精力。并且,在同个时间段内,第二种方法可以打开5把锁,而第一种方法只能打开一把锁,这就说明pos优于pow的第一条和第二条。

那么第3条如何解释呢?

假如第一种方法,5个工人中有3名一致决定:下次趁主人不在家,进入行窃怎么样?因为3:2的比例,另外2名师傅只好同意也配合行窃,最后主人家里就失窃了。对比区块链,这个系统就不安全了。

假如第二种方法,5个工人每名工人都在公安局备案了,并且抵押了一部分保证金,抵押时间越长的工人拿到的工作越多,收入也越多。这种情况下,估计不会有人愿意作恶,因为公安局那里存着每名师傅的信息,就算师傅跑路了,保证金就拿不回来了。这个例子就说明了pos比pow优越的第三条。

那么POS是不是没有缺点呢?

也不尽然!

3

POS共识算法的缺点

第一,跟pow使用大量的算力和电力不同,pos共识算法不需要提供物理上的物质来记账。在pow共识算法下,所有的矿工都面对同一个问题进行解题,而pos一名记账者(Slot Leader)可以并行处理几个slot,他完全可以选择几个最有利于自己利益的来记账。

第二,pos本身的特征决定了,pos会有一个叫做long-Arrange Attack的问题,什么意思呢?在pos的情况下,受害者并不知道该选择哪一条历史信息去记账,他可能要面对几条历史目录,但是却不能访问最近信息。如果这个人一直在网络中,他可以处理,但是如果他是一个新加入的节点,他就不知道该去连接哪一条来记录。

那么问题来了,如何才能让他在对最近信息一无所知的情况下选择出正确的区块呢?

正因为pos共识的这些问题,Cardano决定开发一种新的pos共识算法,这就是Ouroboros!

4

Cardano 的 pos算法:Ouroboros

Ouroboros提供了一种新的选择方法去连接之前的区块链,而不需要知道最近的历史信息。

Ouroboros可以做到什么?

第一、协议了解健壮的交易账本(robust transaction ledger)的功能。

第二、证明策略中包含潜在的区块链数据结构:一般化的前缀、链的质量、链的成长性等等。

第三、分析辨别出那些控制了单个人持有较少权益的恶意组织。

第四、恶意破坏者比较喜欢控制网络,比如提前计划好一些延迟信息,在所有诚实节点行动之后开始发起攻击等等。

这里只是简单说说Ouroboros的设计,感兴趣的可以自己去浏览文末知乎大咖的文章,超专业哦!

5

Ouroboros的操作流程

这里简要介绍一下Ouroboros的设计:

第一步,先有一个静态的状态,里面包含有初始的权益持有人(stakeholder候选人)分配。这个作为 genesis block是可以不上链的。

第二步,用一个可以信任的锚节点。假设一个随机的锚节点在一个规律的间隔中生成一个随机种子,使用这个种子来实现从stakeholder候选人中选取slot Leader。

第三步,去除一个锚节点的密码学。由选定的stakeholder集体去除这个可以信任的锚节点。

说实话,很难说我真的弄懂了这个设计,整个算法是非常复杂的,但是我认为我们了解这些也基本足够了。

最后附上一个图,这张图简单的描述了一下工作流程。图中的epoch是包含slot 的一个序列,在Ouroboros中,多个epoch可以并行进行。slot可能存在silence slot,也就是未被打包的slot。


[小知识]POW和POS的超白话解析,附Ouroboros说明_第1张图片

本文内容参考:

知乎文章:https://zhuanlan.zhihu.com/p/33824015

视频资料:https://www.youtube.com/watch?v=LCeK_4o-NCc&t=414s

你可能感兴趣的:([小知识]POW和POS的超白话解析,附Ouroboros说明)