金色观察|一文读懂PlatONE
PlatONE是基于隐私计算的新⼀代联盟区块链平台,以⽀持企业级应⽤。平台提出了⼀种以隐私计算为特⾊的企业级联盟链基础设施,可满⾜⾦融商业等多种需求场景。
⽬前PlatONE提供了多种创新性技术和功能,包括:安全多⽅计算、同态加密等密码学技术植⼊、优化的⾼效共识、⾼TPS、完备、易⽤的企业级⼯具链和组件、优化的⽤⼾/权限模型、多开发语⾔⽀持等特性,旨在解决当前联盟链发展中存在的困境。
在PlatONE中,公开可验证计算⽅案还具备如下特性:
· 不可伪造性:对于任意恶意的服务端,如果 ,那么产⽣可接受的证明 在计
算上是不可⾏的;
· 计算有效性:针对⼀些函数,⽣成证明是相对有效且低成本的;
· 不涉及可信第三⽅初始化过程。
从可验证计算⽅案特性我们知道,验证算法的开销⽐计算算法的开销要⼩,因此在PlatONE中我们使⽤公开可验证计算⽅案能显著降低计算节点的开销,并且⾼开销的计算可以转移到链下进⾏处理,能进⼀步提⾼可扩展性且降低链上计算开销。
安全多⽅计算(Multi-party Computation)主要⽤于解决在多⽅协同计算任务中⽤⼾数据的隐私保护问题。在传统密码学⽅案中,如对称加密、⾮对称加密等,⽅案针对系统合法⽤⼾外的恶意攻击者,提供了数据在传输或存储过程中的机密性、完整性的保护。⽽在安全多⽅计算的⽅案中,要求保护每个合法参与者各⾃的数据隐私。
安全多⽅计算可以被⼴泛应⽤在电⼦选举、⻔限签名以及电⼦拍卖等应⽤中。安全两⽅计算是安全多⽅计算的基础和特例,有着重要的理论价值和⼴泛的应⽤价值,⽬前,安全两⽅计算协议的主流设计框架仍基于姚期智先⽣最早提出的基于加密电路的两⽅计算通⽤协议,并由Beaver、Micali和Rogaway进⼀步扩展到多⽅计算。
Yao基本协议的核⼼技术是加密电路(Garbled Circuit,简称GC)和不经意传输(Oblivious Transfer,简称OT)。
为了更好地满⾜在⾦融等领域的应⽤需求,PlatONE引⼊了对国密算法SM3的⽀持,⽤⼾可以在智能合约中完成SM3签名的验证功能。
SM3是基于椭圆曲线的公钥密码算法,在商⽤密码体系中,⽤于替换RSA算法,可⽤来实现⾮对称加密、数字签名、密钥交换等功能。作为⼀种基于椭圆曲线的公钥密码算法,SM3算法在相同安全程度下,较RSA算法在密钥规模上存在优势。
国密算法即国家密码局认定的国产密码算法,即商⽤密码。商⽤密码,是指实现商⽤密码算法的加密、解密和认证等功能的技术。商⽤密码的应⽤领域⼗分⼴泛,主要⽤于对敏感的内部信息、⾏政事务信息、经济信息等进⾏加密保护。⽐如:商⽤密码可⽤于企业⻔禁管理、企业内部的各类敏感信息的传输加密、存储加密,防⽌⾮法第三⽅获取信息内容;也可⽤于各种安全认证、⽹上银⾏、数字签名等。
国密标准是我国⾃主设计的商⽤密码标准,实现了对称加密、⾮对称加密、消息摘要等密码算法功能,⽤以改变在以银⾏业等核⼼⾦融领域⻓期依赖3-DES、SHA-2、SA等国际通⽤密码算法体系及相关标准的现状,从⽽达到摆脱对国外密码技术的过度依赖,实现密码算法⾃主可控的⽬的。国密标准主要包括SM-2、SM-3、SM-4、SM-5、SM-10等算法。
PlatONE中的电路
PlatONE中,智能合约被编译成布尔电路(Boolean Circuit),布尔电路是由各种不同的⻔(Gate)构成的“复杂有向⽆环图”,可分解为细粒度的计算任务,并通过PlatONE⽹络将计算任务分发到多个计算节点并⾏计算。为保证计算的可靠性,避免因节点掉线或超时导致计算失败,同⼀个⼦任务会同时分发给多个计算节点,保留⼀定的计算冗余度。
电路是由各种不同的⻔(Gate)通过输⼊输出线构成的“复杂有向⽆环⽹络”。由逻辑⻔(⽐如:与、或、⾮、异或等)构成的电路称为布尔电路(Boolean Circuit);由算术⻔(⽐如加法、乘法等)构成的电路称为算术电路(Arithmetic Circuit)。任意形式的计算都可由电路表⽰,电路以有限种类的⻔构成各类复杂的计算形态。电路因为其基本组成部分的简易性,是在密码学中被⼴泛使⽤的计算模型。PlatONE通过电路来⽔平地连接各类算法和硬件。电路作为安全多⽅计算、零知识证明、可验证计算、全同态加密共同使⽤的通⽤计算模型,以其超强的普适性串联各类算法。电路表⽰的算法也天然适合专⽤硬件的实现。电路是PlatONE度量“计算”的基础。构成电路的基本单位为⻔,不同种类⻔的资源消耗不同,整个计算的度量可表⽰为电路中所有⻔的消耗的度量总和。电路为计算的度量和定价提供了理论基础。
专⽤计算硬件
PlatONE中,智能合约的计算逻辑被编译成布尔电路进⾏计算,整个计算回归到与、⾮、异或等处理。⽽布尔电路的操作,天然与FPGA的架构相匹配,通过将智能合约转换成FPGA的布尔电路并通过FPGA来执⾏这些逻辑单元,能够极⼤地提⾼运算效率和降低功耗/成本。PlatONE将在适当的阶段推出基于FPGA/ASIC的专⽤计算硬件,会极⼤提升整个区块链平台的交易性能,真正实践下⼀代计算架构当中的硬件部分。
权限模型
现实场景中的商业模型往往是⽐较复杂的,它包含⼤量的商业元素及它们之间的关系,并且⽤来描述商业⾏为中的不同⽅⾯,如操作流程,组织结构及⾦融预测等。因此为了更好的满⾜不同企业级⽤⼾的需求,且保障节点间通信安全性,以及对节点数据访问的安全性,PlatONE采⽤系统合约的⽅式实现了⼀整套完善的权限模型,包括节点准⼊机制,⽤⼾⻆⾊管理,合约防⽕墙等功能,充分满⾜不同商业需求,为产业赋能,且在⽹络和存储层⾯上做了严格的安全控制,提升系统安全性。包含:
· 节点准⼊机制:PlatONE通过节点管理合约对节点进⾏管理,包括节点是否能够接⼊⽹络,节点是否能够参与共识以及节点信息的维护等功能。
· ⽤⼾⻆⾊管理:PlatONE根据不同的权限,设定了不同的⽤⼾⻆⾊,并通过系统合约的⽅式对⽤⼾的⻆⾊进⾏管理。根据不同的⻆⾊,⽤⼾在系统中被赋予不同的权限。
· 合约防⽕墙:PlatONE中合约的调⽤权限由合约防⽕墙控制,只有合约的创建者才可以设置该合约的防⽕墙。
CNS(合约命名服务)
PlatONE中实现了合约命名服务,⽤⼾可以通过合约名称及版本号来访问智能合约。
合约命名服务英⽂全称为Contract Name Service,简称CNS 。合约命名服务维护了名称、版本到合约地址的映射关系,提供了对系统中合约的管理功能,包括合约的注册和注销,合约注册信息和地址的查询等功能。
PlatONE使⽤系统合约实现了合约命名服务,⽤⼾部署合约后可以将该合约注册到系统合约中,后续调⽤可以通过合约名称及版本进⾏调⽤,⽽⽆需使⽤合约地址。如果交易是根据合约名称、版本来调⽤合约,PlatONE底层⾃动在系统合约中查询名称版本对应的合约地址,然后调⽤该地址的合约。
形式化验证
PlatONE中引⼊形式化验证⼯具及安全技术验证,可以为智能合约提供安全审计功能,发现智能合约中安全相关的漏洞缺陷,如资⾦数值溢出,数组越界等,同时也可以发现智能合约中功能逻辑的漏洞,避免合约代码实现与设计不⼀致所导致的⻛险。
企业级部署与运维⼯具集
⽬前市⾯上⼤部分联盟链的部署和运维⼯具集都多多少少涉及到⼯具的安装以及额外的环境依赖,所提供的部署⼯具集,也常常需要执⾏⼤量的部署步骤,花费较多的时间和学习成本。
PlatONE系统提供了丰富的企业级部署⼯具,极⼤的降低了复杂度;以及提供了完善的说明⽂档和相关的PlatONE运维建议,贯穿着部署与运维的各个⽅⾯。以灵活、易⽤和极低的学习成本为出发点,以最⼤化提⾼部署与运维友好度为⽅向,从⽽实现更快捷的部署、开发和维护。