PoW 和 PoS 之争:它们各自牺牲了什么,获得了什么?

5 月 21 日,Nervos 研究员张韧在旧金山区块链中心做了一场题为《What PoS Cannot Achieve (But PoW Can) And What PoW Cannot Achieve, Either》的主题演讲。在演讲中,张韧介绍了 PoW 和 PoS 各自的优劣与取舍,并和现场的观众就多种区块链安全性分析框架,以及它们引发的争议进行了深入探讨。

(若想了解完整的演讲内容,欢迎点此观看:point_right::point_right:https://www.youtube.com/watch?v=gxFm1QieUdE)

安全性假设和安全属性

在分享的一开始,张韧就给出了安全性假设和安全属性关系的基本公式:

系统的脆弱性 = (理想中的安全属性 - 实际的安全属性) + 安全性假设

从这个公式中我们可以看到,当想要建设一个更好的区块链时,我们的关键目标应该是降低系统整体的脆弱性。而要达到这个目标,我们应该做到:与之前的设计相比,新增加的安全性假设少于新增加的安全属性;

或者减少的安全性假设多于减少的安全属性。

本质上这就是在构建一个更健壮的架构。

然而现状是,有太多项目宣称自己是具备强安全属性的区块链 X.0,但实际上在这些安全性上的改进都包含一些前提假设,所以这也让它们各自的网络存在脆弱性。

PoW vs. PoS

熟悉 Nervos 的伙伴都知道,我们推崇比特币的 Nakamoto 共识机制。在比特币之前,(在分布式系统中)一个共识网络中的所有参与者都彼此知道其它的每个参与者。它们之间的信息会通过安全链接或者采用数字签名的方式进行传递,并且,消息对于定时的假设是异步的。比特币引入了带有延迟的无需许可网络的概念。在比特币网络中,新的节点可以随时加入,并且可以获得可信的网络历史记录。网络的参与者不再需要知道其他参与者,信息也不再需要被可信的主体签名,而是通过广播的方式传递。

那么,如果不采用工作量证明机制,或者在一段时间内不采用工作量证明机制,这样的网络还能够正常运转吗?对于一个无需许可区块链来说,答案是否定的。为了保证后来加入的节点能够看到可信的区块链历史,工作量证明机制必须永远持续下去。并且,节点需要随时知道网络的延迟信息,因此网络中无法采用异步协议。另外,这个网络还要求大部分节点都是诚实的。

那么,权益证明机制可以达成网络中的这些属性吗?和工作量证明机制类似,权益证明机制的运行需要一种稀缺资源作为基础。然而和工作量证明机制不同的是,如果没有可信的主体,那么采用权益证明机制的网络无法容忍较高的延迟。这意味着在某些情况中,权益证明机制系统会面临几种能够让新参与者无法分辨真实网络历史的攻击。为了解决这个问题,采用权益证明机制的系统必定会采用由一些拥有公共身份的可信主体进行签名的检查点机制,这实际上又违背了去中心化和无需许可的这个核心信条。

在某些情况中,采用权益证明机制比采用工作量证明机制的系统有更强的安全属性。因为整个系统的价值是已知的(全网有多少 Token,Token 的价格都是公开可知的),如果大部分「价值」达成一致,那么参与者的数量就不那么相关,这样一来,网络可以绕过由于不知道所有参与者数量带来的问题。但为了确保它们是否达成一致,所有人都必须保持在线,而这是一个很强的安全假设,并且每一个区块都必须被几千个节点签名,这会对性能产生很大的负面影响。因此,虽然参与者数量是已知的,但这并不能弥补权益证明机制相对于工作量证明机制的缺陷。

在分享中,张韧还进一步探讨了其他两难困境以及对于分布式网络的理想架构。从演讲中,我们能够感受到张韧严谨的学术逻辑,如果你想从安全性上进一步了解 PoW 和 PoS,点击查看完整演讲内容会收获更多哦。

当然,如果你对这些内容有任何问题,都可以在我们的论坛留言,可爱的韧韧会不定时为给大家做解答!

P.S:感谢会分叉的 @Kelly 小姐姐为本文的内容作出的贡献

2 Likes

吹爆韧老师。

有完整 slides 吗?

建议看视频里面,都是完整的

就是看不清楚才问的

加我微信Cs-qianlan

效率依赖pos,安全需要pow

理论上说,能不能把nervos的底层改成pos,然后实现分层架构?

讲道理,可以把以太坊改成联盟链,放到 CKB 上。理论上可以 Nervos,但是 Nervos CKB 的设计并不是为了作为 Layer 2 设计的。