区块链公链的创新与升级究竟蕴含了什么样的价值和意义
扫描二维码
随时随地手机看文章
公链的创新与升级,依旧是区块链发展的重中之重。第二层扩展方案作为热点技术方向,究竟蕴含了什么样的价值和意义呢?
目前区块链交易吞吐量有很大的局限性,这主要归结于为了安全和保持去中心化,所有节点都需要处理系统里每一笔交易。
链下扩展技术允许相互不信任的用户群在本地处理交易达到共识,而不用上链达到全网共识。这项技术的难关是建立链下状态机机制,使得当当地出现争议的时候成员可以提供欺诈证据,该争议也会在链上得到利落的解决。通常,我们称这些技术称之为“第二层扩展方案,或者链外扩展方案”
“链外扩展方案”的项目早已存在。闪电网络无需节点间的信任,通过支持hashlock和时间锁的HTCLs来提供可行的小额支付通道。Plasma以太坊的智能合约上运行。这些智能合约扮演着Plasma子链的根基的角色。当子链处理小额支付交易时,子链的根基保障了交易安全性和最终性。Counterfactual引进了和上述支付通道类似的状态通道,除了可以作为支付通道,它还可以扩展其他链上需要状态的功能。
智能合约在JURA网络中是以FUSUS数据的形式存在的。它是由外部账户或者另一个智能合约初始化的,由账户里的代码控制。它有可以反映状态的储存空间。接收交易与信息在FUSUS数据中构成DAG。 当交易需要整理结算的时候,相应的发送交易或者消息由代码自动生成。这和外部账户通过给自己发送交易结算很像。每一单发送交易(消息)的时候都需要计算最新的状态。
发送交易在FUSUS数据中构成了一条发送链。通过两笔发送之间的接受交易(消息),在下次发送交易的时候,你可以知道新状态的和相应的转换。 关于状态转换的Merkel 证明会在每次发送交易时候生成。
第二层解决方案不会提交每次的状态转移给链上全球账本,因此需要设计一种支持多参与者的智能合约,该智能合约支持当链下出现争议时提交状态来与主链交流,这种智能合约可以通过其他去中心化项目的智能合约继承,初始的时候移进合约定金,初始化交易状态,并确定状态机的计算方式。我们称这种合约叫第二层智能合约。
为了创造一个多参与者链外状态通道,我们需要启动带有一定定金的第二层智能合约。然后参与者就可以在里面活动:进行交易,下棋,买保险等。
参与者通过发送交易或者信息接收进行互动。 FUSUS智能合约把每一次互动记录为接受交易。如果这些交易(消息)顺序并不重要,如属于不同的参与者或者交易相互独立。 那么这些交易将构成DAG,这将增加交易或信息的吞吐量。 但在每次FUSUS得到有依存关系的交易时,它会生成一条相应的发送信息以便状态转换,交易间顺序自然而然地进行了组织。
在第二层智能合约中,我们把两个连续的发送交易之间的交易行为称为互动回合。 每一次互动回合的状态转变和必须让所有相关的参与者签名。
FUSUS账户的发送交易指令下达之后,将进行状态转移。当第二层智能合约处理链外状态转换时,相关用户必须认可当前交易状态才能进行下一步。智能合约会在储存数据里储存利益相关参与者的状态。关于利益相关者,只要在互动回合中他的状态改变就要由所有的利益相关参与者签名确认。那么下一个状态就要以之前签过的利益相关者签名后的hash作为需要签名数据的一部分,以保证安全和完结性。
利益相关者状态是链下状态机计算的结果,链下的共识可能会因为计算环境不同等达不到,这也规定了链下只需要利益相关者状态达到共识即可。
智能合约也保持一个“总结状态”,这可以解释为合约总的结论。如果状态通道就是支付通道,那么“总结状态”记录就是这个通道所有的余额。“总结状态”允许新的参与者进入状态通道。因为JURA网络严格区分接收交易和发送交易,当有个新的参与者想加入时,他可以发送一些token到智能合约上,智能合约会更新总状态并将收到的钱存在总账户里。“相关输出”也会加入新参与者的账户及其通道余额进行更新。
但是对于那些不是只想进行一次发送交易的参与者,我们鼓励他们存进更多存款,好让智能合约不用分次上链去公布总结状态达到共识。
在此通道中,“总结状态”必须和所有参与者个人状态的汇总符合。在支付通道中,这意味着每个参与者在此通道的余额必须加起来等于此通道的总存款。
第二层智能合约可以让一个验证人维护,这个人必须有权提出该通道链下的所有参与者的新状态。
参与者离开通道不像进来那么容易。参与者在验证人故意阻止交易,或者不想再进行链下互动的情况下会离开。脱离的程序要求链上状态更新,脱离的人要在通道上公布状态信息,之后他的状态就不会再更新。我们不期待此人可以提供链下最新的状态,因为链下状态可以非常快。但一旦该人提供merkel证明,需要等其他通道参与者给出反证。如果其他通道参与者提供一个想离开参与者签署的更新的自己的状态,证明这个人不守信,那么这个人就需要交罚金。我们还有一些在离开状态通道时候不需要提供最新状态的案例,我们会在下一节详细描述。
OP_RETURN操作码的调用,可以这样简单的理解,将BCH链上的交易添加“备注信息”,因为BCH链上数据不可篡改,有时间戳可以追溯,将Bitcoin Cash的区块链里的OP_Return数据提取出来。
元数据存储在BCH链上,合约执行在虫洞客户端上。这样分层设计,可以保证数据的安全性,虽然不能保证数据回滚也就是双花,但是双花成本过高基本上可以忽略不计。
JURA第二层解决方案可以运用到目前对支持智能合约的项目,如以太坊的智能合约和比特币的“虫洞”智能合约项目。在这些项目中,任何一个节点可以通过智能合约并配合JURA展方案实现链外通道和状态通道的转换。
总而言之,无论怎么发展,整个区块链的技术源头和代表,都是公链。几乎所有的应用场景,也都基于公链技术的发展而不断拓展的。2019,公链的创新与升级,依旧是区块链发展的重中之重。