【通读EOS白皮书】治理
今年币圈链圈一个重大事件就是:EOS在6月正式发布,但是还有非常多的人从未阅读过EOS技术白皮书。在此我准备做一个通读EOS白皮书系列,主要是翻译官方原文并加入个人解释的形式展现,水平有限,欢迎大家讨论交流。
微信公众号:blockd-public
微信号:点击查看
治理
治理是指人们在软件算法无法覆盖的主观问题上达成共识的过程。基于EOS.IO软件的区块链实现了一个可以有效指导区块生产者现有影响的治理过程。由于缺少定义好的治理过程,以前的区块链采用特殊的、非正式的以及经常具有争议性的治理过程,导致出现不可预料的结果。
解释:上升到计算机哲学,有些计算机判断不了的主观问题,需要事先定义好人类处理这种问题时的判断标准。
基于EOS.IO软件的区块链可以识别代币持有者委托的权力。区块生产者被授予有限的可检验的权限冻结账户,升级有缺陷的应用程序、对底层协议提出硬分叉更改。
区块生产者的选择是内嵌到了EOS.IO软件中。任何对区块链的更改都必须先得到区块生产者的批准。如果区块生产者拒绝代币持有者渴望的更改,那么他们有可能被投票出局。如果区块生产者在没有获取代币持有者的权限就做出更改,那么所有其他的非生产性的全节点校验者(交易所等)都会拒绝这项更改。
解释:被代币持有者选出的节点,要代表用户做出行为。否则,乱做有损广大用户的节点可以被投票出局。
冻结账户
有时候,智能合约行为不正常或不可预测,并且不能按预想的执行。另一些时候,应用程序或账户可能发现资源消耗异常的漏洞。当这些问题不可避免的发生时,区块生产者有权纠正这种情况。
所有区块链的生产者都有权选择哪些交易打包进区块,这样也给了他们冻结账户的能力。基于EOS.IO软件的区块链通过获取17/21 的活跃生产者的同意才可以正式冻结账户。如果区块生产者滥用这种权力,他们可以被投票出局,被冻结的账户也会被解决。
解释:EOS区块链很多行为都需要21个节点当中至少17个同意才可以实施。
更换账户代码
当一切都失效了并且一个“无法停止的应用”以不可预测方式行动时,应用了EOS.IO软件的区块链允许区块生产者在不用硬分叉整条区块链的情况下替换账户代码。与冻结账户的过程相似,这种替换也需要17/21 区块生产者的同意。
解释:类比,家用电器出现问题,不能控制时可以关掉总闸。
宪法
EOS.IO 软件允许区块链建立点对点的服务条款或者在签署该协议的用户之间绑定一个合约,简称“宪法”。宪法的内容定义了无法完全用代码强制用户履行的义务,以及通过相互可接受的规则建立的管辖权与选择权以解决具有争议性的问题。每一笔在网络上广播的交易都必须包含宪法的哈希值作为签名的一部分,从而明确合约的签名人。
宪法还定义了源码协议上的人类可读的意图。当发生错误时用来确定错误和功能的区别,同时指导社会种处理是恰当和不恰当的。
升级协议和升级宪法
EOS.IO 软件通过协议(标准源码定义的)和宪法定义了一套流程,这套流程可以通过下列步骤更新:
- 区块生产者对宪法提出一项更改并获取17/21区块生产者的同意。
- 区块生产者保持连续30天的17/21批准状态。
- 所有用户都需要使用新的宪法哈希值对交易签名。
- 区块生产者对源码作出变更,以便在宪法中体现变化,并且通过使用g一个git提交的哈希值向区块链提交应用。
- 区块生产者保持连续30天的17/21批准状态。
- 代码变更7天之后生效,在确认源码之后给所有全节点7天的时间升级。
- 没有升级到新代码的所有节点会自动关掉。
在EOS.IO软件的默认配置下,升级区块链增加新功能需要花费2-3个月,而更新修复非关键的bug需要1-2个月。
解释:类比,更新宪法需要选民同意并支持。
紧急变更
如果有损害用户的具有危害性的bug或安全漏洞时,区块生产者可以加速宪法变更过程。通常来讲,加速升级以使用引入新功能或修改没什么危害的bug时,会违宪法精神。
解释:宪法不能随意变更,只有发生重大问题时才可以做出改变。
原文如下
Governance
Governance is the process by which people reach consensus on subjective matters that cannot be captured entirely by software algorithms. An EOS.IO software-based blockchain implements a governance process that efficiently directs the existing influence of block producers. Absent a defined governance process, prior blockchains relied ad hoc, informal, and often controversial governance processes that result in unpredictable outcomes.
A blockchain based on the EOS.IO software recognizes that power originates with the token holders who delegate that power to the block producers. The block producers are given limited and checked authority to freeze accounts, update defective applications, and propose hard forking changes to the underlying protocol.
Embedded into the EOS.IO software is the election of block producers. Before any change can be made to the blockchain these block producers must approve it. If the block producers refuse to make changes desired by the token holders then they can be voted out. If the block producers make changes without permission of the token holders then all other non-producing full-node validators (exchanges, etc) will reject the change.
Freezing Accounts
Sometimes a smart contact behaves in an aberrant or unpredictable manner and fails to perform as intended; other times an application or account may discover an exploit that enables it to consume an unreasonable amount of resources. When such issues inevitably occur, the block producers have the power to rectify such situations.
The block producers on all blockchains have the power to select which transactions are included in blocks which gives them the ability to freeze accounts. A blockchain using EOS.IO software formalizes this authority by subjecting the process of freezing an account to a 17/21 vote of active producers. If the producers abuse the power they can be voted out and an account will be unfrozen.
Changing Account Code
When all else fails and an "unstoppable application" acts in an unpredictable manner, a blockchain using EOS.IO software allows the block producers to replace the account's code without hard forking the entire blockchain. Similar to the process of freezing an account, this replacement of the code requires a 17/21 vote of elected block producers.
Constitution
The EOS.IO software enables blockchains to establish a peer-to-peer terms of service agreement or a binding contract among those users who sign it, referred to as a "constitution". The content of this constitution defines obligations among the users which cannot be entirely enforced by code and facilitates dispute resolution by establishing jurisdiction and choice of law along with other mutually accepted rules. Every transaction broadcast on the network must incorporate the hash of the constitution as part of the signature and thereby explicitly binds the signer to the contract.
The constitution also defines the human-readable intent of the source code protocol. This intent is used to identify the difference between a bug and a feature when errors occur and guides the community on what fixes are proper or improper.
Upgrading the Protocol & Constitution
The EOS.IO software defines a process by which the protocol as defined by the canonical source code and its constitution, can be updated using the following process:
- Block producers propose a change to the constitution and obtains 17/21 approval.
- Block producers maintain 17/21 approval for 30 consecutive days.
- All users are required to sign transactions using the hash of the new constitution.
- Block producers adopt changes to the source code to reflect the change in the constitution and propose it to the blockchain using the hash of a git commit.
- Block producers maintain 17/21 approval for 30 consecutive days.
- Changes to the code take effect 7 days later, giving all full nodes 1 week to upgrade after ratification of the source code.
- All nodes that do not upgrade to the new code shut down automatically.
By default configuration of the EOS.IO software, the process of updating the blockchain to add new features takes 2 to 3 months, while updates to fix non-critical bugs that do not require changes to the constitution can take 1 to 2 months.
Emergency Changes
The block producers may accelerate the process if a software change is required to fix a harmful bug or security exploit that is actively harming users. Generally speaking it could be against the constitution for accelerated updates to introduce new features or fix harmless bugs.
你好cn区点赞机器人 @cnbuddy 谢谢你对cn区的贡献。倘若你想让我隐形,请回复“取消”。