EOS白皮书(部分二)

一致性算法(BFT-DPOS)

EOS.IO软件利用唯一已知的分散式一致性算法,该算法经证明能够满足区块链上的应用程序的性能要求,即授权委托证明(DPOS)。这种算法下,那些在采用EOS.IO软件的区块链上持有令牌的人可以通过持续的批准投票系统选择区块链生产者。任何人都可以选择参与块生产,并有机会产生积木,只要他们可以说服代币持有人投票给他们。

EOS.IO软件能够精确地每0.5秒生成一个块,并且只有一个生产者有权在任何给定的时间点生成一个块。如果在预定的时间没有生成块,则跳过一个或多个街区时,区块链中存在0.5秒或更多秒的间隔。

使用EOS.软件,模块以126个轮次(每个6个,21个生产者)生产。在每轮的开始,21个独特的区块制作者优先选择由代币持有者投票。选定的生产者按照15个或更多生产者约定的顺序安排。

如果生产者错过了一个区块,并且在过去24小时内没有产生任何区块,则他们将被排除在考虑范围之外,直到他们通知区块链他们打算生产区块为止。这可以确保网络平稳运行,最大限度地减少由于未被证明不可靠的调度生产者而造成的错误数量。

在正常情况下,DPOS区块链不会遇到任何分叉,因为区块链生产商不会竞争,而是合作生产区块。如果有分叉,共识将自动切换到最长的链条。这种方法是有效的,因为块添加到区块链分叉的速率与共享相同共识的区块生产者的百分比直接相关。换句话说,拥有更多生产者的区块链分支的生长速度要比拥有更少生产者的区块链更快,因为拥有更多生产者的分叉会遇到更少的缺失区块。

此外,没有块生产者应该在两个叉子上同时生产块。这样做的块生产者可能会被投票出局。这种双重制作的密码证据也可用自动删除滥用者。

通过允许所有生产者签署所有块,拜占庭容错被添加到传统DPOS中,只要没有生产者签署了一个区块,该区块被认为是不可逆的。任何拜占庭式的制作人都必须通过以相同的时间戳或高光标签签署两个方块来产生他们背叛的密码证据。在这种模式下,不可逆转的共识应该在1秒内到达。

交易确认

典型的DPOS区块链有100%的区块生产者参与。在广播时间平均0.25秒后,交易可以被认为以99.9%的确定性得到确认。

除了DPOS,EOS.IO还添加了异步拜占庭容错(aBFT),以加快实现不可逆转性。aBFT算法在1秒内提供100%的不可逆性确认。

作为证明凭证的交易(TapoS)

EOS.IO软件要求每个事务都包含最近块标题的部分散列。

这个散列有两个目的:

1.阻止不包括引用块的叉子上的事务重放;

2.向网络指示特定用户及其赌注位于特定分支上。

随着时间的推移,所有用户最终都会直接确认区块链,这使得伪造伪造链变得困难,因为伪造者无法将合法链中的交易迁移。

账号

EOS.IO软件允许所有账户被长达12个字符的唯一人名可读名称引用。该名称由账户的创建者选择。账户创建者必须保留存储新账户所需的RAM,直到新账户存储令牌以保留其自己的RAM。

在分散的环境中,应用程序开发人员将支付创建账户的名义成本,以注册新用户。传统企业已经以广告,免费服务等形式为每位客户购买了大笔资金。相比之下,为新区块链账户融资的成本应该微不足道。幸运的是,没有必要为已经由其他应用程序注册的用户创建账户。

每个账户都可以将结构化的操作发送给其他账户,并可以定义脚本以在收到操作时处理操作。EOS.IO软件为每个账户提供了自己的专用数据库,只能由自己的操作处理程序访问。动作处理脚本还可以将操作发送到其他账户。动作和自动操作处理程序的组合是EOS.IO如何定义智能合约。

为了支持并执行,每个账户还可以在其数据库中定义任意数量的范围。块生产者将以这样一种方式来安排事务,即对存储器访问范围没有冲突,因此他们可以并行执行。

基于角色的权限管理

权限管理涉及确定一个操作是否被正确授权。最简单的权限管理形式是检查事务是否具有所需的签名,但这意味着所需的签名已知。一般而言,权利与个人或个人群体有关,并且往往是分门别类的。EOS.IO软件提供了一个声明性的权限管理系统,可以对账户进行细粒度和高级别的控制,以确定谁可以做什么和什么时候做什么。

认证和许可管理必须标准化,并与应用程序的业务逻辑分开。这使得开发工具能够以通用的方式管理权限,并为性能优化提供重要的机会。

每个账户可以由其他账户和私人秘钥的任何加权组合来控制。这创建了一个层次化的权限结构,反映了权限在现实中的组织方式,并使多用户对账户对账户的控制比以往更容易。多用户控制是安全性的最大贡献者,并且如果使用得当,它可以大大降低由于黑客行为而造成的盗窃风险。

EOS.IO软件允许账户定义哪些密钥和/或账户组合可以将特定操作类型发送到另一个账户。例如,用户的社交媒体账户可以由一个密钥,另一个用于访问交易所。甚至可以授予其他账户权限,以代表用户进行操作,而无需分配密钥。

你可能感兴趣的:(EOS白皮书(部分二))