Time:2021-12-10 Click:539
链上链下协同技术涉及的技术很广,目前市场上的平台只实现了链上链下协同的部分功能,例如链上获取链外数据的预言机、链下文件存储的可信存储、以及链下计算等。国外对这些技术有一些研究,主要应用在数字货币领域。国内区块链应用以联盟链为主,链上智能合约获取的数据主要来自于可信的业务系统产生的数据,另外国内大部分厂商提的链上链下协同技术目前主要指链上存数据哈希,链下存完整数据这种协同方式,链下链下协同技术目前并没有形成完善的平台。
技术研究
预言机(Oracle)是链上获取链外数据的核心机制。当区块链上的某个智能合约有数据交互需求时,预言机在接收到需求后,帮助智能合约在链外收集外界数据,验证后再将获取的数据反馈回链上的智能合约。预言机提供一种无须信任的方式提供外在的信息,在智能合约和外在真实世界之间架一副桥梁,比如提供体育比赛的结果、天气数据、资产价格等。
由于中心化的预言机会有信任中心化系统带来风险,目前主流的预言机平台主要是去中心化预言机,例如Chainlink是以太坊上去中心化预言机平台,如下图所示,通过链上智能合约和链下的数据节点,通过奖惩机制和聚合模型的方式,进行数据请求和馈送。
Chainlink实现智能合约与数据源和API的连接,可实现跨链和链下的交互和支付。Chainlink采用分布式数据源(Distributing Sources)、分布式预言机(Distributing Oracles)、使用可信硬件(Use of Trusted Hardware)三种方案。目前预言机技术解决了链上获取链下可信数据源的问题,但是功能比较单一,性能比较差,采用可信硬件的方式虽然能提升性能,但是依旧存在功能比较单一的问题。
可信存储主要解决链上存储容量有限、存储代价高的问题,链下存储可以有效的解决链上存储的问题,但是会存在如何保证存储的数据是可信的,没有被篡改的问题。可信存储将数据存储在链下,同时提供可信的存储证明,链上可验证,保证了存储的数据不能篡改,篡改可验证,解决了链上存储容量有限、存储代价高的问题。
例如Filecoin项目是提供存储服务的公链项目,用户通过支付FIL来存储和读取文件,为了保证用户存储的文件不会被删除、篡改,存储服务需要提供文件的PoS存储证明(Proof of Storage)。存储证明的流程如下图所示,挑战者向存储数据的证明者发起一个随机挑战,挑战是指挑战者向证明者问的一个问题,一般是让证明者提供一个指定数据的存储证明,证明者针对该挑战生成对应的证明,证明包括数据以及对应的随机挑战,挑战者收到证明验证结果,验证正确则说明证明者的确存储了该数据,否则没有存储。
存储证明未必需要发送原数据,也可以通过计算一个依赖原数据生成的结果来证明,可以降低传输数据量,缺点是计算复杂,需要消耗更多的CPU算力。可信存储有效的解决了链下数据存储的可信问题,但是存储证明算法要么需要传输数据提供证明,存在流量消耗比较大的问题,要么需要计算可验证的结果,存在CPU消耗比较高的问题,如何寻找一个业务可以接受的平衡点是一个难题。
链下计算赋予区块链更强的计算能力,链上计算由于共识机制的原因计算代价太高,通过链下计算并将可信的计算结果放到链上大大的提升了区块链的智能合约能力。例如Chainlink 2.0提出了一种用于构建混合智能合约的新架构,其中去中心化预言机网络DONs(Decentralized Oracle Networks)作为安全的链下计算层,状态依赖区块链来实现安全性,开发者可以选择智能合约的一部分在链上或者链下执行,大幅缓解了以太坊上的压力和操作成本。目前链下计算仍然主要聚焦在数字资产领域,对于原始数据有隐私性要求的,该链下计算并不能满足要求,虽然有一些项目可以解决隐私交易的问题,但是使用场景仍然比较局限。近年来,隐私计算技术在国内悄然兴起,主要包括安全多方计算技术、可信执行环境以及联邦学习。
安全多方计算:基于密码学算法实现多方之间数据的隐私计算,使用方只能获得最终的计算结果而不能获得该计算结果以外的任何其他信息。可信执行环境:基于软硬件结合的方式保护数据隐私,数据只能在可信执行环境内部解密,外部即使攻破操作系统也无法获取该数据,从而在可信执行环境内部计算最终的结果并返回,外部无法获得结果以外的其他数据,保证了数据的隐私安全。联邦学习:主要解决多个机构联合训练时中间参数交换的隐私问题。
但目前安全多方计算技术的应用还停留在case by case设计的阶段,如何实现一个通用的安全多方计算框架,在数据隐私保护和计算效率之间进行平衡是个难题。可信执行环境目前主要是国外的厂商提供,有存在后门的风险,研究国内自主可控的可信执行环境是个工程难题。联邦学习目前虽然有一些开源的框架,但是联邦学习实际的应用目前并不广泛,还有较长的市场培育期。