【原创翻译】系列(3):EOS技术白皮书V2.0中文版

in #cn7 years ago

版权声明:本文为戴德文首发于微信公众号【区块链践行录】,未经授权,不得转载。

区块链践行录V4.0.jpg


声明:此译文仅供英语学习者和区块链学习者交流、学习使用,不可作为任何商业活动或投资行为的依据,因此导致的任何损失与本文译者无关。文章内容如有纰漏、误译之处,请最终以英文原版为准。

命名权限级别

使用EOS.IO软件,账户可以定义命名权限级别,其中的每个级别都是衍生自更高级别的具名权限。每一个具名权限定义一种权力,这种权力是一个多重签名检查的门槛,后者由密钥和其它账户的具名权限级别所组成。例如,一个账户的权限级别为“朋友”,则它可以被设置成由其它朋友控制账户上的操作。

另一个例子是Steem区块链,它有三个硬编码的具名权限级别:拥有(owner)、活跃 (active)和发帖(posting)。“发帖”权限只能进行诸如投票和记录等社交行为;而“活跃”权限则可以做除了更改持有者之外的任何事情。“拥有”权限则意味着冷存储,也能够做任何事情。通过允许每个账户拥有者定义他们自己的层级和分组操作,EOS.IO概括了这种具名权限等级的概念。

权限映射

EOS.IO允许每一个账户在合约或任意其它账户的合约和他们自己的具名权限等级之间定义一个映射。例如,一个账户拥有者可以将其社交媒体应用映射至其“朋友”等级群组。映射之后,其它朋友都可以像账户主人一样在此社交媒体上发帖。尽管如此,他们仍然需要使用各自的密钥登记这些操作。这意味着,账户拥有者总是可以识别出哪些朋友通过何种方式使用账户。

权限评估

当一个操作类型的消息“操作”从@alice发送给@bob,EOS.IO软件会第一时间检查alice是否已经定义了权限映射至@bob.groupa.subgroup.Action。若无,随后检查是否映射至@bob.groupa.subgroup,再检查@bob.groupa,最后是@bob。若未发现有进一步的匹配,就会假定映射至具名权限组@alice.active

一旦映射被识别,登记的权力就会被确认可以使用门限多重签名程序,此权力与具名权限相关。若识别失败,它就会遍历至上层权限,最终至“持有者”权限,@alice.owner

默认权限组

EOS.IO技术也允许所有账户拥有一个可以做任何事的“持有者”权限组,和一个除了更改“持有者组”之外的可做任何事的“有效”组。所有其它权限组别均衍生自“有效组”。

并行评估权限

权限评估程序为“只读”,由交易产生的权限修改只有到了区块的末端才会生效。这意味着所有的密钥和对所有交易的权限评估都可以被并行执行。此外,这意味着权限的快速生效成为了可能,无需启动必须回滚的昂贵应用程序逻辑。最后,它意味着在收到未决交易时,交易权限即可被评估,无需等到它们在应用时才进行重新评估。

总而言之,权限验证代表了一种确认交易所需运算的重要比例。使其成为只读和可并行的过程,让性能的大幅增长成为了可能。

当重新发送区块链以便在操作日志中重新生成确定状态时,无需进行再次评估。事实上,一笔交易被包含在一个已知的好区块中,就足以跳过此步骤。这大幅地减少了重新发送不断增加的区块链所带来的运算负荷。

带强制延时的消息

时间是一个安全性的关键组成部分。通常情况下,在私钥被使用之前我们无从知晓私钥是否被盗。当人们有需要将密钥保存在联网的电脑上,用以日常应用程序的使用时,基于时间的安全性便显得更为重要。EOSIO软件让应用程序开发者可以表明,消息在被应用于区块之前,必须要等待一个最小的时间间隙。间隙期间,它们可以被取消。

当其中一条消息被广播,用户可以通过邮件和文本信息接收到通知。若不予以授权,他们可使用账号恢复程序复原他们的账号并撤消消息。

此必需的时延取决于操作的敏感性。付款购买一杯咖啡不需要时延而且在数秒内不可撤消,而购买一套房子则可能需要72小时的结算期。将整个账户转移至新的控制账户将需要长达30天的时间,具体时延由应用程序开发者和用户选择。

恢复失窃密钥

当密钥被盗用时,EOS.IO软件可以给用户提供一种重获账户控制权的路径。一个账户所有者可以使用过去30天活跃的任何一个密钥,连同获得指定账户恢复合作者的批准,在其账户上上重置所有者的密钥。只有在所有者的帮助下,账户恢复合作者方能重置账户的控制权。

黑客尝试进行恢复流程将一无所获,因为他们已经“控制了”账户。此外,若他们确实做了,恢复合作者将要求进行身份验证和多因素鉴定(手机和邮件)。这将令黑客作出让步或令黑客在流程中一无所获。

此流程与一个简单的多重签名存在巨大差异。在多重签名中,需要另一个实体参与每一个执行的交易。相比之下,在恢复流程中,恢复合作者只参与恢复流程而无权逾越于日常交易之上。这将大幅减少每位参与者的成本和法律责任。


公众号篇尾V3.0.jpg