中年|有关区块链验证的哲学( 四 )
我们可以说这次攻击的确导致了混乱 , 但这是偶然事件而不是以太坊经典社区有意设计如此 。 可惜的是社区随后选择接受了(更长的)攻击链为合法链 。 以太坊经典推特账户称其为 “像我们的初衷一样严格遵循工作量证明” 。 因此 , 该社区规范竟积极帮助攻击者获胜 。
但其实我们可以就合法链的定义达成另外一种共识 , 比如说建立一个规则 , 某个区块具有超过 100 个后代区块之后 , 其合法性就不能颠覆 。 或者是 , 一个具有终局性的权益证明(比如以太坊 2.0 就是如此) , 规则是 , 一旦一个区块获得终局性 , 就永远不会被回退掉 。
- 仅为图解方便 , 限制最多回退 5 个区块示意图 。 实际操作中可以将回退限制在 100-1000 个区块范围内 -
我们要明确 , 这对链的合法性的定义引入了重大变更:客户端不仅仅要查看它们收到的数据 , 还需要检查何时收到的数据 。 这也会引入一个新情况 , 由于网络延迟 , 在一次大规模攻击时 , 两个冲突块 A 和 B 同时获得终局性 , 一些客户端先看到 A , 另一些先看到 B , 那他们就无法达成一致 。 但我认为这未尝不是好事 , 因为这意味着攻击没有天然获得成功 , 甚至仅仅回退区块的 51% 攻击都会天然导致混乱 , 社区层面的紧急响应就能在两条链之间选择继续哪一条 。 如果协议设计合理 , 要使事件达到需要社区层面的紧急响应应该是非常昂贵的 , 在权益证明中 , 这意味着 1/3 的验证者要牺牲他们的保证金且被惩罚 。
这种方法还有发展的潜能 。 我们可以尝试制造 51% 攻击来专门审查会导致混乱的交易 。 对于及时性验证器的研究也在让所有类型的攻击朝着天然失败的方向发展 。 尽管如此 , 仍会有一些混乱发生 , 因为及时性验证器无法帮到那些离线或者网络连接不好的节点 。
对于重视不可篡改性的区块链社区而言 , 可以说这种限制回退的措施是不错的选择 , 如果无论网络在多久之前接受了某一个交易 , 但它仍有可能在意外中被回退 , 那么区块链就无法自诩享有不可篡改性了 。 当然 , 我相信即使是 BTC 和 ETC 也 已经 限制了极端情况下的回退 , 如果某个攻击试图回退数周的区块历史 , 社区也可以发起一个需要用户主动参与的软分叉来拒绝攻击者的链 。 但更明确地达成一致并正规化这一措施才能更进一步 。
结论
那么这个故事教会了我们什么?首先 , 如果我们接受社会协作的合法性 , 并且接受以 “1-of-N” 信任模型为假设的间接验证的合法性 , 也就是说 , 假设网络中总有某一个诚实参与者 , 而不是假设某一个参与者(比如 Infura)总是诚实的 , 那么我们就可以创建出可扩展性更强的区块链 。
其次 , 客户端验证是上述提及的内容至关重要的一步 。 一个只有少数人运行(验证)节点而其他人都依赖对于验证节点的信任的网络 , 在涉及特殊利益时是非常容易被攻击的 。 但要避免这样的命运也不意味着矫枉过正 , 让所有人随时都要验证一切 。 让单个区块可以被隔离验证 , 用户因而只需要验证受到警报的区块 , 这样的系统也是合理且可以达到相同效果的 。 但这就需要我们用前文提到的 “协作的视角” 来 看待验证的作用 。
第三 , 如果我们将 “时机” 也纳入合法链的定义范围 , 那么我们抵御 51% 攻击的技能树将会打开 。 最好接受的属性是弱主观性 , 也就是要求客户端至少每三个月在线一次 , 且拒绝任何比三个月时间更长的回退 , 我们就能在权益证明里加上惩罚机制 , 使攻击成本变得高昂 。 我们还可以更进一步 , 我们可以拒绝回退所有获得终局性的区块 , 由此保护不可篡改性 , 也可以防止被审查 。 因为网络不可预测 , 依赖 “时机” 在一些情况下 的确 意味着攻击会天然导致混乱 , 但带来的好处也是显而易见的 。
记住以上这几点 , 我们就可以避免以下陷阱:1. 过度中心化;2. 验证过度冗余而导致网络效率低下;3. 误导性规则意外导致攻击变得更容易;并朝向更具韧性、更强性能和更安全的区块链 。
推荐阅读
- |万向肖风:区块链的商业突破不是从 C 端开始,而是从开发者开始
- 中年|人脸识别,要方便更要安全
- 中年|把现场搬到“线上”将服务落到实处 创新交管模式
- 中年|“智能制造进园区”活动在福建泉州启动
- 中年|北约局势愈加紧张,英国暂时召回驻白俄罗斯大使
- 中年|兴化沙沟举行金秋美食文化节“水上人家”美食吸引八方游客
- 中年|全球饮茶风尚兴起 你真的了解袋泡茶吗?
- 中年|我市大力提升工业固废利用水平
- 中年|斯柯达研发手机应用协助诊断故障,成功率高达90%
- 中年|龙会不会藏在深海里,所以至今还没有被人发现?