Plasma的Data Avaliability处理方案存在缺陷,Redstone的DA方案可以解决表象的“数据扣留”问题,但无法真正杜绝Sequencer的中心化作恶难题,只有ZK化才能真正解决Sequencer潜在的作恶问题。
注:本文来自@tmel0211 推特,火星财经整理如下:
顺着 @eternal1997L 极客web3的这篇硬核雄文,我再对Plasma的DA特性做一些延伸思考。 简而言之:Plasma的Data Avaliability处理方案极度不成熟,ZK化是不得已的救赎之路,大凡绕过ZK,以Plasma之名做的取巧DA方案,都存在先天“缺陷”,比如 @redstonexyz why?简单补充下我的理解:
1)Plasma的DA有效性问题,由于Plasma只把Layer2的区块头/Merkle Root发布到Layer1上,大部分DA数据都在其Layer2链下,这意味着Layer2的Sequencer可以做“数据扣留”,拒绝让主网Validators对其完整DA数据做校验,从而导致用户端发起的exit game提款申请变成一本糊涂账,换句话说,主网Validators丧失了对用户exit game提款的有效性验证能力。
2)当主网Validators失去了校验能力,用户的exit game提款就变得很棘手,因为Layer2 Sequencer可以作恶凭空塞进一些伪造交易,在用户的正常exit game提款行为中掺杂一些有水分的交易,后利用自己的“数据扣留”权限,干扰Validator校验能力,这样即使有“提款优先级”机制的出现,也不可能阻挡Sequencer作恶成功,毕竟数据扣留的开关掌握在自己手里。
3)UTXO的账户模型可以在交易场景下,让Layer2的每一笔交易都能对应到次序,从而给主网Validator做exit game执法参考,但这类方案无法对智能合约这种“无主状态”做精细化管理。意味着,大凡打着Plasma旗号做智能合约layer2的方案,都不能真正解决exit game作恶问题。况且智能合约更容易受Layer2 Sequencer控制。
4)Redstone的DA方案巧妙之处是,它在区块头state上传到主网前,先把链下数据做了一层datahash备案,这样用户可以发起挑战,让Sequencer出示这段datahash对应的原始数据,这样一来,数据扣留问题就勉强算解决了,因为如果一个用户发起exit game提款,就必须得同步发起datahash挑战来检验原始DA数据。
这样做增加了用户exit game挑战的成本不说,其实也叠加了共识,因为Sequencer虽然无法数据扣留作恶,但倘若一开始的原始数据本来就是假的呢?还不照样神不知鬼不觉把用户资产给顺手牵羊了?本质上,还是得解决每一笔交易,每一次状态更新的有主和可追溯状态问题。
5)显然只有ZK化才能真正解决Sequencer潜在的作恶问题,因为一个提交到主网的state数据如果没有对应的DA数据,这样的sroot会被直接拒绝无效,也就根本上杜绝了Sequencer的数据扣留问题。
以上
不难得出答案,能把Plasma带出DA问题先天泥潭的方向只有ZK,Redstone的Plasma- inspired DA方案只是通过叠加共识,解决了表象的“数据扣留”问题,并无法真正杜绝Sequencer的中心化作恶难题。
Note:配合下面的Thread一起阅读会有更详细深刻的理解。