ASH:开发者必读:从Zcash和Aleo的技术出发,理解隐私交易的设计原理

zerocash)更为相近,类似的Key结构,类似的Note结构,类似的称呼。本文是基于Zcash最新的论文和Aleo的ZEXE做的比较,虽然在具体的细节上有所不同,比如Key结构,具体使用的密码学方法;但是在high-level的设计上大体相同。

除了前面所讲述的技术细节外,仍然存在一些其他的技术细节暂未涉及,比如delegateprover方案,零知识证明算法,递归/聚合方案等,有兴趣的同学可继续研究。

1.关于Zcash?

一个简短的视频了解Zcash,大概需要2分钟。

https://zcash.readthedocs.io/en/latest/rtd_pages/basics.html

特点:

?匿名版的BTC,类UTXO模型

?只能做支付场景,不具备可编程性

协议升级,我们只关注最新版本。主要介绍Zcash里的各个核心概念。

Zcashprotocolspecification:section3.1,page12)

你可以在Zcashprotocolspecification:section4.2.3,page36了解这些Key的计算方式。

Web3开发者平台Thirdweb将支持Polygon zkEVM扩容解决方案:金色财经报道,Web3开发者平台Thirdweb表示将在Polygon zkEVM扩容解决方案主网推出时增加对其支持。目前,团队已经开始在Polygon zkEVM测试网上进行部署。[2023/3/4 12:41:26]

Zcashprotocolspecification:section3.2,page14)

在Zcash的协议中,因为隐私的需求,note是不能公开的,因此,需要计算对应的commitment来代表这个note,计算方式如下:

Zcashprotocolspecification:section3.2,page15)

Zcashprotocolspecification:section4.6,page41)

隐私输入是:

证明statement为:

Zcashprotocolspecification:section4.17.1,page40)

???花费的note的完整性,和noteplaint唯一绑定

???花费的note的有效性,cmtree的存在性证明

前Monero首席开发者已从美国监管机构获释:金色财经报道,前Monero首席开发者Riccardo Spagni(Fluffypony)在推特上表示,美国监管机构在拘留了他一个多月后释放了他。他正在与他的法律团队合作,尽快返回南非以解决对他的指控。据悉,在8月,Spagni因涉嫌欺诈指控而被捕,该指控与2009年至2011年间在南非一家名为CapeCookies的公司发生的涉嫌犯罪有关。南非政府一直在寻求引渡Spagni,指控他“使用虚假信息”制作发票,从而抬高某些商品和服务的价格,并将资金转移到他控制的银行账户。如果罪名成立,他可能面临最高20年的监禁。[2021/9/21 23:41:23]

???Value承诺的完整性,和rcv,oldvalue,newvalue唯一绑定

???Nullifier的完整性,防止doublespend,维护一个花费的noteset

???花费的note的合法性

???地址的完整性

???新note的完整性

???flag的合法性

Zcashprotocolspecification:section7.1,page119)

整个交易结构包含四个部分:

Apron Network中国区负责人Jacob:为开发者提供低成本的多个区块链生态基础设施服务:据官方消息,币赢CoinW《共识52》第十五期《Polkadot的进化之路——奠定波卡生态繁荣的基础设施》主题AMA中Jacob表示,

Apron Network 致力于建立一个去中心化的基 础设施服务网络平台,为应用开发者们、应用使用者们和基础设施运营者们提供基于区块链技术基础设施服务的去中心化网络。类似AWS (亚马逊云计算)以及阿里云等基础设施平台的iaas\\saas\\pass服务。为基础设施服务商提供快速生成API服务接口,并为 DApp&DeFi 开发人员提供服务,助力其高效开发。Apron Network 基于substrate框架实现,并且可以成为Kusama/Polkadot的平行链,Apron Network 将为 Kusama 和 Polkadot 生态提供节点服务、链上数据索引、报价等基础设施服务。未来 Apron 可以连Ethereum、Kusama、Polkadot、BSC、Filecoin、为开发者提供低成本的多个区块链生态基础设施服务。[2021/3/10 18:33:33]

???Publicinfo(1-5)

???Transparenttransactionsinfo(6-9)

以太坊核心开发者:EIP-1559重点在于改善用户体验和解决Gas市场的低效问题:以太坊核心开发者eric.eth发布推特称,EIP-1559需要上一堂历史课,因为它现在有点修改了。在2019年初,其对以太坊费用的第一个价格拍卖模型非常糟糕,感到十分沮丧。eric.eth认为这是大规模采用的第一道障碍。这种挫败感纯粹是一种用户体验。这与销毁(burn)费用的想法无关。在缺乏回应和理解了V神的论文后,我明白了那是最好的选择,并联系了V神。然后我们一起写了EIP-1559。值得注意的是,销毁基本费只是论文和medium文章中的一个技术性的旁注。其重点纯粹在于改善用户体验和解决Gas市场的低效问题。然而,目前EIP-1559整体叙述变成了“因为它销毁ETH,所以是好的”,这有点令人沮丧。这是一个很好的副作用,但这不是我们应该实施它的原因。我们可能会销毁一些ETH,但人们对齐过分期待。不是每一笔费用的所有部分都会被销毁,一旦有了规模,销毁的费用会更少。此前消息,EIP-1559预计今年推出。据悉,EIP-1559试图通过引入固定费用和销毁机制来降低交易费用。EIP-1559由V神于2018年首次提出,预计使以太坊区块链的收费市场更加可预测并缓解拥堵。[2021/2/10 19:26:23]

???Saplingtransactionsinfo(10-16)

动态 | ETC核心开发者就将EIP-161纳入Atlantis硬分叉达成共识:据ETC核心开发团队Medium博客消息,5月30日,ETC核心开发者在有关Atlantis系统升级的电话会议中就将EIP-161纳入Atlantis升级达成了共识。据悉,以太坊平台存在一个DoS攻击漏洞,有人可以通过创建空帐户来增加区块链的大小。EIP-161可以通过低成本删除空账户。删除空帐户会减少区块链状态的大小,从而提高网络性能。[2019/6/1]

???Orchardtransactioninfo(17-25)

2.5.2从?transparent到?shield

Orchard协议里包含两种地址,transparentaddress(TA)和shieldaddress(SA)。一般,为了执行隐私交易,需要先从TA往SA转账,此时对应的交易结构应为:

??Publicinfo(1-5)

??Transparenttransactionsinfo(6-9)

ⅰ.tx_in_*:实际值

ⅱ.tx_out_*:默认值

??Saplingtransactionsinfo(10-16)

ⅰ.All:默认值

??Orchardtransactioninfo(17-25)

ⅰ.??All:实际值

2.5.3从?shield到?shield

Orchard协议里包含两种地址,transparentaddress(TA)和shieldaddress(SA)。一般,为了执行隐私交易,需要先从TA往SA转账,此时对应的交易结构应为:

??Publicinfo(1-5)

??Transparenttransactionsinfo(6-9)

ⅰ.?All:默认值

??Saplingtransactionsinfo(10-16)

ⅰ.?All:默认值

??Orchardtransactioninfo(17-25)

ⅰ.?All:实际值

2.5.4从?shield到?transparent

Orchard协议里包含两种地址,transparentaddress(TA)和shieldaddress(SA)。一般,为了执行隐私交易,需要先从TA往SA转账,此时对应的交易结构应为:

??Publicinfo(1-5)

??Transparenttransactionsinfo(6-9)

ⅰ.?tx_in_*:默认值

ⅱ.?tx_out_*:实际值

??Saplingtransactionsinfo(10-16)

ⅰ.?All:默认值

??Orchardtransactioninfo(17-25)

ⅰ.?All:实际值

??Unlinkable

生成的note用cm表示,花费的note用nf表示,nf和cm之间无任何联系,因此,任何人都无法通过这些信息去判断任何一个被生成的note是在哪一笔交易里被花费的。

??Private

ⅰ.?Senderaddress:

交易信息里不包含sender地址且spendAuthSig为一次性签名。

ⅱ.?Receiveraddress:

交易里不包含receiver的地址且新的Noteplaint用的是recevier的公钥加密。

ⅲ.Value:

用pedersencommitment形式隐藏Note,且通过bindsig来保证交易的balance属性。

1.和Zcash的异同

Zcash只能执行基于OUTX模型的隐私交易,不具备可编程性;因此,Aleo和Zcash最主要的区别是隐私可编程性;相同点是都支持隐私属性。

2.1Unit

和Zcash的note不同,Aleo里的基本操作单元是record,下面让我们看一下两者的主要区别:

Zcashprotocolspecification:section3.2,page14)

Zexeprotocolspecification:section3.1,page17)

虽然具体参数名称不相同,但是从功能角度来看,两者之间具有对应关系:

分别对应note拥有者的地址信息,承诺相关信息,nf/sn相关信息,value相关信息。

所以,两者结构基本类似;主要的区别在于record里的birthpredicate,deathpredicate。这是两个Boolean类型的函数,代表着,当一个record在birth(generate)和death(spend)阶段,分别需要满足的条件,这一块是支持user-defined,因此具有可编程性。

Zexeprotocolspecification:section3.1,page17)

和Zcash(2.5.1)的交易主要结构相比,仍然相似:

??消费的record对应的序列号sn,在Zcash里用nf表示,都是具有全局唯一性。

?新生成的record对应的承诺。

?新生成record的plaint,包括拥有者信息,对应的birth/deathpredicate等。

Zexeprotocolspecification:section2.4,page13)

需要证明:

??Oldrecord的有效性

??Oldrecord的合法性

??Newrecord的有效性

??Birth/Deathpredicate的有效性

3.1为什么都是utox-based,不是account-based?

Remark2.3

https://zips.z.cash/protocol/protocol.pdf

2.(Aleo)Zexeprotocolspecification:

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?|?Twitter?|?Telegram?|?Medium|?Mirror?|?HackMD?|?HackerNoon

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

[0:31ms0-1:332ms