本文转载自微信公众号 PlatON Cross
原创作者:PlatON Cross小编
以太坊的诞生拉开了区块链上去中心化应用生态发展的序幕,其智能合约便是区块链上各类DApp去中心化协同的纽带。如果说互联网web2.0时代,后台集群中心通过对数据的掌控以及云服务的部署为各类线上应用提供了动能,那么在区块链时代,数据分布在每个对等个体的手中,而智能合约便是各类DApp的“去中心化”动能,这也是web3提出的核心理念之一,使人们第一次看到了数据所有权与使用权的分离的技术可行性。
然而,以太坊发展至今,去中心化生态应用产品方面已经出现了众多尝试,但受众数量有限。在一定程度上,这是人们隐私保护和安全意识的觉醒。在传统互联网时代,大型公司对用户数据与隐私绝对占有使用户别无选择,导致了用户隐私与安全意识的薄弱。而在去中心化场景中,由于个体对等,人们逐渐意识到了环境中存在不可信威胁,发现了数据主权与隐私的重要性,导致人们对DApp的参与充满了警觉。在此背景下,去中心化生态应用对隐私计算合约的需求日益迫切,这将是不可信环境中可信计算、数据交易的链上核心保障。
隐私计算合约的技术需求
从去中心化生态应用的角度看,隐私保护的缺失使数据所有权和使用权无法分离,可验证性的缺失使多方协同计算缺乏信任机制。因此,去中心化生态应用对可验证性、隐私性都提出了需求。
- 可验证性需求
可验证性技术需求方面,在多方参与的环境中,合约应能够支持公开计算的可验证性,即保证某含义公开的计算,其过程是切实执行了的,其执行结果是真实可信的。典型应用为在多方参与的环境中,通过提供一定的证明,公开声明自己具备某种能力。例如,去中心化的分布式存储,向其他参与者声明自身拥有一定大小的存储空间。
当前,已经有相关的区块链项目进行了这方面的尝试,如Crust,通过TEE硬件提供的计算可验证性,提供存储空间大小的证明。但TEE的证明需要在intel的中心服务器上进行验证,一旦通往其中心服务器的网络由于意外无法联通,则会导致整个应用无法得到信任保障,存在中心化带来的一系列风险。
- 隐私性需求
隐私性技术需求方面,首先,合约应能够支持计算算力的隐私交易,在交易双方/多方身份(地址)、计算元素、计算过程具备隐私保护的前提下,双方能够顺利完成算力的交易。典型应用类似具备用户数据、计算过程的隐私保护机制的IaaS服务。例如,A开发了一套数据挖掘算法,同时拥有数据,但没有足够的算力;B1、B2、……、Bn拥有算力,隐私合约促成A和B之间的交易,但保证B不知道为谁提供了算力,A不知道谁为自己提供了算力。同时,数据(计算元素)、数据挖掘算法(计算过程)对B而言也是含义不可知的。
其次,合约应能够支持计算服务的隐私交易,在交易双方/多方身份(地址)、计算元素具备隐私保护的前提下,双方/多方能够顺利完成计算服务的交易。典型应用类似具备计算要素(如数据)隐私保护机制的SaaS。例如,A想对自己拥有的数据(计算元素)进行挖掘,B1、B2、……、Bn能够提供数据挖掘计算服务,隐私合约促成A和B的交易,A、B之间身份保密,B无法获知A数据的具体内容,以及计算结果的具体含义,A获得计算结果。
- 隐私地可验证
可验证性和隐私性分别从不同的维度提出了在不可信环境中执行可信计算的技术需求。去中心化生态应用的顺利执行,需要在确保数据所有权的前提下,使数据的使用权能够在多方传播和使用。然而,隐私意味着非公开,非公开意味着不可直接从语义上进行验证。
所以进一步的,提出了“隐私地可验证”方面的技术需求:
合约应能够支持隐私计算的交易和验证,在双方/多方身份(地址)、计算元素、计算算法及计算内涵受到隐私保护的前提下,确保执行过程是切实执行了的,执行结果是真实可信的,执行结果的含义仅提出者知悉,且在合约上可进行验证。
PlatON隐私计算合约解决方案
PlatON隐私AI网络,可以为去中心化不可信环境,提供一整套隐私、可信的多方协同计算机制。该网络分为两层,layer1区块链主链层,layer2隐私AI网络计算层,其特有的智能合约,是无缝衔接这两层的核心枢纽。PlatON智能合约除了对solidity合约、WASM合约的支持,还提出了与其layer2隐私AI网络完美融合的一套特有的合约机制,包括隐私合约、可验证合约。
- PlatON隐私合约
按照PlatON官方的说法[1],隐私合约同样支持高级语言开发,编译成llvm ir中间语言执行。隐私合约的输入数据保存在数据节点本地,由数据节点通过秘密分享给到多个随机计算节点,计算节点在链下以安全多方计算方式进行隐私计算,并提交计算结果到链上。
PlatON隐私合约的运行机制非常清晰:
1.合约在layer1上部署;
2.数据节点向隐私合约注册;
3.请求者发起计算交易触发隐私合约执行;
4.执行中随机选择多个计算节点;
5.计算节点向数据节点进行数据请求;
6.数据节点完成秘密分享后,将数据推送给计算节点;
7.多个计算节点进行安全多方计算,将结果提交至隐私合约;
8.请求者通过访问合约,获取计算结果。
可以看到,数据经过了数据节点的秘密分享,任何计算节点无法获知数据的真实内涵。同时,计算请求者无法接触中间计算过程和数据,但获得了最终的计算结果。在此场景中,数据使用权、所有权是分离的,且任何参与方,都无法获取到全局信息,以及彼此的身份信息,有效保障了计算要素、计算过程、参与者身份的隐私。
- PlatON可验证合约
PlatON的可验证合约属于WASM合约的类型,可验证合约的状态转换在链下由计算节点异步执行,计算完成后新的状态和状态转换证明提交到链上,全网节点可快速验证正确性并将新的状态更新到公共账本中。可验证合约可支持复杂、繁重的计算逻辑而不影响整条链的性能。
PlatON可验证计算的运行,是由client端通过PlatON node来发起并执行的,PlatON可验证合约的运行机制如下:
1.合约编译之后,在layer1上部署;
2.client通过PlatON node提交VC计算请求,并质押计算费用;
3.待交易所在区块确认后,触发合约执行,并转换到链下执行计算,计算结果和证明通过合约返回给PlatON node(再返回给client);
4.PlatON node向合约提出结果、证明验证请求;
5.合约验证操作触发后,执行验证过程,若通过,则合约将client质押的计算费用,划转给相应的节点。
根据PlatON官方的说法[1],PlatON的可验证方案暂时基于zk-SNARK算法,后续逐步替换为更优化算法。
PlatON独创的可验证合约、隐私合约,是目前隐私计算合约方面非常前沿的研究成果。未来,隐私计算合约可能还需要满足去中心化应用中更多新的需求,相信PlatON作为这个方向上领先的实践者,将继续推起隐私计算领域的技术浪潮,为将来无限可能的去中心化应用生态保驾护航!
参考资料
[1]https://devdocs.platon.network/docs/zh-CN/PlatON_Overall_Solution/
本文转载自https://mp.weixin.qq.com/s/VniylH6kuy9Nn71s-XlDhg