这并非说明 51% 攻击的后果不严重,这仍然是十分恶劣的攻击。重新排序交易可以造成双花,这是非常严重的问题。但他们能做的事情仍然有局限性。 那么包括比特币和以太坊的大多数区块链,他们现在如何确保这一点?如果有一名矿工挖出了违法共识规则的区块会如何?或者,如果绝大部分质押者对一个违反共识规则的区块签名会发生什么? 区块链安全模型有时人们声称最长链为有效的比特币或者以太坊链。这个说法不太完整。对当前链头的正确定义是
因此,在客户端接受区块链应该用来记录当前历史数据这个条件之前,他们需要验证两个属性:
这听起来可能有点抽象。我们有理由提出一个疑问,上述中的第一个条件由谁来验证,即谁来验证者区块链上的所有区块均应有效?因为如果还是矿工验证该链有效,那么这只是重复工作了,我们并没有真正从中获得什么。 但区块链不一样。让我们分析一下为什么,先从一个普通的客户端 / 服务器数据库架构开始: 请注意,对于典型的数据库,用户信任数据库服务器。他们不会检查回应是否正确;客户端确保已按照协议对其有效格式化,仅此而已。客户端 (此处用一个空白的方块表示) 是「非智能的」:它无法验证任何内容。 但是在区块链的架构中,是这样的: 我先来总结一下上图包括的组件。首先矿工 (或质押者) 生产区块链。P2P (点对点) 网络确保每个人都能够使用有效的链,尽管存在一些不诚实节点 (你需要连接到至少一个诚实且连接良好的 P2P 节点,以确保自己始终与有效链保持同步)。最后,客户端将交易发送至 P2P 网络并从网络中的其他节点接收最新的链更新 (或者是完整的链,如果它们正在同步的话)。客户端实际上是网络的一部分,它们也将通过转发区块和交易来做贡献,但在这里不是那么重要。 重要的部分是,用户正在运行一个全节点,上图中由客户端中的柱体表示。只要客户端获得一个新的区块,就像任何其他节点一样,无论是一个矿工还是 P2P 网络中的一个节点,这些客户端都将验证该区块是否为有效的状态转换。 (责任编辑:admin) |