Odaily星球日报|科普:状态通道真的可以实现即时确定性吗?


编者按:本文来自 以太坊爱好者(ID:ethfans) , 作者:George Knee , 翻译&校对:闵敏 & 阿剑 , Odaily星球日报经授权转载 。
Odaily星球日报|科普:状态通道真的可以实现即时确定性吗?
本文插图
- 虽然不是即时的 , 但是比另一款要快得多(来源:Pexels)-
术语往往禁锢认识 。
在技术讨论中 , 好的术语可以在准确性和简洁性之间取得平衡 。 通常 , 这种平衡需要根据说话人(开发人员或营销人员)和听话人(专家或门外汉)的特性发生变化 。
“即时确定性(instant finality)” 就是一个新兴术语 , 也是本文的重点 。 这个术语指的是增加状态通道层会给区块链带来的优势 。 “确定性” 概念可以追溯至中本聪的那篇介绍比特币和区块链的论文《比特币:一种点对点的电子现金系统》 。 “确定性” 是区块链交易的一种特性 , 可定义为交易被打包进区块之后的一种状态 , 即 , 如果我们看到某个区块之后挖出了足够多的区块 , 就可以确信这个区块内的交易不会被网络拒绝 。 也就是说 , 这个交易及其结果(对代币余额的更改)会永远留存下来 。
工作量证明区块链的确定性不是非此即彼的:交易不会在某个时刻得到最终确定 , 而是像中本聪在白皮书中描述的那样 , 交易被拒绝的概率会随着时间流逝呈指数级下降 , 因为网络会就最长链达成共识 。
当然了 , 区块链在任何时刻都有可能出现分叉 , 导致某个交易失败:但是只要看到有新的区块出现并指向包括这个交易在内的区块 , 这种可能性就越来越低 。 不包含我们的交易的分叉链越长 , 我们的交易被拒绝的可能性就会越高 。 也有可能出现这样的情况:我们的交易可能都无法实现确定性 , 而是变成了 “反确定性” 的 , 也就是说我们可以确信这个交易已经被拒绝了 。 当网络遭到所谓的 51% 攻击时 , 就会出现这种情况 。 再强调一次 , 我们永远无法确定最后会是哪种结果:但是随着时间的流逝 , 我们对交易被拒绝的可能性的预测会无限趋近 0 或 1。 只要等待足够长的时间 , 我们就能从实际意义上得出确定的结论 。
【Odaily星球日报|科普:状态通道真的可以实现即时确定性吗?】那么 , 状态通道到底改变了什么 , 产生了什么影响?好吧 , 事实上没有带来任何影响 。 作为二层技术 , 状态通道显然不会更改区块链的底层协议 , 也无法改变其确定性:不过 , 底层链能下功夫的地方有很多 。
此外 , 使用状态通道应用必须在底层区块链上发起至少一个 “锁定” 交易和一个 “解锁” 交易 。 跟其它交易一样 , 这些交易同样存在确定性问题 。 用户通常要等待将近 1 分钟(从用户体验的角度来说这已经是龟速了)左右 , 这些底层交易才能被视为是确定的 。
状态通道的原理是利用锁定和解锁之间的机会:在这两个步骤之间提供一个执行环境 , 让类似区块链的应用能够安全地运行 。 这类应用会涉及状态更新 , 这些状态更新可以称作 “二层交易” , 与区块链交易大同小异 。 二层交易也带有密码学签名 , 可包含任意数据 , 并由定义了程序执行规则的虚拟机来解释(程序当然是由开发者来写的) 。 然而 , 二层交易并不需要依赖复杂的概率性共识协议 。 状态通道的状态可由单方或各方同时发起更新 。 每次更新不一定具有可确定性 。
什么是可确定性?它指的是一个状态通道的状态能够被底层区块链接受:作为解锁交易的一部分 , 随解锁交易一起发到底层链上时 , 不会导致链的虚拟机回滚 。 这就意味着 , 满足可确定性的二层交易是经过正确格式化的 , 也得到了正确的签名 , 能够经过状态通道协议设计者和应用开发者的额外检查 。 一旦这些条件经过了参与者的验证 , 参与者就可以相信这些条件会在将来的某个时间点以特定的方式触发解锁 。 这样 , 二层交易就以一个可确定的状态告终 。


推荐阅读