SCP的理念源于SmartWeave,其为建立在Arweave上的智能合约平台,通过懒惰评估过程(The Process of Lazy Evaluation)将智能合约的执行负担转移到用户身上。不同于以太坊每个节点都要执行每一笔交易(这样的共识会影响计算效能),SmartWeave采用“惰性评估”系统,将交易验证的计算交给用户。当用户与 SmartWeave 合约交互时,他们会评估 dApp 上的每笔先前交易,确认与链上存储数据最新状态一致,然后将交易结果写入 Arweave 网络进行存证,如此重复。运行时,可将SmartWeave看作是链外运行的虚拟机。其通过读取应用程序的代码以及Arweave上的输入参数,在本地完成交易的执行,之后再将输出结果与Arweave同步,从而实现链上存储与链下计算的分离。用户的验证工作类似区块的链式结构,逐级追溯、验证交易,而这一切并不需要在链上完成,而是用户在链下完成的工作,也就是说,这个环节可以不受共识机制的束缚。 SCP的另一个开发实例是Arweave上的everPay。everPay是一个跨链代币支付协议,为用户和商户之间提供实时的代币支付服务。everPay将其他公链的各类资产锁定在一个智能合约之中,并将其映射成相应的资产。如当用户将资产从ETHereum跨链至Arweave时,首先由Coordinator收集和验证交易,并将各笔交易放入序列化的待处理交易池中,随后待处理的交易会被分批打包,每隔一段时间上传至Arweave。此后Detector会对链上全局状态以及账户余额进行验证,任何用户都可以申请成为Detector节点。而Arweave上未经处理的交易则会由Watchmen来使用多重签名或阈值签名来完成,并将完成结果返回至Ethereum。因此,合约的执行均在链下完成,数据均存储于链上,实现存储与计算的分离。 总结而言,基于存储的共识范式建立起了Offchain-Dapp的原型。链上存储,链下运行,充分发挥链上存储可溯源、不可篡改的特性。在基于数据可信的基础上,解放链上运行所带来的的负载压力,将其分散至用户方,更合理的使用Web3.0资源的同时,提高Dapp的运行效率。同时,SCP的开发可以基于任何编程语言进行,且链下计算的效能提高了可用性和可扩展性,存储成本低;同时,链下部署应用程序与Web2.0应用可以进行很好的对接。 另外,如何确保链下应用程序执行的计算可信——即如何实现SCP的共识?数据来自于AR链上,应用程序也可以开源发布在链上,因此,计算程序和数据均有链上存证保证,如果用户本地修改应用程序和数据,那么相当于形成了一次分叉,并不源数据和应用程序的计算结果共识。这一点与区块链项目的开源代码类似,矿工节点运行一样的开源客户端脚本,形成一致共识。如果对客户端代码(或者数据源)进行修改,那么将形成一次分叉。因此,虽然运算是在链下执行,但来自于链上的数据源和开源程序代码确保了链下结果可信。 (责任编辑:admin) |