A Proof of Stake Design Philosophy - PoS权益证明设计理念

时间:2022-02-08 08:11:32

之前在EthFans上看到了关于PoS(权益证明)的相关文章(原文链接),本着学习的态度,对这篇文章进行了翻译。第一次翻译关于区块链的文章,有些单词及句子的措辞还不是很准确,如果发现有翻译的不恰当的地方,可以评论指出,我再做相应的修改:)

权益证明设计理念

像以太坊(以及比特币,NXT和Bitshares等)这样的系统在密码经济体系中是一个全新的类型—这样去中心化的,不受监管的实体,已经完全存在于网络当中,并且由密码学,经济学和社会共识共同维护。它们有点像BitTorrent(一种点对点共识协议),但也不完全像,因为BitTorrent没有状态的概念 - 这个区别最终变得至关重要。它们有时被形容为去中心化的自治企业 ,但又不是那样的企业 - 比如你不能对微软实行硬分叉。它们有点像开源的软件项目,但是也不是那么回事 - 比如你可以分叉区块链,但不像分叉OpenOffice那么容易。

这些密码经济网络有很多种类——基于ASIC的PoW(工作量证明机制),基于GPU的PoW,PoS(权益证明),DPoS(股份授权证明机制),以及即将出现的Casper PoS(以太坊将采用的共识机制)。每一种无疑都有其自身的理念。一个众所周知的例子是工作量证明的最大化愿景,其中正确的区块链被定义为矿工花费了大量资本所创造的区块链。最初仅仅是一个协议中的分叉选择规则,这个机制在很多情况下被提升成为一种神圣的信条—就拿我在twitter上跟Chris DeRose的讨论为例(Chris DeRose认为总算力超过50%的分叉会成为最长的、新的主链),一些人极力试图在纯粹的形式下维护这个想法,即使是在变更哈希算法的硬分叉面前。比特股的股份授权证明机制提出了另一种理念,即一切都来自于一个单一的信条,但是可以被更直白的描述为:股份持有者投票机制。

每一个理念:中本聪共识,社会共识,股份持有者投票共识,都有其自身的结论,导致了当从自己的角度来看时,其价值体系具有相当的意义——虽然在相互比较时它们肯定会被批判。Casper共识同样有理论基础,尽管迄今为止还没有得到明确的阐述。

我自己(Vlad, Dominic, Jae)和其他人在为什么PoS协议能够存在以及如何设计它们这件事上都有各自的观点,但在这里我想解释一下我个人的见解。

我将着手列出结果,然后直接下结论。

密码学在12世纪非常特殊,因为密码学是在对抗性冲突中继续极大地偏袒防御者的少数领域之一。摧毁城堡比搭建更容易,岛屿可以守护,但是仍然会被攻击,但普通人的ECC(椭圆加密算法)密钥是足够安全的,甚至足够对抗*的参与者。Cypherpunk(将提倡广泛使用强密码学以及隐私增强技术作为通往社会和政治改革道路的激进份子)理论是从根本上利用这种宝贵的不对称性来创建一个可以更好地保存个人自主的世界,而且在一定程度上,除了保护复杂协作体系的安全性和活跃度外,密码经济学也是Cypherpunk的延伸,而不仅仅是隐私信息的完整性和机密性。认为自己继承了cypherpunk精神意识形态的系统应该保持这种基本属性,并且摧毁/破坏的成本要比使用/维护昂贵得多。

Cypherpunk精神不只是关于理想主义,让系统防御比发起攻击更容易同样是可靠的工程。

       在中长期的时间尺度上,人类相当擅长于共识。即使对手能够获得无限制的哈希算力,并且即使在历史的最后一个月也恢复了任何主链的51%攻击,但要让社区相信这条链是合法的,其难度远高于仅仅超越主链的哈希算力。他们需要推翻区块研究者,社区中的每一位值得信赖的成员,纽约时报,archive.org以及互联网上的其他许多发起者; 总而言之,让全世界相信新的攻击链是最初的链,在这个信息技术密集的21世纪就像要让世界相信美国的月球登陆从未发生过一样难。 无论区块链的社区是否承认,从长远来看,这些社会因素都是保护任何区块链的最终目的(注意比特币核心确实承认这种社会层面的首要性)。

然而,仅受社会共识保护的区块链太过低效,速度太慢,容易让分歧没完没了(尽管遇到了各种困难,但已经发生); 因此,经济共识在短期内对保护活跃度和安全性方面起着极其重要的作用。

因为工作量证明的安全机制只能来自于区块奖励(按Dominic Williams的说法,它缺少existence cost(生存成本)和exit penalty(退出惩罚),只有entry cost(参与成本) ),对矿工的激励只能来自于将来可能丧失区块奖励的风险,工作量证明机制必然会在大量区块奖励对大规模算力进行激励的逻辑下运行。从PoW攻击中进行恢复是非常困难的:攻击第一次发生时,你可以通过硬分叉改变PoW,从而使攻击者的ASIC失效。但是攻击者再次发起攻击时,就不能再次改变了,而攻击者可以一而再,再而三 的发起攻击。因此,挖矿网络的规模必须足够大,以至于使攻击变得难以想象。由于网络每天不断地花费X,规模小于X的攻击者则不鼓励出现。我拒绝整个逻辑是因为:

       (i) 这种机制会杀死树木(言外之意应该是在说大量资源的浪费);

       (ii) 这种机制无法认识到Cypherpunk精神—攻击所付出的代价与防御所要花费的比率是1:1,使得防御变得没有任何优势。

       权益证明通过不再依赖工作量证明的安全机制,而是使用惩罚机制来打破这种1:1的对称性。验证人将钱(“存款”)放在股权中会获得少量的奖励,以补偿他们锁定存款和维护节点,以及采取额外的预防措施以确保其私钥安全,但是恢复交易的大部分成本都将来自受到的惩罚,这些惩罚将是在此期间获得的奖励的数百或数千倍。所以权益证明的“一句话理论”不是“从消耗能量获得的安全“,而是“通过建立价值损失的经济手段而获得的安全“。如果你可以证明对于任何冲突区块或状态,都不可能达到相同级别的终止,那么一个给定的区块或状态则具有$ X的安全性,除非恶意节点试图交换与$X等价的协议内惩罚。

理论上,大多数验证人如果相互勾结,可能会接管权益证明,并开始发起恶意的行为。然而,

(i) 通过巧妙的协议设计,他们利用这种操作所能获取的额外利润可以被尽可能的限制,更重要的是

(ii) 如果他们试图阻止新验证人的加入,或者进行51%攻击,社区将简单地协调硬分叉,并删除违规验证人的资产。

       一次成功的攻击可能会花费5千万美元,但清理后果的过程不会比2016年11月25日发生的geth/parity客户端共识失败还麻烦。两天后,区块链和社区重返正轨,攻击者损失了5千万,并且自从攻击导致代币供应紧缩而使价格上升后,其他社区貌似变得更富有了。这才是(我们需要的)攻防不对称性。

以上的观点不应该被理解为:不定期的硬分叉会经常发生。如果需要的话,对权益证明的51%单一攻击成本可以设定为与工作量证明的51%永久性攻击成本一样高,并且攻击的全部开销和无效性应该可以确保它几乎永远不会被实践。

       经济并不是一切。个体可能会受到附加条款动机的驱使,他们会被黑客入侵,被绑架,或者只是喝醉了然后决定破坏区块链,并以牺牲成本为代价。另外,值得高兴的是,个体的道德容忍度及交流的低效性通常会使攻击的成本提高到比标准定义的价值损失协议高得多的水平 。这既是一个我们不能依赖的优势,但同时也是一个我们不应当不必要地抛弃的优势。

       因此,最好的协议就是可以在多种模型和假定下良好运行的协议—具有协调选择的、个体选择的经济合理性,简单容错性,拜占庭容错性(理想情况下适应和非适应敌对变体),受Ariely/Kahneman启发的行为经济模型(“我们所有人都会作弊”)以及任何理想的其他模型,都是现实可行的。有两层防线是重要的:经济激励措施阻止中心化企业的反社会行为,反中心化激励措施首先阻止中心化企业的形成。

       运行速度很快的共识协议具有风险,如果真的发生的话,应当非常小心的处理。因为如果这种速度变得很快的可能性与激励措施相结合,就会产生很高的奖励以及引起网络中心化的系统风险(例如,所有验证人都在同一托管服务提供商上运行)。共识协议不太关心验证人发送一条消息有多快,只要在可接受的时间间隔中即可(例如4~8秒,我们凭经验都知道,以太坊的延迟通常在500ms~1s之间)。一个可能的中间立场是创建可以非常快速工作的协议,但是在类似于以太坊叔块的机制中,确保节点的边际奖励增加其网络连通度超过某个可容易达到的点的程度相当低。

从这里,当然有很多细节以及很多在细节上有分歧的方式,但以上至少是我的Casper版本基于的核心原则。从这里,我们当然可以在竞争值之间辩论权衡。我们是否可以给ETH一个1%的年度发行比率,并花费5千万强制实行补救性硬分叉,还是不额外发行ETH,并花费5百万强制实行补救性硬分叉?我们何时在经济模型下增加协议的安全性,以换取在容错性模型下降低其安全性?我们对可预测的安全性较感兴趣,还是可预测的代币发行?这些都是另一个版本的所有问题,在这些值之间实现各种不同的折衷方式是更多版本的问题。但是我们会去实现的 :)

A Proof of Stake Design Philosophy - PoS权益证明设计理念的更多相关文章

  1. [转]工作量证明(PoW)权益证明(PoS)和委任权益证明(DPoS)区别

    原文链接 Both in the glossary and in some of our previous posts we've touched on mining and the two main ...

  2. spring ref &history&design philosophy

    Spring Framework Overview Spring是开发java application的通用框架,分为多个模块(modules),核心是core container,包括configu ...

  3. Spring history&Design Philosophy 简单介绍~

    SPRING框架的介绍和历史 Spring Framework是一个开源Java应用程序框架,最初是基于依赖注入(DI)和控制反转(IoC)的原理开发的. Spring Framework已经成长为控 ...

  4. 任何国家都无法限制数字货币。为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用  c.分布式算法的实现 d.数据存储技术 e.拜占庭算法 f.权益证明POW,POS,DPOS 原因一: 点对点网络设计 其中点对点的P2P网络是bittorent ,由于是点对点的网络,没有中心化,因此在全球分布式的网

    任何国家都无法限制数字货币.为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用  c.分布式算法的实现 d.数据存储技 ...

  5. spring ref history Design philosophy

    一.前言 Spring 框架可以说是 Java 开发人员使用的最流行的应用程序开发框架之一.它目前由大量提供一系列服务的模块组成.包括模块容器,为构建横切关注点提供支持的面向切面编程(AOP),安全框 ...

  6. spring history &design Philosophy

    Spring简介 Spring是一个开源框架,它由Rod Johnson创建.它是为了解决企业应用开发的复杂性而创建的.Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情.然而, ...

  7. design philosophy

  8. Spring history、design philosophy (Spring的历史及设计理念)

    一,Spring的发展史 1,Spring1.x 时代 在Spring1.x时代,都是通过xml文件配置bean,随着项目的不断扩大,需要将xml配置分放到不同的配置文件中,需要频繁的在java类和x ...

  9. Python实现一条基于POS算法的区块链

    区块链中的共识算法 在比特币公链架构解析中,就曾提到过为了实现去中介化的设计,比特币设计了一套共识协议,并通过此协议来保证系统的稳定性和防攻击性. 并且我们知道,截止目前使用最广泛,也是最被大家接受的 ...

随机推荐

  1. 烂泥:LVM学习之LVM基础

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 有关LVM的好处我就不在此多介绍了,有空的话自己可以去百度百科中看看.我们在此之进行LVM的相关操作,以及命令的学习. 要想使系统支持LVM,我们必须安 ...

  2. 集群管理 secondaryNameNode和NameNode(转)

    为了达到以下负责均衡,需要调整以下 改变负载 三台机器,改变负载 host2(NameNode.DataNode.TaskTracker) host6(SecondaryNameNode.DataNo ...

  3. jira-cli,api,git,jenkins--version.txt

    cd ${WORKSPACE}/trunk/src/main/webapp/html/ echo $version | sed -e "s/X/${BUILD_NUMBER}/g" ...

  4. Linux脚本实现“按任意键继续/Press any key to continue”效果

    此代码来自lnmp一键安装包,用于实现“按任意键继续/Press any key to continue”效果: get_char() { SAVEDSTTY=`stty -g` #隐藏终端输入显示 ...

  5. Apache mod_jk

    http://tomcat.apache.org/connectors-doc/generic_howto/loadbalancers.html http://tomcat.apache.org/co ...

  6. Linux安装Git

    (1)下载git压缩文件,使用当前的用户yum安装git,先下载再安装,其中有一次需要输入Y sudo yum install git-all 服务器回应,其实除了安装git之外,也会安装其他需要的依 ...

  7. SKShapeNode类

    继承自 SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObject) 框架  /System/L ...

  8. [Swift]LeetCode266.回文全排列 $ Palindrome Permutation

    Given a string, determine if a permutation of the string could form a palindrome. For example," ...

  9. James Munkres Topology: Theorem 20.4

    Theorem 20.4 The uniform topology on \(\mathbb{R}^J\) is finer than the product topology and coarser ...

  10. C++中overload(重载),override(覆盖),overwrite(重写/覆写)的区别

    #include <cstdio> #include <cstdlib> class Base { public: #pragma region MyRegion1 //函数重 ...