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

引言

从论文的角度看,Aleo的可编程隐私设计所采用的的隐私设计和早期的Zcash的白皮书更为相近,类似的Key结构,类似的Note结构,类似的称呼。本文是基于Zcash最新的论文和Aleo的ZEXE做的比较,虽然在具体的细节上有所不同,比如Key结构,具体使用的密码学方法;但是在high-level的设计上大体相同。除了前面所讲述的技术细节外,仍然存在一些其他的技术细节暂未涉及,比如delegateprover方案,零知识证明算法,递归/聚合方案等,有兴趣的同学可继续研究。Zcash

1.关于Zcash?

一个简短的视频了解Zcash,大概需要2分钟。https://zcash.readthedocs.io/en/latest/rtd_pages/basics.html特点:?匿名版的BTC,类UTXO模型?只能做支付场景,不具备可编程性2.主要概念

注意:Zcash经过多次协议升级,我们只关注最新版本。主要介绍Zcash里的各个核心概念。2.1Keycomponents

图片来源

zkSync:部分用户经历了长达6小时的取款延迟,目前已修复:6月7日消息,zkSync 发布网络更新,称其工程团队早些时候收到了警报,一小部分在网络上进行交易的用户经历了长达 6 小时的取款延迟,该系统现在按预期运行,所有待处理的提款都已完成或正在继续完成。作为额外的预防措施,我们已指派一个团队在接下来的 48 小时内密切监控提款情况,以确保不会出现进一步的问题。[2023/6/7 21:21:33]

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

note是Zcash协议中的基本单元,类似于BTC中的UTXO;在Zcash中,所有交易的输入和输出都是notes。当然,Zcash也支持非匿名的交易,这样和BTC的交易模式一样。所以,要想更深入的了解Zcash,得先需要了解note的数据结构:

图片来源

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

动态 | Starling Bank前CTO计划在2020年推出加密数字银行Ziglu:Starling Bank前联合创始人兼首席技术官Mark Hipperson计划在2020年推出新数字银行合资企业Ziglu,允许客户在法定货币和加密货币之间转移资金。Ziglu计划以银行间利率提供兑换服务,以及支持从多个交易所购买加密货币,用户还可以使用万事达借记卡来使用他们持有的加密货币。据了解,自2018年9月以来,Hipperson一直领导着Ziglu。该公司已向金融市场行为监管局(FCA)申请成为电子货币发行人。(Fintech Futures)[2020/1/2]

图片来源2.3Actiontransfer

一笔交易里,可能包含多个actiontransfer,每个actiontransfer会花费老的note,生成新的note,其数据结构如下:

图片来源

动态 | 非洲最大的银行Standard Bank加入基于区块链的马可波罗网络:据Cointelegraph消息,非洲总资产规模最大的银行标准银行(Standard Bank)加入了基于区块链的贸易融资网络Marco Polo。标准银行现在将与法国巴黎银行(BNP Paribas)和荷兰国际集团(ING)等全球主要金融机构合作,开发贸易融资解决方案。标准银行是第一家加入该网络的非洲银行。到目前为止,Marco Polo网络已加入20多家全球金融公司,如德国商业银行、英国海湾贸易银行、丹斯克银行、NatWest、阿尔法银行、拜仁LB、Helaba、S-Servicepartner、印度储备银行和Bradesco。[2019/8/24]

2.4Actionstatement

公共输入是:

隐私输入是:

证明statement为:

动态 | Arisebank前高管支付270万美元与SEC和解:据SEC官方消息,今年早些时候被美国证券交易委员会(SEC)禁止的涉嫌推出欺诈性ICO的两位前高管已被联邦法院下令支付近270万美元,并被禁止担任上市公司的官员或董事,或参与未来的数字证券发行。据悉,AriseBank首席执行官Jared Rice和首席运营官Stanley Ford被指控通过将AriseBank描述为首个向散户提供各种服务的去中心化银行,通过其所谓的“AriseCoin”加密货币提供和出售未注册的投资。两人为了与SEC达成和解,同意共同承担2259543美元的赔偿以及68423美元的判决前利息,并且每人必须支付184767美元的罚款,但两人并没有承认或否认SEC的指控。[2018/12/13]

图片来源?花费的note的完整性,和noteplaint唯一绑定?花费的note的有效性,cmtree的存在性证明?Value承诺的完整性,和rcv,oldvalue,newvalue唯一绑定?Nullifier的完整性,防止doublespend,维护一个花费的noteset?花费的note的合法性?地址的完整性?新note的完整性?flag的合法性2.5交易结构和示例

2.5.1交易结构

声音 | 比特币开发者:比特币核心团队的职责更多是维护性而非权威性:CasaHODL工程师、比特币开发者Jameson Lopp最近刊文表示,比特币核心团队面临的问题仍然是如何就是否将新的代码建议合并到他们的GitHub存储库中达成共识。虽然核心团队有“维护者(maintainer)”帐户,有能力将代码合并到主分支中,但是他们的职责更多的是维护性的而不是权威性的。

Lopp还表示,GitHub上的每个开发人员都可以通过克隆核心的GitHub存储库来公开测试代码。也就是说,每个开发人员都可以故意破坏代码,以测试它是否可以提交给原始框架。最终,每个节点运营商通过确保网络上没有其他人违反他们同意的规则来实现自我管理。这种安全模型是比特币自下而上治理的基础。[2018/12/16]

图片来源整个交易结构包含四个部分:?Publicinfo(1-5)?Transparenttransactionsinfo(6-9)?Saplingtransactionsinfo(10-16)?Orchardtransactioninfo(17-25)2.5.2从transparent到shieldOrchard协议里包含两种地址,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到shieldOrchard协议里包含两种地址,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到transparentOrchard协议里包含两种地址,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.6如何实现隐私?

?Unlinkable生成的note用cm表示,花费的note用nf表示,nf和cm之间无任何联系,因此,任何人都无法通过这些信息去判断任何一个被生成的note是在哪一笔交易里被花费的。?Privateⅰ.Senderaddress:交易信息里不包含sender地址且spendAuthSig为一次性签名。ⅱ.Receiveraddress:交易里不包含receiver的地址且新的Noteplaint用的是recevier的公钥加密。ⅲ.Value:用pedersencommitment形式隐藏Note,且通过bindsig来保证交易的balance属性。Aleo

1.和Zcash的异同

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

2.1Unit

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

图片来源

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

分别对应note拥有者的地址信息,承诺相关信息,nf/sn相关信息,value相关信息。所以,两者结构基本类似;主要的区别在于record里的birthpredicate,deathpredicate。这是两个Boolean类型的函数,代表着,当一个record在birth(generate)和death(spend)阶段,分别需要满足的条件,这一块是支持user-defined,因此具有可编程性。2.2交易结构

图片来源和Zcash(2.5.1)的交易主要结构相比,仍然相似:?消费的record对应的序列号sn,在Zcash里用nf表示,都是具有全局唯一性。?新生成的record对应的承诺。?新生成record的plaint,包括拥有者信息,对应的birth/deathpredicate等。2.3Proverstatement

图片来源需要证明:?Oldrecord的有效性?Oldrecord的合法性?Newrecord的有效性?Birth/Deathpredicate的有效性3.其他

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

Remark2.3参考

1.(Zcash)Zcashprotocolspecification:https://zips.z.cash/protocol/protocol.pdf2.(Aleo)Zexeprotocolspecification:https://eprint.iacr.org/2018/962.pdf3.协议升级:https://z.cash/upgrade/4.zerocash:https://eprint.iacr.org/2014/349.pdf关于我们

Sin7y成立于2021年,由顶尖的区块链开发者组成。我们既是项目孵化器也是区块链技术研究团队,探索EVM、Layer2、跨链、隐私计算、自主支付解决方案等最重要和最前沿的技术。微信公众号:Sin7YGitHub|Twitter|Telegram|Medium|Mirror|HackMD|HackerNoon

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

链链资讯

BNB区块链:DAOrayaki:不可持续的NFT版税及改进建议

版税为艺术家和创作者提供了收入来源,如果能靠此盈利,那再好不过。但在区块链领域,它的可行性却不高。在本文,我将解释版税的形式为什么不可持续,以及艺术家该考虑何种可持续的方式获得收益.

[0:4ms0-6:62ms