上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

SERO:2019年超零协议技术白皮书(50页).pdf

编号:64956 PDF   DOCX  50页 1.50MB 下载积分:VIP专享
下载报告请您先登录!

SERO:2019年超零协议技术白皮书(50页).pdf

1、超 零 协 议 ( S ERO )技 术 白 皮 书 全球首发隐私保护一站式平台 让分布式应用真正的安全、隐私、稳定Version 2.0Last Update: Aug 20th, 2019第一章 前言和概述 4 .第二章 SERO介绍 6 .2.1 去中心化技术与隐私问题6 .2.2 区块链隐私泄漏风险7 .2.3 去中心化隐私保护技术8 .2.4 SERO解决方案概述11 .第三章 SERO的设计 13 .3.1 设计原则13 .3.2 实现方案14 .3.3 SERO协议14 .3.4 关于非交互式零知识证明(NIZK)的性能优化22 .3.5 SERO支持智能合约发行和操作匿名资产原

2、理23 .3.6 SERO面向的场景29 .3.7 未来计划30 .第四章 链的基础框架 32 .4.1 共识机制32 .4.2 共识的分阶段演进36 .4.3 Mainnet1.x版本的PoW共识部分37 .4.4Mainnet1.x版本的Pos共识部分37 .4.5 扩容机制40 .4.6 虚拟机41 .4.7 抗量子计算42 .第五章 激励的经济模型 43 .第六章 路线图 45 .6.1 秋暮之巨龙 (v0.x)45 .6.2 冬夜之巨龙 (v1.x)45 .6.3 春晓之巨龙 (v2.x)46 .6.4 夏焰之巨龙46 .第七章 参考目录 47 .第八章 附录 51 .A 法律申明5

3、1 .B 风险提示51.? 第 一章 前 言和概 述 互联网飞速发展让信息的流转速度变得非常高效,从而推动了人类社会的发展,但从另外一方面看,隐私问题也正是因为互联网的高速发展而变得更加严重。区块链作为下一代的价值互联网,曾被认为是保护隐私非常好的工具,但大家很快发现,当前主要的区块链网络中,一旦数字钱包地址和它的拥有者的个人信息对应起来,该钱包的拥有者所有账户信息、交易信息都将在整个网络中一览无遗并且无法消除,这会导致比互联网的隐私泄露更加严重的问题。为此区块链行业的密码学和顶尖的技术专家都在进行不懈努力,业界有几支团队研发了一些保护隐私的特殊虚拟货币,这类虚拟货币被称之为“匿名币”,行业中

4、比较有名的数字货币包括大零币 Zcash (ZEC),门罗币 Monero (XMR),达世币 (DASH)等,这些采取了一定隐私保护的数字货币基于其巨大的市场需求,均获得了非常高的流通市值,排名在全球20大虚拟货币之列,说明隐私保护对区块链行业而言是一个非常强烈的需求。 智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。区块链上图灵完备的智能合约系统,可以满足开发者编写任意复杂的,存在于区块链上并且能被区块链传递的合约。开发者可以用智能合约开发语言实现比如定制货币、金融衍生品、身份系统和去中心化组织等功能,极大的扩展了区块链系统的适用范围。智能合约是价值互联网重要的的技术基础之

5、一,但是目前令人沮丧的情况是,全球目前运行的区块链系统均不支持对智能合约加密保护,现有的隐私保护机制使用场景受到这一技术限制的影响被极大的缩小了其适用范围。区块链技术起源于中本聪发明的比特币,被视为区块链1.0,让人类世界找到了数字虚拟货币这一巨大的财富;而当以太坊面世后,智能合约的发明让区块链技术的落地变得更为可行,从此基于区块链技术的去中心化分布式应用(简称“DApp”)成为可行,这让区块链技术可以被运用到更多的行业中,因此以太坊被视为区块链2.0。同样可以类比,如果Zcash和门罗币为代表的不支持智能合约的匿名区块链系统是隐私保护方案1.0的话,为了让方案可以落地到更多行业和应用场景中去

6、,支持智能合约的隐私保护方案2.0备受期待。 不可否认的是,支持智能合约的匿名区块链系统具有非常高的技术门槛,全球仅有屈指可数的团队正在为之努力,如今Super Zero(简称“SERO”,中文:超零币)也正式向全球进行产品发布,SERO的研发团队(简称“SERO团队”)也是目前全球唯一能就该问题提出完整的解决方案,并已经完成主要工程研发工作的团队。不仅如此,SERO团队并没有将成功研发支持智能合约的隐私保护区块链系统作为去中心化应用的隐私保护方案的终点,为了让受到隐私保护的去中心化应用的广泛落地成为可行,SERO团队不但考虑到了保护DApp使用者的账户隐私、相关令牌(Token)和私有数据传

7、递过程的隐私,同时充分考虑到了在区块链系统数据传输过程中,之前受各层传输层协议限制的隐私保护策略,甚至还包括了去中心化应用和互联网应用相结合场景下的数据隐私保障。 为此,SERO团队设定了一个能为去中心化应用提供完整隐私保护解决方案的三件套项目,包括SERO(支持智能合约的匿名区块链系统)、异形协议(一个能解决去中心化网络信息传输的协议)以及卡斯特罗协议(保护去中心化网络,以及为互联网交互的各节点提供隐私保护的协议)等尖端创新科技组件。最近SERO已经完成了核心的研发工作,包括隐私保护相关协议,和图灵完备的链上运行智能合约,本白皮书主要就SERO的工作进行说明,并包含了该项目的一些基本情况以及

8、披露后续的项目计划。 ? 第 二章 S E R O介 绍 2 . 1 去 中心化 技术与隐私 问题 当前,用户对隐私保护的关注和需求日益加剧,多家知名公司都先后被爆出泄露了大量用户隐私数据,包括雅虎、优步、Paypal、洲际酒店集团、美信用机构Equifax、英国国家医疗服务体系(NHS)等等,相关泄露数据涉及几千万到数亿规模的用户。Facebook也因为2018年3月份发生的一次最大规模的隐私泄露事件,市值在两天内蒸发掉数百亿美元,并有可能面临高达其四倍市值的天价罚款。隐私问题同时也引起了很多国家政府的重视,欧盟率先颁布通用数据保护条例(GDPR)就是一个旨在为了督促各家公司有效保护用户隐私

9、的法案。 不得不说互联网带来了许多隐私泄漏问题,而互联网应用场景中大部分的隐私泄漏往往是由于中心化的平台缺乏足够的数据安全保护机制引起的。隐私区块链系统被认为能从根源上杜绝此类事件的发生,然而比特币和以太坊等区块链网络的设计其实并没有考虑当去中心化网络与使用者现实身份结合后,区块链上存储的用户数据会产生用户的隐私泄漏问题。区块链网络中数字资产及其交易记录等异常敏感的信息,对所有人透明并且是不可篡改的,当区块链在现实场景中进行大量的应用的真正落地时,对大部分场景需求来说,这点无疑是不可接受的。 财务隐私合法使用案例的范围很广。事实上,财务隐私对于世界上发生的大多数交易来说应该是需要的,数字货币相

10、关账户的资产和交易的隐私数据通过区块链上存储的交易记录暴露在所有人面前是不合理的。 现实世界中遇到的相关合理需求举例如下: * 一家公司想要保护不让竞争对手知道的供应链信息; * 个人不想被公众知道她正在支付向破产律师或离婚律师咨询的费用; * 一个富有的人,不希望让潜在的犯罪分子了解他们的行踪以及试图勒索他们的财富; * 不同商品的买卖双方希望避免交易被他们之间的中间商公司切断; * 投资银行、对冲基金和其他类型的交易金融工具(证券、债券、衍生工具)的金融实体,如果其他人可以弄清楚他们的仓位或交易意图,那么这些信息的暴露会使交易执行者处于劣势,影响他们盈利的能力。 在智能合约中,整个行为序列

11、通过网络传播并记录在区块链上,所以是公开可见的,许多个人和组织认为金融交易(例如保险合同或股票交易)是高度机密的,比如多方之间基于某些条款的细节产生的交易,原本可能需要当事人的信息保护,现在却无法做到。所以,缺乏隐私是广泛采用去中心化智能合约的主要障碍,隐私保护技术的匮乏已经成为了去中心化应用普及落地的严重瓶颈,故而相关领域的技术发展进程也备受公众关注。 2 . 2 区 块 链 隐私泄漏风险 比特币网络是典型的区块链技术代表,目前市场上主流的加密货币,几乎都基于与之相同的技术特点,下面以比特币网络为例分析隐私泄漏的风险。 首先从比特币交易系统的结构设计来看: * 交易数据的UXTO模型包含输入

12、地址和输出地址信息,每一个输入地址都指向前一笔交易,所有输入资金都能够追溯到源头。 * 交易数据存储在公开的全局账本中,任意参与用户都可以获得完整的全局账本。其在共识过程验证节点需要检索历史交易,所有的交易信息没有采用加密等手段保护数据。 比特币交易参与方的地址都是由用户自行创建且与身份信息无关的,任何人都无法直接通过观察交易记录推测出交易中用户的身份信息。但全局账本公开的交易之间存在关联关系,潜在攻击者可以通过分析全局账本中的交易记录推测出比特币地址的交易规律,包括相关地址的交易频率、交易特征、地址之间的关联关系等。基于这些规律,攻击者有可能将比特币地址和特定用户在真实世界中的身份相关联。

13、其中一种方式主要通过分析地址相关的交易记录,获得该地址交易的规律特征,据此推测对应用户的身份信息。由于在某一特定类型的区块链交易中会存在它特有的交易特征,攻击者可以根据地址的交易特征,对其交易发生的真实场景进行还原,从而做出用户真实身份的推测。 Androulaki E.等人设计了一个匹配区块链地址与学生身份的模拟实验,学生以比特币作为日常交易的支付手段,并使用比特币推荐的一次性地址方法加强隐私保护,分析人员通过基于行为的聚类技术,能够以42%的准确率将学生身份和区块链地址成功匹配。Monaco J. V.等人将比特币用户的交易行为进行量化,以交易时间间隔、资金流向等12个维度为依据分析用户的

14、交易规律,经过6个月实验得到的大量数据表明,利用这种分析模型成功识别用户真实身份的精度高达62%,错误率低于10.1%。 另一种方式则主要利用区块链交易设计中存在的一些潜在知识,实现对不同地址的聚类,得到同一个用户的多个地址。 针对地址聚类目前主要有以下3条聚类规则。 *对于一个具有多输入地址的交易,通常认为所有的输入地址都来自同一个用户个体或用户的集合。当用户发起一次交易时,资金可能来自于用户的多个地址,而多输入交易中用户需要对每个输入地址单独进行签名,因此大多数多输入交易的输入地址来自同一个用户。这项规则已经应用于很多研究中,取得了很好的聚类效果。 * 在矿池组织的交易中,同一个交易中的多

15、个输出地址属于同一类用户集合。随着“挖矿”难度的增加,个体“矿工”已经无法在竞争中获胜,需要成百上千的“矿工”加入“矿池”共同完成一次“挖矿”,得到的奖励会分配给参与集体“挖矿”的“矿工”。 * 交易中找零地址和输入地址隶属于同一个用户。在一次交易中,输入地址中的总金额可能会大于用户发出的金额,因此比特币系统会为发送方自动产生一个找零地址,用于接收交易中的找零资金。找零 地址与其他地址一样都有可能被系统选择成为新的交易中的输入地址,但作为输出地址的情况一般只会出现一次。由于找零地址在交易发生时是由系统重新生成的, 因此一个地址不可能同时作为一次交易的 输入地址和输出地址,交易的输出中也必然存在

16、找零地址以外的输出地址。利用找零地址的这些特征,可以发现更多地址之间的关联关系。 目前已经有很多研究利用上述聚类规则,发现了比特币系统中很多地址之间的关联性。Meikle John S.等人通过使用启发式聚类方法实现了对比特币盗窃案件中相关比特币地址的识别。Dmitry E.等人也提供了一个方法,可以对比特币地址进行自动聚类。 2 . 3 去 中 心 化隐私保护技术 我们很高兴地看到现在有一些团队开始关注到去中心化网络的隐私保护问题,比较著名的项目包括 Zcash,门罗币和达世币。 一种广泛应用的方法是在不改变交易结果的前提下改变交易过程,使攻击者无法直接获得交易的完整信息,这种方法被称为“混

17、币”。譬如在Chaum D.的文章里提到了一种匿名通信技术,在通信过程中隐藏了真实的通信内容,基本思想可以通过式(1)表达: ? (1) 式 (1) 左侧为发送方发给中间人的信息,右侧为中间人将信息处理后发送给接收方的消息。发送方想要将消息 ? 和 ? 发送给接收方的地址A,首先使用接收方的密钥 ? 对消息进行加密得到?,然后将中间人的验证消息 ?、加密后的消息?和接收方地址 ? 进CM(Z1, CA(Z0, m), A) CA(Z0, m), AZ0mCACA(Z0, m)Z1CA(Z0, m)A行打包,并使用中间人的公钥 ? 进行加密,防止信息在发送过程中被攻击者截获或篡改。中间人收到信息

18、后使用自己的私钥进行解密,得到 ?,但无法解密? 的内容。中间人在验证 ? 无误后,将 ? 发送给地址 ? 。接收方使用自己的私钥解密消息,完成此次通信。 利用这种方法,消息没有在发送者和接收者之间直接传递,而是通过中间人间接传递,使攻击者无法观察到真实发送者和接收者之间的通信行为,提高了通信的匿名性。若将消息通过多个中间人进行传递,攻击者发现双方通信关系的难度将大大增加。 数字货币中的混币机制借鉴了上述思想(如DASH和门罗币),通过中间层级结构,切断交易中真实的发送方和接收方的被可追踪的关联。混币过程的执行可以由可信的第三方或某种协议实现。根据混币过程中有无第三方节点参与,可将现有的混币机

19、制分为两类:基于中心节点的混币机制和去中心化的混币机制。这两种机制在混币可靠性、混币效率和混币成本等方面各有优势和缺陷。 不过随着技术的发展,更为尖端的加密学的技术被应用到区块链隐私保护中,譬如 Zcash 对零知识证明的应用。 以下就目前3种最为流行的隐私保护的加密货币稍作说明: Zcash Zcash 是一种加密货币,使用加密技术为其用户提供比其他数字货币(如比特币)更强的隐私。 最初是由一个命名为 Zerocoin 的协议发展而来,随后其团队开发了 Zerocash 系统,直到2016年将其发展为 Zcash 加密货币。 Zcash 的交易在公共的区块链上发布,但用户可以使用可选的功能隐

20、藏区块链上交易的发送者、接受者及交易金额。只有那些拥有查看密钥(VSK)的人才能看到交易的内容。用户拥有完全的控制权,他们可自行选择是否向其他人提供查看密钥,以用于审计目的。 Zcash是基于比特币的基础架构开发改进的,并采用了一种叫zk-SNARKs的零知识证明技术实现了对用户信息的加密。zk-SNARKs是基于纯数学理论实现的加密手段,和区块链的本质一样,这种方式的好处在于使用它不需要依赖外部的运行环境而自成体系,因而具备十分广泛的应用场景。 然而,由于Zcash采用了和比特币网络相同的底层架构,因此虽然能够实现隐藏交易时发送者,接受者和交易金额,但它只能支持简单的交易,简单讲就是一个预置

21、了隐私保护机制的比特币网络。除此之外,整个运用零知识证明对交易进行加密的过程的性能比较低效,也使其应用场景进一步被限制。 CMZ1, CA(Z0, m), ACA(Z0, m)Z1CA(Z0, m)AMonero Monero 创建于2014年4月,与 Zcash 不同的是它并没有选择基于之前的区块链系统开发,并从底层实现有着很好的模块化设计,因此具有比较好的扩展性。 Monero 的特点在于首先它虽然也采用了工作量证明(POW)的共识机制,但是与之前的许多加密货币不同,Monero工作量证明算法CryptoNight是为AES密集型和很耗内存的操作,这显著降低了GPU对CPU的优势,换句话说

22、降低了工作量证明算力集中化的风险。 另外在加密手段方面,它采用的是环形签名(Ring Confidential Transactions)算法,首先将签名者的公钥与另外一个公钥集合进行一起混合,然后对消息进行签名,使得外界无法区分集合中哪个公钥对应真正的签名者,从而达到保护用户真实身份的效果。Monero的混币参与用户无需与其他参与节点进行交流,可自行参与混币,为去中心化混币机制中常见的拒绝服务攻击、混币用户泄露信息等问题提供了有效的保护措施。 但Monero同样不支持智能合约,另外虽然其采用去中心化的混币技术,仍然存在较高的被攻击风险,用户在使用环签名技术时,需要依赖其他用户的公钥,如果其他

23、用户是恶意的,则会在一定程度上导致用了用户的隐私泄露问题。 Dash Dash是第一个以保护隐私为目的设计的数字货币,它采用的中心化混币方案的本质是单纯地将一笔资金在多个地址中进行多次转移,实现简单,易于操作,混币过程不需要其他的技术支持。中心化混币方案在各类数字货币系统中具有极高的适用性,但是,现有的方案要求参与混币的人员在线进行混币。如果双方就混币的数额不能达成一致的话则必须推迟,为了使得混合充分,交易普遍存在时延问题并且混币器是中心化部署的,混币器节点能获取交易的所有信息,能盗币。中心化混币方案的大多数改进方案是通过增加第三方违规的代价来防止盗窃和信息泄露的发生,不能从根本上杜绝违规行为

24、的发生;采用盲签名等密码学技术的混币方案会增加计算代价,并且由第三方执行混币过程必然会带来额外的服务开销。 遗憾的是,Dash同样不支持智能合约,并且第三方的混币提供者这样的机制依赖于第三方的可信度,同样面临不可预测的风险。近年来,Dash基于其前期良好的流通性,着力于生态应用的开发布局,并加强了和企业间的合作,力图将Dash币打造成具备较强流通价值的支付工具,而不再强调其隐私保护方面的优势。 总结 从最新的技术发展来看,通过采用最新的密码学算法保证隐私功能,例如非交互式零知识证明机制(NIZK)是最有前景的一种改进。但引入加密机制需要对底层协议进行大幅改动,并需要消耗更多的计算资源,影响区块

25、链应用的效率,因此引入的隐私保护机制需要充分考虑节点在计算和存储上的性能、效率和成本。 在去中心应用方面,以太坊的智能合约大大增加了区块链系统的应用场景,而不再仅仅局限于其流通的数字货币价值。然而目前主流的区块链隐私保护技术均不支持智能合约,从而无法建立实用并且落地的去中心化应用。因为任何一个安全的隐私保护机制要支持智能合约,都涉及到对区块链底层系统做出重大的修改工作,因此一直难以落实到实际系统实现中。 面对以上问题,SERO是一个很好的解决方案。 2 . 4 S E RO 解决方案概述 SERO(Super Zero,超零系统)是全球首个通过非交互式零知识证明(NIZK),真正实现具有图灵完

26、备智能合约的隐私保护的区块链系统,和现有的区块链隐私保护技术相比,SERO不仅能实现对账户信息和交易信息的隐私保护,还能实现对图灵完备的智能合约输入输出的隐私保护,另外,开发者还能基于SERO-Chain上的智能合约发行的匿名数字资产(Token),并且与智能合约的通讯信息也同样会得到隐私安全保护。 SERO重新设计了区块链结构和各类底层协议,使得对隐私保护的图灵完备智能合约成为现实,不仅使更广泛的应用场景获得了隐私保护措施,并且因为其采用的先进的NIZK加密学算法,也进一步提升了对用户隐私数据的攻击难度。除此之外,在即将发布的V1.0版本中,改进了目前NIZK加密算法的实用性问题,大大降低了

27、所需要消耗的内存资源,提升了计算效率。除此之外,对比市面上的主流匿名区块链系统,SERO对图灵完备的智能合约的支持和对其相关的去中心化应用的隐私保护措施,使其使用场景得到了极大的泛化。 更值得一提的是,SERO团队不仅考虑到了去中心化应用本身所需要的隐私保护措施,而且还从应用落地的角度,计划从点对点的网络传输安全以及账户物理的网络地址的隐私性角度提供解决方案,可以使与中心化应用交互时,或者与使用者客户端交互式时也能获得强大的隐私保护功能。 整个综合解决方案会由三位一体的全套套件构成,其中SERO是第一个公开发布的项目,另两个项目的定位分别如下: 异形协议 (Alien Protocol):一种

28、分布式的DNS系统,可以利用现有的P2P网络交互信息,具备IP自动切换和动态寻址的功能,抗攻击者阻断,使整个数据传输网络具备十分稳定的安全性。 卡斯特罗协议(Castrol Protocol):通过去中心化网络的方式,实现对IP地址的匿名保护,可同时运用于中心化和去中心化网络的物理节点的隐私保护。 ? 第 三章 S E R O的 设 计 3 . 1 设 计原则 正如前文所说,现有市场存在的去中心化网络的隐私保护技术,并没有跟去中心化应用相结合,尤其是没有对智能合约的执行进行隐私保护。在智能合约中执行的动作序列,通过网络传播和/或记录在区块链上,是公开可见的。在图灵完备的区块链网络中,SERO的

29、设计,在满足系统能力需求的同时,还必须满足几个基本的原则。 不可追踪性,区块链网络中的每一笔交易都具有输入和输出,如此一来,就构建了一个交易的有向无环图,在这个图上可以跟踪所有的交易流向,所有的交易序列都能被串联起来,并以此溯源。SERO的设计中要将两个交易之间的链接断开,使攻击无法进行。 不可关联性,区块链网络中每个用户都有自己的收款地址,一旦这个地址跟真实的用户身份关联,那么,在网络中这个地址发生的所有交易,都能关联到这个身份上,该地址一切的行为都暴露无疑。即使用户可以创建新的假名公钥以增加其匿名性,每个假名公钥的所有交易和余额的值都是公开可见的。SERO通过加密技术手段使收款地址无法被关

30、联。 抗统计分析,真实用户的行为具有统计特点,如果区块链网络中的交易数据之间具有反应这样统计特点的关联性,通过对区块链数据的统计分析,就能够一定几率推测出这些地址发生的交易是属于某个特定用户的行为。即使是采用环签名,在面临有作恶的环成员或者节点的时候,抵抗统计分析的能力将会下降。SERO需要通过技术手段将地址以及地址之间的关系完全隐藏。 实用性原则,SERO在对交易数据进行隐藏的同时,并不会一股脑的将所有的信息都纳入范围内,这样做是不经济并且运行效率低下的。SERO会兼顾用户已有的使用习惯和痛点,进行阶段性研发。 可选的审计方案,对于某些较为复杂的商业应用领域,用户可能需要有一个完全信用的第三

31、方对他发生的所有交易进行财务方面的审计,这时,他应该可以做出选择,决定是否给予第三方一个跟踪他所有交易具体信息的能力。 3 . 2 实 现 方 案 在第一期的计划中,SERO通过非交互零知识证明(NIZK),将交易体系的输入和输出以及交易细节完全隐藏起来,除了交易双方,其他任何人对这些隐藏细节完全是不可见的。同时,因为考虑到线上运行智能合约以及公开合约发行资产总数具有普适性的适用性,SERO会保留链上运行的智能合约,将智能合约所产生的资产与SERO本身的交易体系融合,以此来实现智能合约所产生资产的隐私性。 在第二期的计划中,对于具有隐藏合约发行资产总数的需求,我们将在线上运行智能合约内部提供一

32、种名为隐匿数据的隐藏结构,同时只在链下对这种隐匿数据进行计算。以此来实现隐藏合约发行资产总数的功能。 在第三期的计划中,我们会采用更为先进的共识机制,提升SERO网络的吞吐量。同时,对于具有隐藏合约内部计算规则的需求,我们会将合约的运行分解为线下计算和线上验证两个步骤,线下计算完全了解运算规则和数据,并给出运算后的加密结果,当这个结果提交到线上时,线上节点只会对结果进行有效性验证,以确定其中包含的数据是否符合运算规则,但节点并不知道这些数据和运算规则的详细信息。 3 . 3 S E RO 协议 账户系统(Account System) 账户系统分为两个种类:用户账户和合约账户。用户账户是用户选

33、定一个32byte的?,而合约账户根据用户安装智能合约的环境产生一个64byte的地址,两者都是系统唯一,不可重复的。 用户账户可以产生一个64byte的私钥?和一个64byte的公钥?,该公钥是用户的付款地址。在安装或调用智能合约时,钱包会根据当前情况生成一个暂存地址?,这个暂存地址无法用任何方式关联到用户的私钥和公钥,并且只会使用一次。 在智能合约安装的时候,钱包会根据当前情况,将暂存地址转为64byte的智能合约地址(?)。当节点收到地址时,需要确保智能合约地址之前没有出现过。 SeedSKPKPKrCADDR? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Let :

34、Gk= NewEcc()seed = New(Byte32)r = RandFr()s = RandFr()a = RandFr()m = Message()SK :zsk = HASHzsk(seed)vsk = HASHvsk(seed)sk = (vsk,zsk)zvsk = zsk vskPK/TK :ZPK = zsk GkVPK = vsk zsk GkPK = (ZPK,VPK)TK = (ZPK,vsk)PKr: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?是账户种子,用户必须妥善保存。?是私钥,不可持久化存储,其中?是跟踪私钥,可以提供给可信的第三方

35、用作账户的审计。?是公钥,提供给其他用户的交易目标地址。?是暂存地址,提供给智能合约,用来临时接收资产的目标地址。 资产系统(Assets System) BASEr= r GkZPKr= r ZPKVPKr= r VPKPKr= (VPKr,ZPKr,BASEr)Trace :VPKr= = vsk ZPKrEnc :BASEs= s ZPKrSECRET = s*VPKrkey = Hashs(SECRET)M = Encvk(m,key)Dec :SECRET = vsk BASEsm = Decvk(M,key)Sign :k = Hash1(a,zvsk,m)s0 = k BASEr

36、h = Hash2(S0,m)s1 = k + zvsk hsign = (s0,s1)Verify :s1 BASEr= = S0 + h VPKrSeedSKTKPKPKr? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Let :Gr= NewEcc()Hfor_o= Hashfor_o()Token :token = (value,Currency)Gcy= Ecc(Currency)rtkn= RandFr()CMasset,tkn= value Gcy+ rtkn GrTicket :ticket = (value,Catetory)Gcy= Ecc(Currency)

37、rtkn= RandFr()CMasset,tkn= value Gcy+ rtkn GrBalance :rbalance=ni=0rinmi=0routCB = rbalance Grsignbalance= Sign(Gr,Hfor_o,rbalance)checksign: Verify(Gr,CB,Hfor_o,signbalance) ? 不管是用户账户还是智能合约账户,其下都具有管理无限种类资产的属性,除了交易费用结算采用SERO币以外,每一种资产都具有跟SERO本身等同的交易特征,除SERO币之外,其余的资产可以由智能合约产生。每种资产在产生的同时,可以赋予一个最长32 byt

38、e长度的名称(token name),用于助记,这些名称也是不允许重复使用的。在账户进行余额查询或者转账操作的时候,可以指定资产类型。 输出系统(Output construct) ? ?checkbalance:ni=0CMasset,inni=0CMasset,out= = CMasset,balance+ CBar = RandFr()rsk = RandFr()CRasset= ar GcrCCasset= asset GccCMasset= CRasset+ CCassetCMout= Hashp(CCasset,BASEr,VPKr,memo,rsk)Info = Append(a

39、sset,memo,rsk)EInfo = Ence(Info,rsk)RPK = rsk VPKrInputs = (CMasset,CMout,EInfo,PKr,RPK)?输入系统(Input construct) ? ? ?是由UTXO序列组成的Merkle树的叶子节点的值; ?是当前Merkle树的根,用于定位输入数据;?和?是从?到?的认证路径;?是一个32位的hash串,用于作废UTXO中的OUT;?是用来追踪交易输入用的32位的hash串;?是交易输出的资产承诺;?是交易输入的资产承诺。License系统(License System) ? ? ? ? Vars = (ar,a

40、sset,memo,ZPK,rsk,CR,CC)Proof = Prove(Inputs,Vars,CIRCUIToutput)CMauth= Hashpederson(index,CMout)Anchor = MerkleRoot(index,CMauth,Path)Nil = zvsk CMauthTil = vsk CMauthInputs = (CMasset, Anchor,Nil)Vars = (the rest.)Proof = Prove(Inputs,Vars,CIRCUITinput)CMauthAnchorPathPosCMauthAnchorNilTilCMoutCMi

41、nLICENSE :Inputs = (ZPK,prop)sklicense= (skzpk,skprop)PKlic= (PKzpk,PKprop) = (skzpk Glic,skprop Glic)? ? ? ? ? ? 在SERO的Alpha和Beta网络中,为了确保网络初期健康发展,保证共识的健壮性和系统更新的及时性,SERO项目组有必要协调各个矿工节点。 因此,有挖矿需求的测试人员需要向SERO研发团队申请挖矿license。 除挖矿外,其他功能的测试不需要license。在尽可能不泄露矿工身份的前提下,区块会暴露license中的部分属性,这部分属性能够被SERO社区监管。在Be

42、ta网络初期,当出现网络被攻击并且发生重大危机的时候,SERO团队会通过社区投票的方式,在社区许可和监管的前提下,采用非常规手段抵抗攻击,保障社区成员的财产安全。license功能会在BetaNet上线半年后移除。 见证系统(Witness System) SERO协议采用非交互零知识证明(NIZK),在生成交易的时候,需要提供资产来源的见证信息,每个节点会根据这些见证信息进行验证。因此,SERO会采用Merkle树维护一个记录状态变更的见证系统,系统在节点提供验证功能,在钱包端提供认证所需的信息。 ? ?是当前Merkle树的根,?是第?片叶子,?是?到?的证明路径。证明系统(Proof S

43、ystem) rlic= RandFr()Rlic= rlic GlicSlic= rlic+ skzpk*Hash(ZPK) + skprop*propLIC = (prop,Rlic,Slic)PROVE :R + Hash(ZPK) PKzpk+ prop PKprop= slic GlicROOT = MerkleRoot(POSITION,LEAF,PATH)ROOTLEAFPOSITIONPATHLEAFROOT SERO的证明系统包含一个基于有向无环图的计算电路,用来描述SERO每笔交易的内部约束,包括各种资产类型的输入输出平衡、公私钥验证、承诺的有效性、见证的有效性等环节。装载

44、好数据的电路可以通过非交互零知识证明(NIZK)生成一个Proof,通过提交这个Proof,可以在隐藏大量细节信息的情况下,让节点对电路中装载的各种参数和约束进行验证。 ? ? 是交易的公开数据,? 是交易的隐私数据。所有变量参与构建?,证明过程采用?、?、?生成?。然后在交易中携带?、?,验证过程通过?和?、?进行校验。 执行步骤(Process Step) 1. 计算(Compute),用户采用账户、资产、见证系统提供的信息,并根据当前所需的计算,提供输入数据,然后在链下运行计算规则得到结果。 ? 2. 证明(Prove),用户用计算步骤得到的结果?和随机数 ? 一起封装成交易?,并提交给

45、节点。?包含校验数据?,结果编码数据? 和证明数据? 。 ? 3. 验证(Verify),节点在收到交易?之后,将?在见证系统和证明系统中进行确认。验证通过后,节点接受?。 ? 4. 确认(Confirm),资产接受方在同步到得到验证的交易?之后,利用自己的私钥将密文? 解出生成明文?, 并将明文?和证明? 输入到证明系统中进行校验,成功则说明交易是真实的。真实的交易如果被n个区块进行了确认,那么交易接收方可以认为这笔交易已经确认。 ?Inputs = (I0,I1,.,In)Vars = (V0,V1,.,Vm)Proof = Prove(Inputs,Vars,CIRCUIT)Check

46、: Verify(Inputs,Proof,CIRCUIT)IiViCIRCUITInputsVarsCIRCUITProofInputsProofInputsCIRCUITProofRESULT = COMPUTE(METHOD, ACCOUNT,DATA,WITNESS)RESULTrSTXSTXCiEiPiSTX = PROVE(RESULT,r)STX = (C0,C1,.,Cn),(E0,E1,.,Em),(P1,P2,.,Pm)STXCiSTXreti= VERIFYi(Ci)Check = ret0& ret1. & retnSTXEiDiDiPiDi= FETCHi(Ei, A

47、CCOUNT)? 要说明的是,SERO的执行步骤是开放式的,也就是说这样的步骤和参数的抽象描述,可以支持“实现方案”一节中所描述的一到三期的新增功能,在后续升级时对代码结构的调整最小。 通用隐私交易 在SERO内部,普通交易中的数据都是加密的,非交易双方不能得知来源、去向、资产种类、金额等细节。系统在交易处理时并不区分智能合约产生的资产和SERO本身的资产。 线上智能合约 SERO的通用智能合约可以进行公开计算,制定对各种资产的统计方案、处置规则、公示规则,但输入输出信息都必须通过暂存地址与用户的真实身份隔离。 SERO智能合约兼容以太坊智能合约指令,也就是说以太坊大部分的智能合约可以不修改就

48、在SERO上运行。 线上隐私资产 智能合约通过调用线上隐私资产发行方法发行的资产,资产总数量公开,并具有与SERO币等同的交易属性,可以通过通用隐私交易进行处理。 线下隐私资产 用户通过调用线下隐私资产发行方法发行的资产,资产总数量不公开,具有与SERO币等同的交易属性,可以通过通用隐私交易进行处理。 线下智能合约 SERO的线下智能合约只在用户机器上运行,计算规则只对部分用户可见,共识对运行结果的正确性进行验证。 3 . 4 关 于 非 交互式零知识证明(NI ZK)的性能优化 reti= CONFIRMi(Di,Pi)Check = ret0& ret1. & retm 对于采用非交互式零

49、知识证明(NIZK)方案的区块链系统,目前最大的应用瓶颈就是交易时生成证明(Proofs)的时间太长,SERO系统的零知识证明模块Super-ZK,针对这一瓶颈,做了以下突破性创新。 1、当前我们采用zk-SNARKs框架生成NIZK,采用其中的ALT_BN128曲线和Groth16预处理过程,这个过程比PGHR13预处理方案减少1/3的运算时间。虽然zk-SNARKs框架需要信用安装过程,但SERO的实现方式中不会动态构造计算电路,因此,在当前所有场景下,zk-SNARKs框架能满足SERO的需求。 2、我们创新性的开发出一种Twisted Edwards曲线,以取代SHA256来生成公钥,

50、采用ECC Hash进行Merkle树的生成,这样可以提升4倍以上交易生成速度。 3、SERO采用单路输入和输出结构,每个描述之间采用资产通道进行链接,这样的电路构造更加模块化,在多核CPU情况下,并行执行效率获得3倍的提升。 4、Super-ZK的部分代码由汇编语言进行编写,优化了资源分配等工程结构,使其具有更高的代码执行效率。 综合以上优化,在交易证明生成速度上,我们相比于直接使用zk-SNARKs的其他区块链系统,有一个数量级的速度提高,极大的提高了NIZK系统的适用性。 3 . 5 S E RO 支持智能合约发行和操作匿名资产原理 区块链账本的UXTO和ACCOUNT模式 区块链是分布

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(SERO:2019年超零协议技术白皮书(50页).pdf)为本站 (微笑泡泡) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部