Algofans | Algorand爱好者

ALGORAND 安全性描述

云上春野云上春野 2019-07-11 83 次 收藏0
Algorand安全性

生态系统的安全性对于公链来说是非常关键的,在公链中,所有的参与者都可以安全地进行交易、持有高价值的资产并构建值得信赖的企业应用程序。Algorand 在共识协议级别和网络级别维护安全,防止攻击,同时保护个人用户帐户的安全。

保护用户的利益

用户的帐户必须在线才能参与共识协议。然而,为了减少曝光率,在线用户尽量不使用他们的消费密钥 (例如,他们用来签名交易和花费他们的抵押Stake的Key) 来参与共识。用户必须在上线之前生成并注册一个私密参与密钥participation key。有了这个密钥,一个在线账户就可以参与到出块和确认区块中。一个参与密钥在一定数量的回合结束后就会失效,在此之后它将被删除,用户必须生成一个新的参与密钥才能继续参与。用户的消费密钥spending key和参与密钥 participation keys是分开的,密钥可以离线存储在Cold Storage中。因此,即使用户的参与密钥被破坏,用户的Stake仍然是安全的。

共识层的安全性

Algorand的共识协议旨在防止强大的对手有能力阻止并破坏足够多的用户(可以想象成秒杀级别,但是不能击破当下密码学的根基),从而控制块的生成。与其他协议不同的是,无论是少数被授权的用户还是固定的委员会都不负责传播块propagating blocks。相反,选择用户参与区块认证是随机和秘密的,用户之间没有任何交流。直到选定的用户参与共识协议之后,对手才知道谁将生成下一个块(因此应该成为目标)。当对手意识到用户被选中时,他们已经来不及从攻击中获益了;用户已经发送了他们的消息并在共识协议中履行了他们的职责。

此外,在议定的下一步和下一轮中,另一组参与者将再次由私人和个人选出。参与者改变每一步和每一轮的块选择,以保护网络免受攻击。

对网络分区攻击具有弹性

任何去中心化的系统都容易受到网络攻击的影响,在这种攻击中,对手攻击的目标是用户之间的通信链接,这使得用户很难或不可能进行交互。对手可以将网络分割成多个独立的部分,这样一个部分的成员只能彼此通信,而不能与其他部分的成员通信。在网络分区期间,网络是完全异步的,对手完全控制谁接收哪些消息以及何时接收消息。如果分区持续的时间足够长,而底层区块链在其设计中没有考虑到这一点,那么对手可能能够说服不同的用户组接受区块链中相同高度的不同块。这样一来,相互矛盾的交易就会被不同的用户接受,从而使对手可以把钱多花一倍。

相反,在Algorand的网络分区network partition期间,对手永远无法说服两个诚实的用户在同一轮中接受两个不同的块。即使分区可能持续一段不确定的时间,而且没有人知道什么时候会解决这个问题,这也是正确的。Algorand网络生态的链从不分叉(可参考runtime verification验证文章),用户的余额也很安全。在给定轮中,最多只能对一个块进行认证并将其写入链。因此,所有交易在Algorand中都是最终的交易。一旦出现一个块,用户可以立即依赖它包含的交易,并且可以确信该块将永远是链的一部分,这意味着他们接收到的资产是安全的。

此外,虽然没有区块链能够保证在分区期间将块写入链,但是Algorand能够在网络分区攻击后不久就可以恢复到之前的状态,并保证以与分区之前相同的速度生成新块。即时在一组Algorand节点一段时间内看不到任何进展(大约比在一个块上达成一致所需的时间多一点)之后,节点进入分区恢复模式。在这种状态下,除了继续共识外,节点还定期发送恢复消息。在分区期间,这些消息没有正确传播。但是,一旦分区恢复,这些消息就会被快速传播,当积累了所需的消息阈值时,节点的状态就会重新排列,区块链就会继续前进。这使得Algorand几乎可以立即从分区中恢复。

本文系作者个人观点,转载请注明出处!
喜欢 0
支付宝扫码打赏
微信打赏

相关文章

更多