他们最初没有打算开发自己的链;但是在浩如烟海的选项中,他们找不到一条想要的链。所以他们最终决定自己开发,Flow链由此诞生。 Flow团队的核心洞见在于可以将计算和共识分离。 简单来说,区块链任务分为两种:非确定性的和确定性的。 共识,也就是就交易顺序先后达成一致意见,属于非确定性任务,是主观的。 计算,也就是算出交易的结果,是确定性任务,是客观的。 计算消耗的算力资源更多,但是面临的安全性风险更小;要证明2+2的计算结果是否有人撒谎是很容易的。共识对算力资源的消耗不多,但是面临的安全性风险更大。Flow链的架构师们意识到,将二者分离可以获得更高效的架构:
现有的区块链不区分分配给节点的任务,因此不管是吞吐量还是安全性都受到了限制。Flow则要鱼和熊掌兼得。 “作为一个共识节点”,Dixon解释到,“你只要知道状态变化是有效的,不需要你去计算。类似于zk rollups的概念。” 在2019年9月发布的名为《Flow链:分离共识和计算》的技术白皮书中,Dete、Lafrance和Alexander Hentschel博士对新架构的逻辑进行了解释。 本文的目的在于对分离共识和计算进行正式阐述,并证明这一方法在不牺牲安全性的情况下增加了吞吐量。和大部分现有的提案不同,我们通过分离关切来实现可扩展性,换言之,我们的解决方案在于更有效地利用网络资源,而非分片。 2020年2月,Flow团队发布第二篇《技术白皮书》,更详细地阐释了多节点架构,这一次的白皮书中包含了四种类型的节点:
将任务分配给四类节点是Flow链的关键创新,现在依然如此,没有任何别的链使用这一架构。 下图显示出四类节点如何协作以流水线方式完成交易的确认,每一个节点都有专门的任务,并将任务结果传递给下一个节点。 我在读完这些文章后,第一个问题就是,“如果共识节点确认了某个交易,但最终被执行或验证节点推翻,会带来什么结果?” Flow团队对这个问题也有解决方案。 这张图看起来很复杂,但它实际上代表着网络中的一系列制衡,“只要有一个节点是诚实的,不管是哪一类节点,它都可以惩罚不诚实的收集或执行节点,并触发因无效数据造成的损失恢复。” 区块A中的交易直到两个区块之后,也就是所有的检查完成之后,才会尘埃落定。 (责任编辑:admin) |