Whisker17 / Layer2Things

This repo contains kinds of rollup scheme in current market
4 stars 0 forks source link

轻松读懂状态通道如何实现即时确定性 #21

Closed Whisker17 closed 3 years ago

Whisker17 commented 3 years ago

轻松读懂状态通道如何实现即时确定性

Contents:

Whisker17 commented 3 years ago

「确定性」 是区块链交易的一种特性,可定义为交易被打包进区块之后的一种状态,即,如果我们看到某个区块之后挖出了足够多的区块,就可以确信这个区块内的交易不会被网络拒绝。也就是说,这个交易及其结果(对代币余额的更改)会永远留存下来。

Whisker17 commented 3 years ago

工作量证明区块链的确定性不是非此即彼的:交易不会在某个时刻得到最终确定,而是像中本聪在白皮书中描述的那样,交易被拒绝的概率会随着时间流逝呈指数级下降,因为网络会就最长链达成共识

Whisker17 commented 3 years ago

状态通道原理

使用状态通道应用必须在底层区块链上发起至少一个 「锁定」 交易和一个 「解锁」 交易。跟其它交易一样,这些交易同样存在确定性问题。用户通常要等待将近 1 分钟(从用户体验的角度来说这已经是龟速了)左右,这些底层交易才能被视为是确定的。

状态通道的原理是利用锁定和解锁之间的机会:在这两个步骤之间提供一个执行环境,让类似区块链的应用能够安全地运行。这类应用会涉及状态更新,这些状态更新可以称作 「二层交易」,与区块链交易大同小异。二层交易也带有密码学签名,可包含任意数据,并由定义了程序执行规则的虚拟机来解释(程序当然是由开发者来写的)。然而,二层交易并不需要依赖复杂的概率性共识协议状态通道的状态可由单方或各方同时发起更新。每次更新不一定具有可确定性

Whisker17 commented 3 years ago

确定性

什么是可确定性?它指的是一个状态通道的状态能够被底层区块链接受作为解锁交易的一部分,随解锁交易一起发到底层链上时,不会导致链的虚拟机回滚。这就意味着,满足可确定性的二层交易是经过正确格式化的,也得到了正确的签名,能够经过状态通道协议设计者和应用开发者的额外检查。一旦这些条件经过了参与者的验证,参与者就可以相信这些条件会在将来的某个时间点以特定的方式触发解锁。这样,二层交易就以一个可确定的状态告终。

这些相对宽松的要求使得二层可确定性相比底层可确定性来说,在耗时方面减少了几个数量级