Aleo和Zcash在隐私设计上相似,但Aleo具有可编程隐私性。两者都使用类似结构的基本单元,Zcash使用note,Aleo使用record。Aleo的record包含可编程的birth和death predicate,支持用户定义条件。
从学术的角度来看,Aleo的可编程隐私设计与早期的Zcash白皮书(zerocash)更为相似,包括相似的Key结构、Note结构以及类似的术语(如Zcash中的sn,即序列号,在Aleo中被称为nf)。本文基于Zcash的最新论文和Aleo的ZEXE进行比较。虽然在具体细节上,如Key结构和使用的密码学方法上有所不同,但从高层次设计上来看,两者大体相同。
除了前面提到的技术细节外,还有一些其他技术细节尚未涉及,如委托证明方案、零知识证明算法、递归/聚合方案等,有兴趣的读者可以进一步研究。
虚拟币交易推荐使用币安交易所进行交易
苹果用户和电脑端用户也可以直接进入币安官网下载:点击访问币安官网下载注册
安卓用户可以直接下载币安安装包:点击下载币安安装包
1. 关于Zcash?
一个简短的视频可以让你在2分钟内了解Zcash。
https://zcash.readthedocs.io/en/latest/rtd_pages/basics.html
特点:
匿名版的BTC,采用UTXO模型
仅限于支付场景,不具备可编程性
2. 主要概念
注意:Zcash经过多次协议升级,我们只关注最新版本。主要介绍Zcash中的各个核心概念。
2.1 Key components
图片来源(Zcash protocol specification: section 3.1, page 12)
你可以在Zcash protocol specification: section 4.2.3, page 36了解这些Key的计算方式。
https://zips.z.cash/protocol/protocol.pdf
2.2 Note
note是Zcash协议中的基本单元,类似于BTC中的UTXO;在Zcash中,所有交易的输入和输出都是notes。当然,Zcash也支持非匿名的交易,这样和BTC的交易模式一样。
要想更深入地了解Zcash,得先需要了解note的数据结构:
图片来源(Zcash protocol specification: section 3.2, page 14)
在Zcash的协议中,因为隐私的需求,note是不能公开的,因此,需要计算对应的commitment来代表这个note,计算方式如下:
图片来源(Zcash protocol specification: section 3.2, page 15)
2.3 Action transfer
一笔交易里,可能包含多个action transfer,每个action transfer会花费老的note,生成新的note,其数据结构如下:
图片来源(Zcash protocol specification: section 4.6, page 41)
2.4 Action statement
公共输入是:
隐私输入是:
证明statement为:
图片来源(Zcash protocol specification: section 4.17.1, page 40)
花费的note的完整性,和noteplaint唯一绑定
花费的note的有效性,cm tree的存在性证明
Value承诺的完整性,和rcv, old value, new value唯一绑定
Nullifier的完整性,防止double spend,维护一个花费的note set
花费的note的合法性
地址的完整性
新note的完整性
flag的合法性
2.5 交易结构和示例
2.5.1 交易结构
图片来源(Zcash protocol specification: section 7.1, page 119)
整个交易结构包含四个部分:
Public info (1 - 5)
Transparent transactions info (6 - 9)
Sapling transactions info (10 - 16)
Orchard transaction info (17 - 25)
2.5.2 从 transparent 到 shield
Orchard协议里包含两种地址,transparent address(TA) 和 shield address(SA)。一般,为了执行隐私交易,需要先从TA往SA转账,此时对应的交易结构应为:
Public info (1 - 5)
Transparent transactions info (6 - 9)
tx_in_*:实际值
tx_out_*:默认值
Sapling transactions info (10 - 16)
All:默认值
Orchard transaction info (17 - 25)
All:实际值
2.5.3 从 shield 到 shield
Orchard协议里包含两种地址,transparent address(TA) 和 shield address(SA)。一般,为了执行隐私交易,需要先从TA往SA转账,此时对应的交易结构应为:
Public info (1 - 5)
Transparent transactions info (6 - 9)
All:默认值
Sapling transactions info (10 - 16)
All:默认值
Orchard transaction info (17 - 25)
All:实际值
2.5.4 从 shield 到 transparent
Orchard协议里包含两种地址,transparent address(TA) 和 shield address(SA)。一般,为了执行隐私交易,需要先从TA往SA转账,此时对应的交易结构应为:
Public info (1 - 5)
Transparent transactions info (6 - 9)
tx_in_*:默认值
tx_out_*:实际值
Sapling transactions info (10 - 16)
All:默认值
Orchard transaction info (17 - 25)
All:实际值
2.6 如何实现隐私?
Unlinkable
生成的note用cm表示,花费的note用nf表示,nf和cm之间无任何联系,因此,任何人都无法通过这些信息去判断任何一个被生成的note是在哪一笔交易里被花费的。
Private
ⅰ. Sender address:
交易信息里不包含sender地址且spendAuthSig为一次性签名(每次都不一样,所以公钥不同,rk)。
ⅱ. Receiver address:
交易里不包含receiver的地址且新的Note plaint用的是receiver的公钥加密(接受者的隐私地址也是一次性的)。
ⅲ. Value:
用pedersen commitment形式隐藏Note,且通过bindsig来保证交易的balance属性。
1. 和Zcash的异同
Zcash只能执行基于UTXO模型的隐私交易,不具备可编程性;因此,Aleo和Zcash最主要的区别是隐私可编程性;相同点是都支持隐私属性(交易隐私,不只包含资产类)。
2. Aleo VS Zcash
2.1 Unit
和Zcash的note不同,Aleo里的基本操作单元是record(BTC里的是UTXO),下面让我们看一下两者的主要区别:
图片来源(Zcash protocol specification: section 3.2, page 14)
图片来源(Zexe protocol specification: section 3.1, page 17)
虽然具体参数名称不相同,但是从功能角度来看,两者之间具有对应关系:
分别对应note拥有者的地址信息,承诺相关信息, nf/sn相关信息,value相关信息。
所以,两者结构基本类似;主要的区别在于record里的birth predicate,death predicate。这是两个Boolean类型的函数,代表着,当一个record在birth(generate)和death(spend)阶段,分别需要满足的条件,这一块是支持user-defined,因此具有可编程性。
2.2 交易结构
图片来源(Zexe protocol specification: section 3.1, page 17)
和Zcash(2.5.1)的交易主要结构相比,仍然相似:
消费的record对应的序列号sn,在Zcash里用nf表示,都是具有全局唯一性。
新生成的record对应的承诺。
新生成record的plaint,包括拥有者信息,对应的birth/death predicate等。
2.3 Prover statement
图片来源(Zexe protocol specification: section 2.4, page 13)
需要证明:
Old record的有效性
Old record的合法性(具备花费record的权利)
New record的有效性
Birth/Death predicate的有效性(类似于Zcash里的Balance校验)
3. 其他
3.1 为什么都是utox-based,不是account-based?
Remark2.3(Zexe protocol specification: section 2.3, page 11)
https://eprint.iacr.org/2018/962.pdf
参考
1. (Zcash)Zcash protocol specification(文中前6张图片来源):
https://zips.z.cash/protocol/protocol.pdf
2. (Aleo)Zexe protocol specification(Figure4/5/6,Remark2.3):
https://eprint.iacr.org/2018/962.pdf
3. 协议升级:https://z.cash/upgrade/
4. zerocash:https://eprint.iacr.org/2014/349.pdf
关于我们
Sin7y成立于2021年,由顶尖的区块链开发者组成。我们既是项目孵化器也是区块链技术研究团队,探索EVM、Layer2、跨链、隐私计算、自主支付解决方案等最重要和最前沿的技术。
微信公众号:Sin7y
GitHub:Sin7y
Twitter:@Sin7y_Labs
Medium:Sin7y
Mirror:Sin7y
HackMD:Sin7y
HackerNoon:Sin7y
Email:contact@sin7y.org
文章来源于抹茶交易所。
抹茶安卓下载:立即前往抹茶IOS下载:立即前往
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述