eos

EOS 是为商用分布式应用设计的一款区块链操作系统,以后EOS上会有很多应用,应用多了难免会有许多不可预见的问题,而这些问题不可能完全在系统软件层面被解决。所以,在遇到这方面问题的时候,EOS提前做好了解决方案。而目前存在的区块链产品没有这部分解决方案,例如我们熟悉的比特币和以太坊,因为没有这样的解决方案,社区经常因为一些原因分裂,导致分叉。2017年比特币已经被分叉无数次了,以太坊也已经出现了数次分叉,而这样的结果就是没有考虑到那些在软件层面之外的问题所造成的。


下面我们来学习下EOS是怎么做的?

EOS认识到,治理的权力应该给Token持有者,而不应该是区块生成者。所以EOS的做法是,Token持有者可以将自己的权利代理给区块生成者,这样区块的生成者就有了相应的权限(冻结账户、更新有缺陷的应用程序、提出对底层协议硬分叉的改变等)。当然权限代理出去后,并不是说区块生成者就可以随便乱用权限,那些权限是受限的、被监督、被检查的。

可以用下面的结论总结这种权力:

所有的区块链变更都需要区块生产者同意,如果区块生产者拒绝Token持有人想要的变更,那么他将被投票出局,如果区块生产者的变更没有经过Token持有人的同意,那么其他非区块生产者的全节点会拒绝该改变。


冻结账户


什么情况下需要冻结账户?

一个智能合约可能会出现异常,比如说因为bug的原因导致行为不正确或者资源消耗不在一个合理的范围内,这时候区块生产者就有权力冻结账户,冻结后这个账户所作的行为就没用了。当然也不是随便就能冻结,冻结账户需要21分之17的区块生产者同意才行,如果区块生产者滥用权力,解决方案也很简单,就是将他投票出局,这样被冻结的账户就会被解冻。


改变帐户代码


如果“冻结账户”已经不能解决问题,不可预知的代码(病毒)已经造成了破坏,此时EOS可以支持在不需要硬分叉的前提下修改账户代码。这有点类似于交易的回滚。当然与冻结账户类似,也需要21个中的17个区块生产者同意才行。


宪法


EOS操作系统可以用区块链技术在签名用户之间建立P2P服务协议或约束性合约,也就是所谓的“宪法”。宪法内容定义了仅依靠代码无法完全执行的用户间义务,同时结合相互间的公认规则,确立司法权和适用法律。每一个在网络中签名广播的交易,其签名信息中必须包含宪法的哈希值,以明确约束合约签名者。

关于这一块,也是为了解决当遇到代码无法解决的关于法律法规的问题时的做法。因为EOS是全球性的,每个国家都有不同的法律,那么在EOS上的软件或智能合约就需要遵循当地的法律。EOS把那些法律条款记录在哈希值里,当用户执行某些智能合约的时候,必须选择一个法律条款,通过这样的方式来约束合约签名者。


升级协议和宪法


我们都知道“宪法”会随着当地环境的变化而变化,所以EOS也提供了修改的方法。

EOS操作系统使用源代码定义宪法和协议,同时也定义了宪法及协议的更新方法。对宪法或协议进行变更,需要完成以下步骤:


1.区块生产者(译注:miner/delegate/witness,因此没有译作矿工)提交一个宪法变更动议,并获得17/21以上的赞成票;

2.区块生产者将17/21以上的赞成票维持连续30天;

3.要求所有用户都使用新宪法的哈希值确认交易;

4.区块生产者采用修改源代码的方式反映宪法变更,使用git提交的哈希值将变更提交到区块链上;

5.区块生产者继续将17/21以上的赞成票维持连续30天;

6.变更的代码7天后生效,源代码修改通过后,将有1周的时间来对所有节点的进行升级;

7.所有没有升级为新代码的节点将自动关闭。


根据EOS操作系统的默认配置,更新区块链来添加新功能这一进程需要2到3个月时间,而修复那些不需要更改宪法的非关键性漏洞需要1到2个月时间。

一般情况下变更所花费的时间比较久,当遇到特殊情况的时候,EOS也提供了解决方案。


紧急变更


面临一个损害用户利益的有害漏洞或安全漏洞时,区块生产者可以加速宪法变更过程。一般来说,加速新特性更新过程或修复无害漏洞,都是违反宪法的行为。

你可能感兴趣的:(eos)