okx

匿名系统的体系结构构思

时间:2023-07-16|浏览:174

书接上文,上次矿视界给大家讲解了SERO技术革新(一)——区块链隐私保护的必要性,没看过的可以搜索矿视界官网。

为了实现更强的保密性能,SERO匿名系统的体系结构设计在满足系统性能要求的同时,还需遵循以下基本原则。

The basic principle

基本原则

- 不可追溯: 区块链网络中每笔交易都有输入和输出通道,它们构成了一个非循环交易图,在这个图上所有交易流都可以被跟踪,所有交易序列都可以被串联、追溯。SERO的设计初衷是切断两个交易之间的联系,使攻击无法进行。

- 不可关联: 区块链网络中的每个用户都有自己的收集地址。一旦该地址与实际用户身份相关联,网络中发生在该地址上的所有交易都将与对应用户的身份关联,从而导致将关联的行为暴露给该地址。当用户创建用于匿名的新假名公钥时,所有的交易和余额仍然是公开可见的。SERO使用加密技术使支付地址不可关联。

- 反统计分析: 实际用户行为具有统计特征。如果区块链网络中的交易数据具有反映这种统计特性相关内容的功能,则可以通过对区块链数据的统计分析来推断属于特定用户的地址。当使用环签名时,如果环成员或节点是恶意的,抵抗统计分析的能力将会降低。而SERO能够通过技术手段完全隐藏地址之间的关系。

- 可选审计解决方案: 对于可供选择的审计方案和某些复杂的业务程序应用,SERO用户可以选择可信的第三方对交易进行财务审计,并能够让第三方跟踪交易中的特定信息。

Protocol design

协议设计

SERO协议的设计简要描述如下:

- 账户系统:

- 帐户分为两类:用户帐户与合约帐户。用户帐户是用户自主选择的32字节的帐户,合约帐户自动生成与用户安装的智能合约环境相对应的64字节地址;以上两类帐户都是唯一且不可重复的。

- 用户帐户可以生成64字节私钥SK和64字节公钥PK,钱包会根据当前条件生成一个临时地址。该临时地址不能与用户的私钥和公钥关联,并且只能使用一次。

- 安装智能合约时,钱包会根据当前条件将临时地址更改为64字节智能合约地址(CADDR)。当节点接收到地址时,需要确保合约地址以前没有出现过。

- 资产系统:

- 用户帐户或智能合约帐户都具有管理无限种类资产的属性,不仅仅是SERO币的结算交易费,账户下的所有资产都具有与SERO币相同的交易特征。除了SERO币外,其他资产可通过智能合约生成(类似以太坊)。

- 为了便于记忆,可为每项资产指定一个长度不超过32字节的名称(代币名),这些名称不允许重复使用。当账户执行余额查询或转账操作时,可以指定资产类型。

- 输出和输入结构:

- 输出结构:

- 输入结构:

- 锚是输入数据所在哈希树的根。Nil是用于销毁已使用OUT的32字节哈希,Til是用于交易跟踪的32字节哈希,并且仅对系统内的OUT有效。AssertCM是输入的资产协议。OutCM是交易的输出协议。

- 见证系统:

SERO协议使用非交互式零知识证明(NIZK),在生成交易时需要提供资产来源的见证信息。每个节点将根据见证信息进行验证。SERO使用哈希树算法来维护记录状态更改的见证系统。系统将在节点提供验证功能,在钱包端提供认证信息。

根=根哈希(位置、叶、路径):

- 根即当前哈希树的根 - 叶即当前位置的叶 - 路径即从叶至根的证明路径

- 证明系统:

SERO的证明系统包括一个基于有向无环图的计算线路,用于描述每个SERO交易的内部约束:各种资产类型的输入和输出平衡,公钥和私钥的验证,交易的有效性,见证的有效性等。

加载数据的线路可以通过非交互式零知识证明(NIZK)生成证明。从提交的证明中,节点可以验证线路中加载的各种参数和约束条件,同时又能隐藏大量的详细信息。

步骤流程:

A. 计算

用户使用账户、资产和见证系统提供的信息,并根据当前运算需要提供输入数据。计算规则在离链环境下运行以获得结果。

B. 证明

用户使用随机变量r生成STX和计算结果,并将其提交给节点。STX包括检查数据Ci、编码数据Ei和验证数据Pi。

STX=PROVE(RESULT,r)

STX={(C0.C1……Cn),(E0,E1……En),(P0,P1……Pn)}

C. 验证

节点收到STX后,会在见证系统和证明系统中确认Ci。当证书被验证为正确时,节点将接受STX。

RET_i=VERIFYi(C_i)

Check=ret_0ret_1…ret_n

D. 确认

当资产接收方与已验证交易STX同步时,接收方使用私钥对编码数据E_i进行解密,并生成明文D_i。明文D_i和证明P_i被输入到证明系统进行验证;成功即表示交易已验证。当交易被n个块确认时,交易接收者可认为交易已被确认。

D_i=FETCH_i(E_i,ACCOUNT)

ret_i=CONFIRM_i(D_i,P_i)

Check=ret_0ret_1…ret_m

值得注意的是,SERO的执行步骤是开放的,这意味着这种对步骤和参数的抽象描述支持持续升级,随后添加的功能对整体架构的影响也微乎其微。

以上就是SERO匿名系统的体系结构设计啦,下期矿视界将为大家带来世上最快零知识证明加密库Super-ZK的介绍。

文章来源:medium。

翻译&校对:有条鱼。

本文由矿视界(奇迹摩尔)翻译整理编辑,如需转载,请标明出处。

« 上一条| 下一条 »
区块链交流群
数藏交流群

合作伙伴

在区块链世界中,智能合约不仅是代码的信任,更是商业的革命。通过了解其在供应链、版权保护等领域的应用,您将真正体验到智能合约的无限可能性
区块链世界GxPiKaQiu.com ©2020-2024版权所有 桂ICP备16002597号-2