超零协议(SERO)真正使用零知识证明的隐私保护平台

当前位置:首页 > 区块链 > 区块链项目 发布时间:2018-12-06编辑:来源:www.chgold.com阅读数: 手机阅读
互联网⻜速发展让信息的流转速度变得非常⾼效,从而推动了人类社会的发展,但从另外一方面看,隐私问题也正是因为互联网的⾼速发展而变得更加严重。区块链作为下一代的价值互联网,曾被认为是保护隐私非常好的工具,但大家很快发现,当前主要的区块链网络中,一旦数字钱包地址和它的拥有者的个人信息对应起来,该钱包的拥有者所有账户信息、交易信息都将在整个网络中一览无遗并且无法消除,这会导致比互联网的隐私泄露更加严重的问题。为此区块链行业的密码学和顶尖的技术专家都在进行不懈努力,业界有几支团队研发了一些保护隐私的特殊虚拟货币,这类虚拟货币被称之为“匿名币”,行业中比较有名的数字货币包括大零币 Zcash (ZEC),门罗币 Monero (XMR),达世币 (DASH)等,这些采取了一定隐私保护的数字货币基于其巨大的市场需求,均获得了非常⾼的流通市值,排名在全球20大虚拟货币之列,说明隐私保护对区块链行业而⾔是一个非常强烈的需求。智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。区块链上图灵完备的智能合约系统,可以满⾜开发者编写任意复杂的,存在于区块链上并且能被区块链传递的合约。开发者可以用智能合约开发语⾔实现比如定制货币、⾦融衍生品、身份系统和去中心化组织等功能,极大的扩展了区块链系统的适用范围。智能合约是价值互联网重要的的技术基础之一,但是目前令人沮丧的情况是,全球目前运行的区块链系统均不支持对智能合约加密保护,现有的隐私保护机制使用场景受到这一技术限制的影响被极大的缩小了其适用范围。区块链技术起源于中本聪发明的比特币,被视为区块链1.0,让人类世界找到了数字虚拟货币这一巨大的财富;而当以太坊面世后,智能合约的发明让区块链技术的落地变得更为可行,从此基于区块链技术的去中心化分布式应用(简称“DApp”)成为可行,这让区块链技术可以被运用到更多的行业中,因此以太坊被视为区块链2.0。同样可以类比,如果Zcash和门罗币为代表的不支持智能合约的匿名区块链系统是隐私保护方案1.0的话,为了让方案可以落地到更多行业和应用场景中去,支持智能合约的隐私保护方案2.0备受期待。不可否认的是,支持智能合约的匿名区块链系统具有非常⾼的技术门槛,全球仅有屈指可数的团队正在为之努力,如今Super Zero(简称“Sero”,中文:超零币)也正式向全球进行产品发布,Sero的研发团队(简称“Sero团队”)也是目前全球唯一能就该问题提出完整的解决方案,并已经完成主要工程研发工作的团队。不仅如此,Sero团队并没有将成功研发支持智能合约的隐私保护区块链系统作为去中心化应用的隐私保护方案的终点,为了让受到隐私保护的去中心化应用的广泛落地成为可行,Sero团队不但考虑到了保护DApp使用者的账户隐私、相关令牌(Token)和私有数据传递过程的隐私,同时充分考虑到了在区块链系统数据传输过程中,之前受各层传输层协议限制的隐私保护策略,甚⾄还包括了去中心化应用和互联网应用相结合场景下的数据隐私保障。为此,Sero团队设定了一个能为去中心化应用提供完整隐私保护解决方案的三件套项目,包括Sero(支持智能合约的匿名区块链系统)、异形协议(一个能解决去中心化网络信息传输的协议)以及卡斯特罗协议(保护去中心化网络,以及为互联网交互的各节点提供隐私保护的协议)等尖端创新科技组件。最近Sero已经完成了核心的研发工作,包括隐私保护相关协议,和图灵完备的链上运行智能合约,本文主要就Sero的工作进行说明,并包含了该项目的一些基本情况以及披露后续的项目计划。 Sero(Super Zero,超零系统)是全球⾸个通过非交互式零知识证明(NIZK),真正实现具有图灵完备智能合约的隐私保护的区块链系统,和现有的区块链隐私保护技术相比,Sero不仅能实现对账户信息和交易信息的隐私保护,还能实现对图灵完备的智能合约输入输出的隐私保护,另外,开发者还能基于Sero-Chain上的智能合约发行的匿名数字资产(Token),并且与智能合约的通讯信息也同样会得到隐私安全保护。Sero重新设计了区块链结构和各类底层协议,使得对隐私保护的图灵完备智能合约成为现实,不仅使更广泛的应用场景获得了隐私保护措施,并且因为其采用的先进的NIZK加密学算法,也进一步提升了对用户隐私数据的攻击难度。除此之外,在即将发布的V1.0版本中,改进了目前NIZK加密算法的实用性问题,大大降低了所需要消耗的内存资源,提升了计算效率。除此之外,对比市面上的主流匿名区块链系统,Sero对图灵完备的智能合约的支持和对其相关的去中心化应用的隐私保护措施,使其使用场景得到了极大的泛化。更值得一提的是,Sero团队不仅考虑到了去中心化应用本身所需要的隐私保护措施,而且还从应用落地的⻆度,计划从点对点的网络传输安全以及账户物理的网络地址的隐私性⻆度提供解决方案,可以使与中心化应用交互时,或者与使用者客户端交互式时也能获得强大的隐私保护功能。 整个综合解决方案会由三位一体的全套套件构成,其中Sero是第一个公开发布的项目,另两个项目的定位分别如下:异形协议 (Alien Protocol):一种分布式的DNS系统,可以利用现有的P2P网络交互信息,具备IP自动切换和动态寻址的功能,抗攻击者阻断,使整个数据传输网络具备⼗分稳定的安全性。卡斯特罗协议(Castrol Protocol):通过去中心化网络的方式,实现对IP地址的匿名保护,可同时运用于中心化和去中心化网络的物理节点的隐私保护。 SERO的设计1. 设计原则正如前文所说,现有市场存在的去中心化网络的隐私保护技术,并没有跟去中心化应用相结合,尤其是没有对智能合约的执行进行隐私保护。在智能合约中执行的动作序列,通过网络传播和/或记录在区块链上,是公开可见的。在图灵完备的区块链网络中,Sero的设计,在满⾜系统能力需求的同时,还必须满⾜几个基本的原则。不可追踪性,区块链网络中的每一笔交易都具有输入和输出,如此一来,就构建了一个交易的有向无环图,在这个图上可以跟踪所有的交易流向,所有的交易序列都能被串联起来,并以此溯源。Sero的设计中要将两个交易之间的链接断开,使攻击无法进行。不可关联性,区块链网络中每个用户都有自己的收款地址,一旦这个地址跟真实的用户身份关联,那么,在网络中这个地址发生的所有交易,都能关联到这个身份上,该地址一切的行为都暴露无疑。即使用户可以创建新的假名公钥以增加其匿名性,每个假名公钥的所有交易和余额的值都是公开可见的。Sero通过加密技术⼿段使收款地址无法被关联。抗统计分析,真实用户的行为具有统计特点,如果区块链网络中的交易数据之间具有反应这样统计特点的关联性,通过对区块链数据的统计分析,就能够一定几率推测出这些地址发生的交易是属于某个特定用户的行为。即使是采用环签名,在面临有作恶的环成员或者节点的时候,抵抗统计分析的能力将会下降。Sero需要通过技术⼿段将地址以及地址之间的关系完全隐藏。实用性原则,Sero在对交易数据进行隐藏的同时,并不会一股脑的将所有的信息都纳入范围内,这样做是不经济并且运行效率低下的。Sero会兼顾用户已有的使用习惯和痛点,进行阶段性研发。可选的审计方案,对于某些较为复杂的商业应用领域,用户可能需要有一个完全信用的第三方对他发生的所有交易进行财务方面的审计,这时,他应该可以做出选择,决定是否给予第三方一个跟踪他所有交易具体信息的能力。 2. 实现方案在第一期的计划中,Sero通过非交互零知识证明(NIZK),将交易体系的输入和输出以及交易细节完全隐藏起来,除了交易双方,其他任何人对这些隐藏细节完全是不可见的。同时,因为考虑到线上运行智能合约以及公开合约发行资产总数具有普适性的适用性,Sero会保留链上运行的智能合约,将智能合约所产生的资产与Sero本身的交易体系融合,以此来实现智能合约所产生资产的隐私性。在第二期的计划中,对于具有隐藏合约发行资产总数的需求,我们将在线上运行智能合约内部提供一种名为隐匿数据的隐藏结构,同时只在链下对这种隐匿数据进行计算。以此来实现隐藏合约发行资产总数的功能。在第三期的计划中,我们会采用更为先进的共识机制,提升Sero网络的吞吐量。同时,对于具有隐藏合约内部计算规则的需求,我们会将合约的运行分解为线下计算和线上验证两个步骤,线下计算完全了解运算规则和数据,并给出运算后的加密结果,当这个结果提交到线上时,线上节点只会对结果进行有效性验证,以确定其中包含的数据是否符合运算规则,但节点并不知道这些数据和运算规则的详细信息。 3. SERO协议账户系统(Account System)账户分为用户账户和合约账户两个类别,其中,用户账户是用户选定一个 32 byte 的Seed,而合约账户根据用户安装智能合约的环境产生的一个 64 byte 的地址,两者都是系统唯一、不可重复的。用户账户可以产生个64 byte的私钥 ,和一个64 byte的公钥 ,该公钥就是用户的付款地址。在安装或者调用智能合约的时候,钱包会根据当前的情况生成一个暂存地址PK,这个暂存地址无法用任何方式关联到用户的私钥和公钥,并且只会使用一次。

在智能合约安装的时候,钱包会根据当前情况,将暂存地址转为一个64 byte的智能合约地址 (CADDR ) ,当节点收到地址时,需要确保合约地址是没有出现过的。

Seed是账户种⼦,用户必须妥善保存。SK是私钥,不可持久化存储,其中(TK)是跟踪私钥,可以提供给可信的第三方用作账户的审计。PK是公钥,提供给其他用户的交易目标地址。(PK)是暂存地址,提供给智能合约,临时用来接收资产的目标地址。 资产系统(Assets System)不管是用户账户还是智能合约账户,其下都具有管理无限种类资产的属性,除了交易费用结算采用Sero币以外,每一种资产都具有跟Sero本身等同的交易特征,除Sero币之外,其余的资产可以由智能合约产生。每种资产在产生的同时,可以赋予一个最⻓32 byte⻓度的名称(Currency),用于助记,这些名称也是不允许重复使用的。在账户进行余额查询或者转账操作的时候,可以指定资产类型。 见证系统(Witness System)Sero协议采用非交互零知识证明(NIZK),在生成交易的时候,需要提供资产来源的见证信息,每个节点会根据这些见证信息进行验证。因此,Sero会采用merkle tree维护一个记录状态变更的见证系统,系统在节点提供验证功能,在钱包端提供认证所需的信息。 ROOT = MERKLE_ROOT_AUTH(POSITION, LEAF, PATH)ROOT是当前 merkle 树的根,LEAF是第POSITION⽚叶⼦,PATH是LEAF到ROOT的证明路径。 证明系统(Proof System)Sero的证明系统包含一个基于有向无环图的计算电路,用来描述Sero每笔交易的内部约束,包括各种资产类型的输入输出平衡、公私钥验证、承诺的有效性、见证的有效性等环节。装载好数据的电路可以通过非交互零知识证明(NIZK)生成一个Proof,通过提交这个Proof,可以在隐藏大量细节信息的情况下,让节点对电路中装载的各种参数和约束进行验证。

执行步骤(Process Step) 1. 计算(Compute),用户采用账户、资产、见证系统提供的信息,并根据当前所需的计算,提供输入数据,然后在链下运行计算规则得到结果,结果通过上述几个系统将生成状态变更的密文(E)和一个证明(P1,P2)。 OUTPUT = COMPUTE(METHOD, INPUT, ACCOUNT, ASSETS, WITNESS)(E, (P1,P2)) = PROVE(OUTPUT )2. 提交(Commit),用户将生成好的密文(E)和证明(P1,P2),加上随机生成的寄存地址(ZRPK,VRPK),封装为交易(Stx),提交给节点。 FROM = (Rf , Rf PK)STX = (E, P1,P2,FROM)Commit(STX)3. 验证(Verify),节点在收到交易(Stx)之后,将其中P1在见证系统中进行确认,将P2交给证明系统,两者确认正确后会运行智能合约得到输出,最后将输出关联到暂存地址上。 witness_ret = CHECK_WITNESS(P1)proof_ret = CHECK_PROOF(P2)verif y_result = witness_ret & proof_ret4. 确认(Confirm),资产接受方在同步到得到验证的交易(Stx)之后,利用自己的私钥将结果密文(E)解出生成明文(D),并将明文(D)和证明(P1)输入到证明系统中进行校验,成功则说明交易是真实的。真实的交易如果被n个区块进行了确认,那么交易接收方可以认为这笔交易已经确认。D = DEC(E, VSK)commitment_ret = CHECK_COMMITMENT(D, P1,PK)confirm_ret = commitment_ret & block_confirm > n要说明的是,Sero的执行步骤是开放式的,也就是说这样的步骤和参数的抽象描述,可以支持“实现方案”中所描述的一到三期的修改,在后续升级时对代码结构的调整最小。通用隐私交易在Sero内部,普通交易中的数据都是加密的,非交易双方不能得知来源、去向、资产种类、⾦额等细节。系统在共识和交易处理时并不区分智能合约产生的资产和Sero本身的资产。线上智能合约Sero的通用智能合约可以进行公开计算,制定对各种资产的统计方案、处置规则、公示规则,但输入输出信息都必须通过暂存地址与用户的真实身份隔离。Sero智能合约兼容以太坊智能合约指令,也就是说以太坊大部分的智能合约可以不修改就在Sero上运行。 线上匿名资产智能合约通过调用线上匿名资产发行方法发行资产,所发行资产数量对所有用户可见,并具有与Sero本身资产等同的交易属性,可以通过隐私交易进行处理。线下匿名资产智能合约通过调用线下匿名资产发行方法发行资产,所发行的资产数量对用户不可见,这些资产具有Sero本身资产等同的交易属性,可以通过隐私交易进行处理。智能合约在此资产的输入和输出上,对于第三方不可见。匿名资产有多种类型以供不同的场景使用。线下智能合约智能合约在线下运行,计算规则只对部分用户可见,所发行资产数量对用户不可见,这些资产具有与Sero本身资产等同的交易属性,可以通过隐私交易进行处理。智能合约在此资产的输入和输出上,对于第三方不可见。 4. SERO面向的场景隐私保护是每个人都存在的强烈需求,Sero有巨大的市场应用前景,然而不仅如此,Sero支持开发者发行自己的匿名数字代币,意味Sero能够兼容千万个不同的经济生态的流通,而Sero对智能合约的支持意味着巨大的业务扩展性,使基于Sero发行的匿名数字代币不仅仅只是一种支付工具,这项技术的落地场景将会辐射到许多行业。医疗健康在泛医疗健康行业,数字隐私体现于方方面面,从个人病历到医疗记录,面向多⻆⾊的隐私保护和授权机制需要⼗分灵活和安全的隐私保护能力,涉及到医院、患者、保险公司、医药公司等,数据隐私的保护和限制授权使用显得尤为重要。在线竞拍在诸多追求公平的在线竞拍业务中,出价的私密性是非常重要的,但在利益驱使下往往难以做到,尤其是类似集合竞价这类⾼频报价、对其它对⼿的报价有限知情甚⾄毫不知情的规则下,报价数据隐私往往就代表了最终巨大的利益回报。而SERO可以为提供一个完全安全、独⽴、公平的报价环境。在线预测相关业在线菠菜业的发展一直以来受到中心化信任的制约,哪怕解决这点,基于在线预测的游戏对于对⼿的出价策略往往也是⾼度需要隐私保护的。在这个巨大现⾦流的行业中,非常需要一个能够提供集多人出价、支付、结算,并能有统一汇率的公平货币流通体系,而SERO完全能支持到这些。游戏每个游戏都有自己的经济生态,游戏中的数字资产自成体系,而同一个公司发行的不同游戏都很难就数字资产进行打通,但有时也会有这类需求,以便将游戏生态进一步扩大。因此大型的在线游戏往往需要一个易于流通、交易和结算的货币体系,并能基于智能合约发行和流通,同时还要兼顾交易的隐私保护(游戏资产的交易对用户而⾔往往并不希望被公开),而目前Sero是唯一能做到多货币体系能基于同态智能合约发行流通,且兼顾交易隐私的技术方案。还有更多的涉及资产数字化,又涉及数字资产隐私敏感的行业,如保险行业、数字贵⾦属交易、期货交易、数字资产交易(如征信和知识产权等)、信贷行业等,Sero对于这些行业在现有的市场中有着不可替代的方案优势,不仅支持⾼度的货币流通性对技术的需求,还支持独⽴完善的加密货币生态建⽴。5. 关于非交互式零知识证明(NIZK)的性能优化对于采用NIZK方案的区块链系统,目前最大的瓶颈就是生成交易时产生证明(Proof)的时间⻓度。幸运的是,交易通常是在钱包中生成。1. 目前我们构建系统时使用原生的zkSNARK库来实现NIZK,采用其中的ALT_BN128曲线和Groth16预处理过程,这个过程大约比Zcash的PGHR13预处理方案减少1/3左右运算时间。同时我们认为merkle tree的深度可以适当的缩减,并尽可能加入并行处理方案,可以将平均一个交易生成时间再次大幅度降低。虽然 zkSNARK 需要一个信用安装的过程,但Sero的实现方式中不会动态的构造计算电路。因此,在所有的场景下,zkSNARK协议是能满⾜Sero的需求的。2. 我们研究了Zcash最新的成果jubjub,并尝试采用他们的BLS12-381曲线,以及采用Twisted Edwards曲线生成公钥,pedersen hash进行merkle tree的生成,这样⾄少可以4倍以上提升交易生成速度。3. Bulletproofs也具备⼗分有趣的特性和性能上的优势(如批量验证的性能优势),而且天生支持椭圆曲线(EC)公钥和Pedersen commitments,也是我们的尝试方向之一。4. zkStark的“零知识证明机制”提供了更简单的密码假设,避免了椭圆曲线、配对和指数知识假设的需要,而仅仅依靠散列和信息论。这也意味着,这块在算法设计上,能抵抗量⼦计算攻击。Sero中大量使用了零知识证明来隐藏信息。虽然目前我们在TestNet版本仍然采用的是zkSNARK的C++实现库libsnark来进行这项工作。但在MainNet上线时,我们会综合考察之前提到的几种NIZK协议,并构建效率最⾼安全性最好的库来支持我们的系统。6. 暂存地址在Sero的链上计算部分,我们采用了暂存地址来临时承接线上计算的输出目标,如果采用签名的方式使用这个输出,对于不可追溯性会有稍微的减弱。Sero对这种情况提供的方案是,用户在使用这个输出的时候,输出的标识跟其他普通交易一样,会被隐藏在证明之中。如此一来每笔交易之间都是断开的,无法追溯,而且一旦输出被使用,这个暂存地址就算是被销毁了。7. 未来计划链下计算和同态加密智能合约事实上对智能合约的同态加密已经进入到实质开发阶段,并计划于2019.3发布到2.0版本的Sero平台上。目前我们已经找到了一种通过链上和链下计算,兼顾数据安全(可以面向计算者完全隔离敏感数据的机制)与性能的方法,并计划于6个⽉内完成这项工作。 钱包和其它生态应用Sero的去中心化钱包应用目前同样正在开发当中,并计划于2019.3前正式发布,由于Sero支持开发者自己发行Token的特性,Sero的钱包将会支持Sero自己的Token以及所有开发者基于Sero发行的Token所对应加密货币资产的管理。最新共识机制我们会在1年内的某个版本发布新的共识机制SE-Random,结合了最新的PBFT理论和VRF算法设计的一种可以相对兼顾公平和效率的共识机制。隐私三剑客Sero有两个兄弟,分别是异形协议 (Alien Protocol)和卡斯特罗协议(Castrol Protocol),前者提供一种分布式的DNS系统,通过自动寻址的方式实现网络的稳定运行和信息传输,后者则对节点的IP地址实现加密隐私保护,三位一体形成完整的去中心化应用隐私保护方案。安全多方计算在许多情况下,数据证明需要结合现有的中心化的数据源,也可以成为链下数据源,当前,解决上述问题的策略是假设有可信任的服务提供者或是假设存在可信任的第三方。但是在目前多变和充满恶意的环境中,这是极具⻛险的,面对该问题,通用的安全多方计算问题是可解决的。Sero未来也将考虑引入安全多方计算(SMC),从而在隐私保护的前提下实现对链外数据的广泛支持。多链体系多链体系是Sero可扩展性解决方案。Sero将采用类似以太坊Plasma的机制进行基于多链体系的横向的性能扩容。类似Plasma的多链并行计算机制,可使Sero的每秒状态更新达到极⾼⽔平(可能会有数⼗亿)。从而使Sero在性能上取代当前中心化集群的能力,让Sero具有处理全球的各类隐私相关去中心化应用的前景。 基础框架

除了隐私保护的机制之外,链基础架构同样需要具备⾜够强大的可扩展性,这对于构建一个实用的应用平台显得⼗分重要,Sero会引入以下技术来对链的底层架构进行增强:• 优化共识 - 使用一种全新的共识机制SE-Random,它结合了最新的PBFT理论和VRF算法设计的一种可以相对兼顾公平和效率的共识机制。• Plasma - 是一种实现区块链扩容计算的方式,在plasma中,众多区块链组合成树形结构,共同参与计算,从而实现区块链的横向扩展。• 更为强大的虚拟机——不仅满⾜EVM的兼容性,而且有充分的扩展性,并且要有底层指令的基础来满⾜性能的需求。

上一篇加密存托凭证(CDR)对股票市场进行代币化

下一篇TripOne(TONE)基于区块链的旅游行业服务平台

区块链项目本月排行

区块链项目精选