复制成功

分享至

主页 > 数字货币 >

zcash是什么币种,从Zcash和Aleo的技术出发,理解隐私交易的设计原理

2022.10.07
分析Zcash和Aleo的技术异同,理解隐私交易的设计原理。

引言

从论文的角度看,Aleo的可编程隐私设计所采用的的隐私设计和早期的Zcash的白皮书(zerocash)更为相近,类似的Key结构,类似的Note结构,类似的称呼(nf在zerocash里称为sn, serial number)。本文是基于Zcash最新的论文和Aleo的ZEXE做的比较,虽然在具体的细节上有所不同,比如Key结构,具体使用的密码学方法;但是在high-level的设计上大体相同。

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

Zcash

1. 关于Zcash?

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

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的计算方式。

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

免责声明:数字资产交易涉及重大风险,本资料不应作为投资决策依据,亦不应被解释为从事投资交易的建议。请确保充分了解所涉及的风险并谨慎投资。OKEx学院仅提供信息参考,不构成任何投资建议,用户一切投资行为与本站无关。

加⼊OKEx全球社群

和全球数字资产投资者交流讨论

扫码加入OKEx社群

相关推荐

industry-frontier