概述
PlatON致力于建设下一代隐私计算架构和数据交换网络,基于现代密码技术和区块链技术,创造全新的计算范式,保证用户数据隐私的前提下,无需依赖第三方就可进行协同计算并验证结果的完整性。
在官方介绍中,PlatON使用包含且不限于零知识证明(ZKP)、可验证计算(VC)、同态加密(HE)、安全多方计算(MPC)、秘密分享(SS)等现代密码算法来实现非交互证明的计算扩容方案。我们今天摘取多方安全计算(MPC)与可验证计算(VC)与大家共同探讨:
安全多方计算
安全多方计算,英文全称为Secure Multi-Party Computation,简称MPC。它指的是用户在无需进行数据归集的情况下,完成数据协同计算,同时保护数据所有方的原始数据隐私。具体来说,n个计算参与方,分别持有自己的私有数据,完成一个共同的任务(如求和),计算完成后,能得到正确的结果。同时各参与方除了自己的输入数据与输出结果外,无法获知任何额外有效信息。
以实际解决的场景为例: 在国家普惠金融政策指引下,各个银行纷纷放宽了贷款的限制。各个银行内客户的放贷数据是银行的商业机密,且是客户的重要隐私数据,目前银行间没有该部分数据的共享手段。 这就带来一个漏洞:恶意用户有机可乘,可用各银行不能有效共享数据的问题,同时向多家银行贷款(往往是无抵押的信用贷款),单一的房贷机构风控模型无法检测出这一风险。
此时,某用户小明月收入为1万元,根据各个银行的风控模型,对于小明的无抵押信用贷款授信均在10万元。如果,小明在A、B、 C、 D、E 5个银行同时申请信用贷,就可能获得50万元的无抵押贷款。
在使用安全多方计算后,用户向任何一家放贷机构申请贷款时,都会触发一次多方参与的联合计算(多方隐私投票),计算出当前申请方在所有放贷机构的贷款总金额。然后可以设计进一步的风险控制模型,决定是否向申请方贷款及具体贷款金额。通过这种方式,可以降低所有参与联合计算的贷款机构的放贷风险,确保国家普惠金融政策的平稳有序执行。
即: 小明在A银行申请10万贷款后,再向B进行申请。 B会在联盟内向各企业发起多方联合计算,最终得出,小明在5家银行一共已贷款10万(只知总和,但并不清楚在其他哪家,及分别的贷款金额)超过了B对小明的风控模型,因此B银行就不会发放贷款,从而避归一定的金融风险。
PlatON的多方安全计算技术描述,可参考链接:https://devdocs.platon.network/docs/zh-CN/Secure_Multi_Party_Computation/
可验证计算
PlatON基于可验证计算(VC)密码学算法(目前版本基于zk-SNARK)实现一种可验证合约的解决方案,主要思想是用户将复杂合约的计算外包给第三方,第三方具有强大的计算处理能力,他的计算成本低于用户自己直接计算的成本, 计算后,将结果和相应的计算正确证明上链验证,验证计算的速度成本都远低于直接计算,这样就可以扩展单节点的计算能力,而且不损失安全性。
可验证计算也很好理解,在实际生活中,有的工作要花费较大的计算量,但却很容易得到验证。如: 求解 x^3 + x + 5 = 35 方程,我们需要一定的时间与技巧才能解出答案。可如果有人告知 x = 3 , 你可以很快的带入原式进行验证: 27 + 3 + 5 = 35 正确。这类任务特性是,计算耗时,但验证容易。
再比如区块链中 POW的挖矿机制,本质也是在不断的寻找一个合适的nonce值,使得计算结果的hash值满足一些特定的条件。 比特币中,通常需要10分钟才能找到这样一个正确的值,一旦找到,所有节点在验证时,只需一瞬间就可知道计算结果是否正确。
在PlatON可验证计算中,验证工作的复杂性,会远小于计算任务本身,也就是说,验证速度会比计算更快。目前成熟的VC技术,可以让验证速度做到常数级别,即不管计算任务多复杂,仅需常数时间(例如几个毫秒)就可以完成一次验证,可以达到商用标准。
以太坊社区中很火的zk-rollup技术,使用zk-SNARKs零知识证明,就是可验证计算的一种,可以极大的提高ETH的TPS。在现实生活中,物联网传感器因计算能力有限,也可以将计算工作交给云端,保证云服务是“正确且可靠”的处理了相关数据。由此可见,可验证计算具备非常广阔的应用场景。
PlatON的可验证计算基数描述,可参考链接:https://devdocs.platon.network/docs/zh-CN/Verifiable_Computation/