19 年有人提出了 Rollup,在我看来是一个中间道路。Rollup 就是链下的计算+链上的数据+Fraud proof。然后它最关键的一个点就是不是所有数据都在链上,它的链上数据仅仅限于它每一笔交易的输入,但不包括它的最终状态。比如说,你从 a 走到 b ,我只是把路径告诉你了;但是你具体在 a 做了什么事,在 b 做了什么事,这种状态是记录在链下的。 任何人任何用户都可以去看 Rollup 的区块,也就是打包后的交易,然后把它这个状态的转移重新更换。如果状态转移是错的,用户就可以在链上提交 Fraud proof,并将验证人淘汰掉。因为验证人在链上是有质押的,如果他作恶的话,他的质押会被没收掉。且虽然不是每一笔 Rollup 都会进行验证,但是验证人会一直跑,一旦发现有 Fraud (比如说 A 给 B 发了 1 块钱,但记录的是 A 给 B 发了 3 块钱),就可以拿到相应奖励。这个过程可以理解为任何人都可以进行抽查以及督察。 他的好处是数据都在链上,可以任凭用户随时去验证,不会出现像 plasma 那样的数据可用性问题。且验证的结果具有唯一性,验证人链下把这个智能合约跑一遍,就会发现验证链下的计算是否按照链上的智能合约。从经济学角度来说,一般的验证人不太会去做恶,因为他的质押额太大了。 Rollup 和 Plasma 其实非常类似。只是 Rollup 把数据放到链上去,Fraud Proof 的过程会非常简单。Rollup 的 TPS 会在主链的几百倍左右,一般是在几百上千的级别;根据不同业务,如果应用简单一些的话,应该可以做到几千级别。而 plasma 的 TPS 最高能到上万。 Optimistic Rollup / ZK Rollup
Optimistic Rollup 从技术来说要比 ZK Rollup 简单很多。它的好处是可以支持通用的智能合约。ZK 和 Optimistic 的区别是,Fraud Proof 变成了 Validity Proof。这两种验证方式相当于两种不同的思维方式:Optimistic Rollup 是乐观思维,就是说相信验证人是不会做恶的;ZK 是悲观思维,相信验证人还是会作恶的,所以要生成一个零知识证明,然后和 Rollup 一起打包到链上去。大家去验证不需要跑状态转移,因为这个转移已经通过零知识证明跑过一遍了。 这就类似法律上的举证证明,是自证清白还是别人证明你是好人。ZK Rollup 相当于自证清白。其实,Optimistic 和 ZK 都牵涉到一个最终性的问题。Optimistic Rollup 的最终性是比较长的,用户没有跑过这个证明,提现期需要一到两周。这期间系统会给足够多的窗口,让足够多的人去验证这个事情。ZK 不会碰到这个问题,因为一旦它的零知识证明上链,它的最终性也就确认了。 (责任编辑:admin) |