LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > Calibra最新论文DAPOL:分布式责任审计证明

Calibra最新论文DAPOL:分布式责任审计证明

2020-05-10 玩币族 来源:区块链网络

前言: 我们存放在交易所里的数字资产安全吗?我们手上持有Tether的USDT安全吗?如何证明?传统信用的基石来自权威,信息,流动性,强弱的不对称,而加密世界的信用来自于证明,「Don't trust, verify」不挤兑,银行10%准备金就够了,挤兑了,100%准备金也不够,因为存贷款期限的错配,银行照样会倒闭。

日前FB的DAPOL论文,旨在如何证明数字交易所的尝付能力,或者如何证明政府公告的COVID-19数据正确?其原理主要通过Merkle tree(默克尔树),验证我的余额是否包含在公告的资产中,或被证实确诊的“我”包含在公告的确诊人数当中。当然这里面还需要考虑大量的安全性,隐私性要求。DAPOL旨在为责任审计提供安全隐私的密码证明。

Distributed Auditing Proofs of Liabilities 分布式责任审计证明 https://eprint.iacr.org/2020/468.pdf 摘要 分布式责任审计证明(DAPOL)旨在让那些接受用户存款如交易所证明其偿付能力,或者接受用户投票,评论的平台能证明其公示结果是正确无异, 证明责任或义务总额,同时不损害用户隐私。例如要证明我们平时看到COVID-19报告确诊人数是否正确,其原理就是每个确诊的人,都能很轻易地通过加密协议,证明“我”是被包含在其确诊的总数里面,并且过程并不会泄漏“我被确诊”的信息。

DAPOL更典型的用例是数字交易所场景,我存放在中心化的交易所里的代币,有没有被交易所挪用,也就是交易所如何证明其偿付能力? 负债证明:证明交易所欠所有客户的代币总数。资产证明:证明交易所数字资产(即代币)的所有权。 一般来说,交易所应该证明拥有的代币的总余额大于或等于其负债,也就是用户存在交易所的代币总额。

与传统的基于审计师审计的方法相比,DAPOL的优势在于,它为用户提供了一种透明机制来验证交易所用户余额是否包含在报告的负债/债务总额中,并通过添加额外的隐私保护来补充审计师进行的传统审计验证过程。

目前本DAPOL提案只关注负债证明部分,并基于假设被审计单位没有任何增加其他负债或义务的动机。虽然债务证明是证明财务偿付能力的一个重要部分,但DAPOL还有许多其他应用场景,包括在税收报表中的使用,在社交网络中的“负面”投票和攻击性内容的透明报告等。

DAPOL方法结合了以前已知的加密技术,核心是基于增强的Maxwell的Merkle树结构,并分别使用Balance splitting tricks/平衡分裂技巧、efficient padding/有效填充、verifiable random functions/可验证随机函数、deterministic key derivation functions/确定性密钥派生函数和来自Provisions和ZeroLedge解算协议的范围证明技术进行扩展。

由于Bulletproofs[5]、Gro16[23]、Ligero[1]、Plonk[21]、Halo[3]和其他有效的ZKP结构在上述负债/偿付能力证明协议发布时不可用或不成熟,但任何有效的求和结构集成零知识方案都是一个很好的候选方案。

Keywords: distributed auditing; liability proofs; zero knowledge proofs; privacy; standards.

关于DAPOL提议

旨在推动ZKP加密技术应用主流化的ZKProof开放计划,“DAPOL”文档与ZKProof开放计划(ZKProof open initiative)的范围保持一致,重点是在各种场景中促进ZKP使用,与传统方法相比,基于ZKP的构造的DAPOL提供的隐私和透明性更好的选择。

DAPOL是一个以隐私、透明度和安全性为重点的包容性社区驱动流程,旨在促进分布式审计流程的可信规范和开源实现,特别是用于责任、义务和“否定”投票的证明。

探讨ZKP审计规范化的一个主要原因是,目前行业在偿付能力证明工具上存在不一致性。审计人员经常需要重新对被审计公司(证明人)提出的算法进行证明,因为它们没有一个共同的参考,同时明显过时的弱隐私保护技术仍然被广泛使用(即Maxwell的原始方案[34])。

我们希望最终的解决方案能在金融业(偿付能力证明、银团贷款和保险、信用评分、资金筹集等)以及其他需要报告义务、责任或“反对”票的业务(如报告假新闻、反对票,透明彩票池等)。

起因/动机

该方案结合了一组加密原语,为审计过程提供了一个分布式的隐私保护解决方案,审计过程要求实体在不公开任何用户数据的情况下,透明地报告其责任总额、义务或与负面报告相关的任何内容。五大原因和技术的发展成熟激发和推动了这一提议:

一、隐私增强技术(PET):一些在高级隐私技术已显示出巨大潜力,更重要的是,这些技术已经达到了成熟和实用的程度,许多技术的标准化工作正在进行中。如零知识证明(ZKP)、多方计算(MPC)、差分隐私(DP)、私隐信息检索(PIR)、私隐集合交集(PSI)、不经意RAM(ORAM),混合网络和安全飞地(Secure Enclaves)等。

应用ZKP是允许验证一条信息而无需公开它的数据。在隐私保护审计中,ZKP让验证程序向任何第三方,如用户或审计员演示某些数据通过了共享验证过程,而没有透露它们的数据。在我们的设计中,被审计实体应该证明其总负债额,而不暴露负债结构及其用户基础信息。同时,它可以将ZKP交付给每个用户,用户可以验证其余额/金额是否包含在报告的总负债中。

二、全球隐私保护条例:审计已经受到新的隐私保护条例的影响。2019年,在日益认识到数据的经济价值之际监管机构在几个关键司法管辖区,加快了标准化数据安全政策的努力。随着新十年的开始,PET领域继续孕育出新的解决方案。欧盟(European Union)的《通用数据保护条例》(General Data Protection Regulation,GDPR)[19]已于去年生效,对全球隐私格局产生了重大影响。在美国,立法者也在激烈地辩论数据使用问题。加利福尼亚州率先采用了自己的数据隐私监管框架,即《加利福尼亚消费者隐私法》(CCPA)[8]。美国马萨诸塞州、纽约州和新泽西州等多个州的立法机构已经提出或宣布了考虑自己隐私法规的计划。

三、去中心化的大肆宣传:由于其不变性、安全性和无中央权威,区块链技术越来越流行于各种商业和社会流程中。虽然区块链通常与加密货币相关,但它有其他应用,以及应用于金融以外的不同行业。为了审计的目的,区块链可以用作一个不可变的公共公告栏,实体在那里发布其责任报告。

四、更广泛的应用:尽管DAPOL协议最明显的应用是数字货币交易所和数字钱包的偿付能力证明,但我们意识到,其在金融行业之外的信息披露的义务要求的场景中有更广泛的应用。一些例子包括可核实的银团贷款和保险合同、税务报告收入、赌博中的头奖、透明的慈善筹款活动、不赞成投票和虚假新闻报道等。在上述所有情况下,添加一个功能,使每个人都可以检查用户自已的余额或反对票是否包含在其信息披露报告中,这将在隐私保护下增加透明度和正确性验证。

五、缺乏行业标准:分布式私隐审计仍然没有标准化的协议,过去造成了用户资金损失。责任审计最明显的应用之一是与偿付能力证明有关,即实体(即银行或加密货币交易所)证明其拥有足够的资产来支付其负债(用户存款)应对用户的提取。一个健全的债务证明系统可以防止(或减少)资金损失。

第一个众所周知的例子是,2002年安达信会计师事务所对美国能源公司安然的审计失败,最终导致安然公司破产,当时世界上五大审计会计师事务所之一安达信被解散,并被判妨碍司法公正罪。这是一例子,表明像DAPOL这样的分布式审计工具可能有利于审计师保障业务和提高透明度。

另一个例子是,2014年初,总部位于东京的最大的比特币交易所Mt.Gox的客户从Mt.Gox提款,但从未收到钱。结果发现,一名攻击者在没有被注意到的情况下,慢慢地吸干了Mt.Gox的所有比特币。2014年2月,该公司以6400万美元的债务为由申请破产[15;28]。

Mt.Gox案一个积极的结果:它在数字交易所领域引入了审计流程,最初是由个人审计师审计,然后是像德勤这样的大型审计公司审计。更重要的是,它引发了对有效偿付能力证明方案的研究,2014年,Gregory Maxwell提出了第一个偿付能力的密码证明[34]。但最初的方案泄露了有关数据和个人余额的信息vii,并没有在交易所的大范围内使用(例如,Kraken),数字货币交易所更倾向于使用可信的审计师,而不是Maxwell协议[24]。除了隐私问题,最初的Maxwell方案也被证明是不安全的,尽管如此,它仍然是业内使用的主要方案[33]。

由于缺乏一个完整而有效的隐私保护的审计方案,业界在使用密码证明的偿付能力犹豫不决。在2019年的ZKProof社区活动中的讨论还显示,由于没有官方标准参考,审计师不能盲目相信被审计实体提供的规范和实施,需要从头开始实施自定义的责任证明。

2014年亲自审计Bitfinex和OKCoin的Ripple前首席技术官斯特凡?托马斯(Stefan Thomas)这样说过:“在我们还没有实现完全零知识、可通过加密验证的审计之前,你必须信任审计师,例如我,才能判断”[10;32]。本文就是尝试对上述问题的回答;我们的DAPOL提供一个实用的基于ZKP的审计解决方案。

  第一章。偿付能力证明工具  

1.1 密码技术

本节列出此协议中使用的最重要的加密技术模块。为了获得完整的解决方案,我们组合下面的多个密码技术,而其中一些可以选择性地用于提供额外的安全属性和隐私保证。

1.1.1 Merkle树

Merkle树是一种分层数据结构,能够对数据集合进行安全验证。在Merkle树中,每个节点都有一个索引对(i,j)表示为N(i,j)。Merkle树的一个重要特征是其每个节点的构造由以下(简化)方程控制:

 

Merkle树的主要功能是验证某个数据包Di是N数据集、的一个列表或集合的成员(称为集合成员)。δ∈D1 ....Dn号, 称为Merkle证明。它包括获取一组散列,称为给定数据包Di和Merkle根R的验证路径。数据包的验证路径只是通过重复散列和连接来重建根R所需的最小散列列表。注意,如果所有包D11, . . . ,Dn为验证器所知,但它确实需要比Merkle路径大得多的存储开销,并且整个数据集可供验证器使用。

1.1.2 求和Merkle树 (默克尔树)

求和Merkle树是一种改进的Merkle树,其中每个叶子由(v,h)组成,其中v是一个数值(即平衡余额),h是一个blob,也就是抗冲突哈希函数h下哈希结果的结果。Merkle树和求和Merkle树的主要区别在于,在求和默克尔树中,每个内部节点都包含一个数值,等于它的子数值之和。因此,所有叶平衡都按自底向上的顺序填充,因此根节点的最终平衡是所有叶节点数值的总和。

对于核实客户余额是否包含在报告的总金额中的分布式审计偿付能力证明,如果证明通过,资产不低于数据集中的金额之和,则资金是安全的。

基于对Maxwell协议的安全修改,证明了对于一个内部节点,达到求和的正确性,我们还应该包含它的两个子余额,而不仅仅是它们的求和。

1.1.3 Pedersen承诺

为了保护用户余额稳私,我们建议使用Pedersen承诺。设G是具有s = | G |元的循环群,G和h是G的两个随机生成元,则Pedersen对整数v∈0,1。,s-1形成如下:选择承诺随机性r,并返回承诺c:=COM(v,r)=g vh r。

Pedersen承诺是完全隐藏的:承诺c不揭示承诺值v。以类似的方式,承诺在计算上也具有约束力:如果一个对手可以以两种不同的方式打开承诺c(对于同一r,两种不同的值v和v 0),那么同一个对手可以用来计算logh(g),因此把离散对数问题分解成G。

Pedersen承诺的一个非常有用的性质是它们是加同态的。如果c1和c2是对值v1和v2的两个承诺,分别使用承诺随机性r1和r2,则c:=c1×c2是对v1+v2的承诺,使用随机性r1+r2,如c=(gv1 h r1)(gv2 h r2)=gv1+v2h r1+r2

1.1.4 设置成员资格证明

集合成员证明允许证明者以零知识的方式证明他存在于给定的公共集合中。例如,可以在电子投票的情况下使用这种证明,选民需要证明他的票包含于所投候选人的票仓中。在偿付能力证明情况下,这种方式可用于证明用户余额是否计入公告的总额中。集合成员证明的另一个常见用例是当集合由范围[a,a+1,a+2,…,b]组成时——证明[a,b]是否包含在集合范围内。

1.1.5 零知识范围证明

零知识范围证明(ZKRP)允许证明一个数在一定范围内。简言之,给定一个值v,在零知识中证明v属于某个离散集S。在本文中,S是一个数值范围,如[0,2 64-1]。

定义3。关于承诺方案C的范围证明是集合成员证明的一个特例,其中集合S是A,b∈N的连续整数序列S=[A,b]。

1.1.6 可验证随机函数

可验证随机函数(VRF)[27]是伪随机函数,它基于公共输入和私钥给出其输出的公共可验证证明。简而言之,它将输入映射到可验证的伪随机输出。在DAPOL环境中,需要VRFs来确定和唯一地生成审计id和固有的Merkle树。

1.1.7 隐私信息检索

可公开访问的数据库是检索最新信息必不可少的资源,但是它们也会对用户的隐私造成很大的风险,因为一个好奇的数据库操作员可以跟踪用户的查询并推断出用户的需求什么。事实上,在需要保密用户的意图的情况下,用户在访问数据库时通常要谨慎。

在经常性审计中,一个完整的分布式责任证明解决方案应该满足的一个重要特性是,在不知道客户要求哪种证明的情况下,向客户提供证明。如果被审计实体可以提取用户询查请求信息,那么潜在在进行的审计证明修改的可能性。

隐私信息检索(Private Information Retrieval,PIR)是一种协议,允许客户端检索数据库的某个元素,而该数据库的所有者无法确定检索了哪个元素。

此外,强大的隐私信息检索(SPIR)是一种隐私信息检索,附加的要求是客户机只了解他正在查询的元素,而不了解其他元素。此要求捕获数据库所有者的典型隐私需求。

1.2 偿付能力证明方案

本节简要介绍本提案中在偿付能力证明方案的密码证明列表。DAPOL使用了来自以下所有解决方案的功能。

1.2.1基于求和树(Maxwell+)

就在Mt.Gox破产案之前,Maxwell提出了一个协议(总结见[34]),使交易所能够证明其总负债,同时允许用户验证其账户余额是否包含在总负债当中。交易所构建了一个类似于1.2中描述的总和Merkle树,其中每个叶节点包含客户余额,客户id和一个新nonce(即基于散列的承诺)连接的余额散列。

原来的提案已被证明是不安全的,因为人们可以要求的负债少于所有用户的余额总额。在这里,我们的协议[17;25]的修复方法,是将两个余额分别添加到散列中,而不是先将它们聚合起来。在本文中,我们称协议为Maxwell+。

每个节点存储其左、右子节点的聚合余额,以及其左、右子节点数据的哈希值。根节点存储所有客户余额的总和,表示报告中的总负债;然后,交易所广播根节点。如图1.1.2所示。

当客户验证其余额是否包含在交易所申报的负债总额中时,仅对部分哈希树就进行验证足以。具体来说,交易所按照从客户的叶节点到根节点的唯一路径将每个节点的nonce和兄弟节点发送给客户,这称为身份验证路径。路径上的其他节点(包括叶节点本身)不需要传输,因为存在有足够的信息来重建它们。当且仅当其路径终止于由交易所广播并签名的根目录时,就包括其余额。

虽然很优雅,但此协议并没有隐藏在根节点中发布的交易所总负债的值。虽然对这个价值的粗略理解可能是公共知识,但确切的价值可能是敏感的商业数据。此外,定期的证据将揭示交易所持有量的精确变化。该协议还泄露了有关其他客户余额的部分信息。例如,如果使用简单的平衡树,则每个客户的证明都会显示树中兄弟帐户的确切余额(尽管帐户持有人保持匿名)。更一般地,在给定的身份验证路径中显示的每个兄弟节点都会显示该相邻子树中客户的总拥有量。这可以通过使用不平衡树或执行随机平衡拆分来减轻,因此不清楚任何相邻的子树中有多少,但是协议本身会泄漏这些信息。

图1.1显示了通过应用[17]和[25]的修复的4节点求和Merkle树。

Maxwell的设计允许分布式验证检查,每个客户验证他/她的余额是否包含在报告的总负债中,因此,在理论上,审计过程可以通过模型来执行,其中唯一公开的信息(甚至对审计师)是根节点。

然而,有一些真实的用例,如果首选集中审计,则可以将Maxwell的方案转换为不进行求和的正则Merkle树(我们称之为集中式Maxwell)。这样的设计如图1.2所示,其中内部节点不携带余额,以便在检查其身份验证路径时向普通用户隐藏兄弟数量。然而,审计人员将有权访问每一个叶余额,并可以将其汇总以获得报告的总价值。从某种意义上说,用户只能验证其包含在散列当中,而平衡聚合和正确性仅由审计员执行。

1.2.2 基于随机分裂求和树(Split Maxwell+)

Split Maxwell[9]是对原来的Maxwell方案的一个修改,它增加了额外的隐私保障,包括审计员和其他用户的私隐内容。简单地说,在将所有叶子添加到总和树之前,先拆分余额,然后将所有叶子洗牌。由于拆分,每个用户将收到多个身份验证路径,虽然树的高度可能会增加,但同辈叶暴露的信息较少,而用户基数的大小会变得模糊。这种构造可以应用于任何方案之上,包括Maxwell、Maxwell+、集中式Maxwell甚至Provisions。

Split Maxwell+ 的一个有趣的特性是,即使有人(即审计员)可以访问每个leaf叶节点,这个审计员不能获得关于单个用户余额的信息,同时leaf的数量与Split的数量成线性增长,这实际上起到了填充机制的作用,可以隐藏用户总数。图1.3和1.4显示了3个用户的余额拆分示例。简而言之,Split Maxwell+的好处如下: 对审计师或其他客户的客户余额的有限敞口。身份完全受保护,相同平衡的拆分之间没有链接。填充客户总数。在集中式Maxwell方案中,审计员可以直接访问这个数字,而在其他任何解决方案中,它都可以通过树的高度来预测。偿付能力的多个(后续)证明不能组合起来提取上述任何数据,因为每个审计都是独立的,并且采用不同的拆分和洗牌。以前,人们可以将不同审计之间的余额关联起来,并围绕特定客户的损益提取统计数据。Split Maxwell+解决了这个问题,因为它的证明应用了一个新的随机分裂和洗牌。由于上述原因,此模型可以实现更频繁的监视。仅当由于任何原因无法使用完整的基于ZKP的方法或应用程序可以容忍某些隐私泄漏时,才建议使用Split Maxwell+。 主要缺点包括: 由于分解平衡/余额后需要更大的树,证明结构和验证效率较低。与原始协议类似,报告的负债总额也会公布。在某些应用中,这可能是不可取的。由于上述原因,如果每隔几周或几个月提供一次此类证明,人们可以通过检查总报告金额的更新来提取业务信息。

1.2.4 基于确定性树范围证明(数据提供)

2019年的ZKProof社区活动中,已经提出扩展的方案并进一步讨论了基中的条款[9],为协议提供了额外的安全保证。更新后的方案DProvisions按照规定使用了基于NIZK的距离验证系统,并结合了确定性稀疏Merkle树结构。通过利用VRF(如图1.7所示)之上的关键派生函数(KDF),可以确定地计算每个审计id和盲因子。这在基于树的责任证明上提供了许多新的隐私和透明特性。

最重要的是,在非确定性构造中,恶意实体可以将基于用户彼此相邻的位置的某些分析,从而在统计上,可能只验证树的一小部分的正确性。我们可以通过在每次审计中允许确定性的洗牌来更好地分散用户的叶子。这可以通过在将叶子放到树上之前对其哈希值进行排序来实现。由于散列是确定性计算的,由于VRF的属性,恶意实体不能任意修复树中用户节点的关系顺序。也就是说,如果两个或两个以上的用户一起工作,他们可以了解,如果至少在他们之间,顺序已正确对应。注意,在不同的审计轮次之间,这种确定性的顺序总是不同的,因此不能通过后续的顺序提取任何信息。

DProvisions的另一个特点是它使用稀疏的Merkle树,目的是在需要填充时最小化伪用户(零余额)。注意,填充可以帮助混淆用户群的总体大小。如图1.8所示,只需要对空子树的根进行填充,因此,我们可以轻松地支持以前不可能的树高。值得注意的是,树的高度显示了最大的用户数,因此,高度为40的树可能可以支持当今的大多数应用程序。实际上,你可以选择一棵足够大的树,即使在最有希望的预测场景中,它也能在未来的x年内工作,因此树的大小永远不需要更新;如果更新了,它可能会显示出一些变化,即更多的用户(超过了以前的填充大小)进入系统。

稀疏树的填充大小。给定M,用户数,假设它是2的幂:M=2m,H,树的高度(树中的叶子数最多可以是2h),我们估计需要添加到树中的零节点数的界限如下: 在最佳情况下,所有用户节点占据树的最左边的叶子,因此填充高度m的最左边的子树,然后需要沿着从该子树的根到根的路径添加零个节点,最多添加(H-m);在最坏的情况下,所有用户都均匀地分布在树的叶子中,因此高度最低的子树(H-m)每个只有一个节点,需要添加零个节点(H-m)来生成子树的根,则添加的零个节点的数量最多为(H-m)*2m。因此,要“人工”添加的节点数至少为(H-m),最多为(H-m)*2m。请注意,如果我们必须像前面建议的那样用零节点填充整个树,为了使树完整,零节点数必须为2H-1,这对于H>=32是不实际的,或者显著大于我们的方法要添加的零节点数。 1.2.5 基于安全飞地(可信计算)Secure Enclave based (Trusted Computing)

Decker等人。[16] 提出了利用安全飞地技术同时保护执行正确性和用户隐私的思想。他们的工作使用了英特尔和AMD的通用处理器,命名为英特尔可信执行技术(TXT)和AMD安全虚拟机(SVM),但现在人们可以使用英特尔SGX技术来实现他们的方案[9;11]。简而言之,他们的建议是在不使用零知识证明的情况下,通过在一个可信平台上运行所有计算,将隐私添加到Maxwell的方案中,该平台提供以下功能: 受保护功能:可访问受保护位置、内存区域或仅受信任平台访问的寄存器的命令。这些内存区域可能包含敏感数据,例如私钥或当前系统状态的某些方面的摘要。完整性度量:度量在当前平台上执行的软件的过程。度量是在执行的每个阶段执行的软件的加密散列。完整性报告/远程认证:向第三方交付平台测量结果的过程,以便验证其是否源自可信平台。 可信平台的这些特性部署在消费者硬件上,这个单元称为可信平台模块(TPM),是一个安全的密码协处理器,通常集成在硬件主板上。

尽管这样的设计有可能实现任何复杂的逻辑,但对基于飞地的威胁模型的主要批评是:a)过于信任硬件供应商;b)成功的侧通道攻击报告可能导致秘密暴露或破坏远程认证安全保证[1]。

1.3 隐私特征

尽管最广泛的POL方法是Maxwell的原始协议,但它本质上泄露了一些关于用户帐户和交换的信息;它提供的保护也比对抗性验证程序所需的要少。其中一些缺陷源于这样的设计:在构造证明时,为证明人提供了做出任意决定的机会,而没有向验证人透露这些决定。此外,审计师可能会要求更广泛的调查,特别是为了解决争议,有时可能需要随机抽样,以完全满足传统审计的要求。

随后的方案,如Maxwell+、Split Maxwell+、Provisions和DProvisions,解决了上述一些问题,但它们并没有完全消除这些问题。

最终协议的目标是满足以下所示的理想隐私/安全特性。

账户信息泄露。即使在独立审计期间,也不应披露有关单个用户(id或balance)的数据。

在Maxwell方案中,证明被构造为Merkle树,因此每个验证者在其同胞的叶子中学习平衡。因此,为了减少账户信息泄露,每次新发布证明时,都必须对账户列表进行随机洗牌。

即使使用洗牌,验证者也可能发现一些关于余额分配的信息,特别是当相互串通时。比特币交易所Kraken的首席执行官杰西?鲍威尔(Jesse Powell)明确指出,账户持有人的隐私权是其公司没有实施Maxwell协议的主要原因[4]。

提出了两种方法来解决这一问题:平衡分裂和零知识证明。

在平衡余额拆分中,实现可能更简单、更直接;通过在多个叶节点之间拆分每个帐户的余额,并要求验证器分别检查每个叶节点,可以减少信息泄漏。确实,许多实际应用程序可能会容忍这种泄漏并使用Split Maxwell+,但理想情况下,我们希望确保实际值的完全保密。

第二个选项(基于ZKP)通过发布同态承诺完全隐藏余额,允许添加而不显示余额。

理论上,这两种方法都可以结合起来。尽管这会导致较大的树,但拆分也可以作为填充机制来隐藏用户总数。DProvisions的稀疏Merkle树解决方案提供了相同的填充属性,而没有分裂。但是,如果第三方审计员要求随机抽样以满足法规要求并确保至少检查了一些树叶,则ZKP和拆分组合可能会有帮助。使用拆分,审计员将只了解用户余额的一部分。

交换信息泄露。不应泄露负债总额。这一要求与传统银行[20;36]和交易所受到的监管[12]并无不同。请注意,偿付能力的频繁证明暴露了有关平台中发生的交易量的信息。想象一下,如果每隔几周提供一次这样的证明,人们就可以提取有关交易所业务成功的商业信息。因此,有权选择隐瞒全部负债/偿付能力是需要的。

依赖于完整的账户持有人验证。Merkle树方法要求将验证证据完整性和正确性的责任分配给所有账户持有人。没有普遍参与,两者都不可能实现。在正确的情况下,这是必要的;分布式的正确性证明正是该方案的目标。通过组合Split Maxwell+和DProvisions,每个用户将需要验证多个身份验证路径的正确性(计算成本更高)。

交互访问证据。每个帐户持有人都从交易所收到一份个人证明,其中仅包含自己的叶节点和根节点之间的节点。在实践中,这意味着每个账户持有人都必须要求他们提供个人证明,从而向交易所隐式透露他们正在检查的是哪一页。

恶意验证程序可以使用此信息忽略很少或从不检查包含证明的用户。防止这种泄漏的机制是可取的。

独立验证工具。我们注意到,如果用户确实验证了他们的帐户,他们应该使用交易所自己提供的验证工具以外的其他工具;这样的工具可以自动化,以增加参与度。这是为了确保验证软件正确验证验证。理想情况下,此建议的结果将优先提供参考实现,最终独立的服务和应用程序将支持验证。

用户数。在provision和Maxwell方案中,客户的数量都会被显示出来。此信息可用于了解交易所的进展情况,因此最好对其进行模糊处理,或者尽可能将其完全隐藏。DProvisions允许有效的填充机制来实现预定义的上限。后者似乎满足了当今应用程序的隐私和效率要求。

执行问题。理想情况下,交易所不应向审计师披露客户信息(包括个人余额),除非需要解决争议和例行抽样。也就是说,Maxwell的方案最初是设计在一个分散的无审计师环境中工作的,但实际上,该方案以前在现实世界中的应用揭示了审计师个人的平衡余额,而不仅仅是root根源。一个例子是iconmi案例[33],在这个案例中,审计人员接收到完整的Merkle树(仅平衡余额和散列,因此没有用户数据被共享),并检查到根节点的所有平衡和散列。审计员确实能够检查没有负余额,并且所有节点的总和和散列都正确。他们还公开列出了根节点散列,这意味着如果iconmi试图更改这些树中的任何余额或添加或删除用户,它将是公开的。这种方法的另一个问题是,他们使用了原始的Maxwell协议,该协议已经被证明有一个缺陷,允许在树中隐藏值。

后续审计。负债证明主要包括对每个客户余额的承诺和该余额在一定范围内的证明。对于所有新用户和其余额改变了承诺的用户,需要重做证明。对于其他用户来说,在技术上不需要重做证明。但是,如果不更改余额保持不变的客户的证明,则会泄漏有多少用户在这两个证明之间积极使用他们的帐户。如果重新生成完整的证据,则此信息将保持私有。如果一个交易所接受这个隐私泄露,它可以大大减少证据更新的规模,但这是不可取的。

争议解决。文献中没有一个协议提供争议解决。如果用户发现他们的帐户丢失或余额不正确,他们没有足够的加密证据证明是这样。回想一下,用户在交易所保留资金的主要动机是避免需要记住长期的密码秘密,因此交易所必须能够执行用户指令并在没有用户密码验证(例如密码验证)的情况下更改其余额。不喜欢交易所的用户也可能谎称账户验证失败,仅凭规定笔录无法判断用户或交易所是否正确。

虽然这个问题在密码上似乎无法解决,但我们可以对每一笔涉及用户帐户的交易使用传统的相互合同签名,然后我们可以揭示这些签名,总结这些值,并将其用作发生争议时的证据。理想情况下,被审计公司应将签名推送到用户的电子邮件或电话号码上,而不是通过网站按要求送达。上述要求是为了防止故意删除“证据”。

  第二章。应用  

本章旨在展示DAPOL潜在应用,或者结合其他工具,或者作为独立服务。

请注意,所有应用,无论它们使用会计余额还是其他类型的可替代值,都有完全相同的要求。证明人应提供一份总负债或债务的证明或“否定”投票,以便每个用户都能验证其是否包含在公示总额中,理想情况下,无需了解其他用户余额的任何信息。

2.1 偿付能力证明

偿付能力证明[2;6;9;13;17;22;34]用作公共证明,以证明保管服务准备金运行,例如,某些客户资产是否能在给定时间内提取。Maxwell的协议已经被一些比特币交易所用来证明他们仍然拥有客户存入的资产。

偿付能力证明是检查负债是否等于准备金,它由负债证明和准备金证明两部分组成。本提案中已经提到,DAPOL是一个债务/责任证明系统,由于债务独立于准备金部分使用的区块链技术,因此任何区块链交易所和保管钱包都可以使用它来透明地证明偿付能力。

2.2 否决投票

“消极投票”一词有时用于允许选民否决候选方案 ;它也可能意味着选民提供的唯一选择是投票反对一个或多个候选人,但有时用于允许选民选择投票赞成或反对某个候选人的系统。在我们的上下文中,反对票(或不赞成票)是对候选人、提案或服务的投票,可以算作负一票,也可以支持权重。与大多数选举制度不同,它要求只提出消极的措施或选择。

DAPOL可以作为一个原语方案,以分布式方式支持不赞成投票,每个候选人都会收到反对票,并将其存储在本地分类账中。理想情况下,不需要中央机构或web服务来接收投票、审计和监督流程。如果恶意实体试图通过不包含某些选票来作弊,则投票者始终可以检查他/她是否包含在报告的结果中来证明。

可能存在这样的案例,即报告的总金额应保持隐闭 ,并且仅用于与另一个同态承诺进行比较,即在不了解候选人实际投票百分比差异的情况下对候选人进行排序。一个例子是选举制度,在这种制度下,竞选各方比较其佩德森承诺,而不透露其实际的反对票数目(即,通过使用MPC提供其票数差异的范围证明)。

特别指出,选举制度本身是一个复杂的系统,需要满足其他性质的要求,包括胁迫和贿赂。因此,根据投票系统的要求,DAPOL应该与其他加密工具结合,以获得完整的解决方案。例如,当用户投票反对时,他们肯定会收到一张签名的收据,并在发生争议时将其用作证据。同样,要禁止sybil攻击,可能需要实现双重投票预防机制。

2.3 负面评价

评级平台(如酒店、餐厅、电子产品等)中的负面评价可被视为不赞成投票的一个例子。在一个理想的分布式系统中,每个销售商或制造商都可能收到关于产品或服务质量的负面评价,并有义务发布一份关于收到的低评级总数的报告。

显然,一个人可以通过漏掉部分或全部的反对票来作弊,有被抓住的危险。请注意,不需要中央机构或网站运行不批准跟踪服务,因为这种理论设计是完全分散去中心的。使用DAPOL,每个人都可以检查他们的投票是否包含在报告的总数中,然后将结果与预定义的阈值进行比较。显然,对于一个完整的系统,还应该使用sybil攻击保护机制。

2.4 筹款和ICO

筹款是通过邀请个人、企业、慈善基金会或政府机构参与寻求和收集自愿捐款的过程。虽然筹款通常是指为非营利组织筹集资金的努力,但有时也被用来指为营利性企业确定和招揽投资者或其他资金来源。

目前的捐赠系统存在的一个问题是,平台/慈善机构没有一个简单的方法来汇总用户转账,以证明所有用户捐款都包含在报告的总金额中。此外,官方审计在募捐活动中并不总是适用,因此许多捐赠者可能会担心“我的捐款是否真的被记录进去了?”。DAPOL实际上可以提高筹资活动的透明度和隐私性,从而增加用户的信任和参与。

2.5 收入报告

为了税务审计,企业必须定期报告收入。想象一下,如果每个公民/买家都能自动为验证每个商业公司的纳税证明做出贡献。

显然,DAPOL可以补充现有的审计系统,但它可以为普通用户提供额外的隐私保障,因为政府或国税局不一定需要跟踪个人收据来交叉检查会计报告的正确性。

2.6 银团贷款

银团贷款是由一群放款银行,向共同一个大借款人提供信贷。借款人可以是公司、个人项目或政府。银团中的每间银行贡献部分贷款金额,他们都分担贷款风险。其中一个贷款人作为管理人(安排银行),代表银团中的其他贷款人管理贷款。

在某些需要额外隐私的情况下,可能会出现放款人不一定知道其他放款人的贡献的情况。同时,如果安排银行报告虚假的总供款,它可能会承担责任。DAPOL可以成为此类场景的一个很好的候选加密工具。

2.7 彩票

彩票受到严格控制,在大多数地方受到限制或至少受到管制。然而,有报道称,有人为操纵奖金和大规模欺诈丑闻,确实,公平性很难证明,即使是真正的彩票。

在传统的彩票中,虽然我们要求第三方审计员确保正确计算所报告的总奖金。实际上,在许多彩票游戏中,每个用户都是根据下注的金额来贡献最终的奖金。像DAPOL这样的系统可以增加一个额外的安全网;奖金池实际上是一个负债,组织者没有任何动机增加它。因此,DAPOL可以透明地隐藏个人贡献和/或只向获奖者透露奖金总额。

2.8 信用评分和财务义务

信用评分是一个数字,代表一个人的信用评估,或该人偿还其债务的可能性。信用评分是根据对个人信用报告的统计分析生成的。除了最初的目的外,信用评分还用于确定保险费率和就业前筛选。

通常这些服务都是集中的,益百利、Equifax和TransUnion等信贷局都会记录一个人的借贷和还款活动。

使用DAPOL,可以建立一个新的分布式金融债务信用系统,用户可以在不需要第三方跟踪的情况下维护自己的信用评分。这样一个系统可能会更少的入侵,更私人。此外,如果我们将DAPOL与其他加密原语(即SMPC)结合起来,雇主和贷方可以比较信用报告,而不必揭示其实际价值。

2.9 转介/介绍方案

转介网站是一个互联网地址或主机名,用于让访问者访问另一个网站(转介)。访客点击了转介网站上的超链接,该超链接指向他/她现在所在的网站。

推荐行业通常是通过介绍费来赚钱的;推荐网站应该偿还推荐人的费用。然而,在许多情况下,即在赌博网站中,费用与用户的活动挂钩,例如注册或存款。不幸的是,推荐方不得不盲目地相信来自推荐网站的报告才能得到公平的回报。

类似的情况是房地产业务中的转介费,其中一个代理或经纪人为转介的客户向另一个代理或经纪人收取费用。

DAPOL可以为转介业务提供额外的透明层;如果用户习惯了这种模式,并且他们有激励机制[7]或自动检查包含证明的方法,那么如果报告实体报告了虚假或扭曲的数字,则可能会被抓到。

2.10 官方责任报告

在流行病大流行期间,受影响的卫生机构和地方当局报告了由病毒或细菌引起的感染和死亡的官方数字。在微观尺度上(即城市、医院)也适用于各种疾病。同样,公司需要报告每个时期的工作事故,而当局则定期公布失业率。上述所有因素的共同点是,官方报告的数字可以模拟为责任和债务。

一个例子是最近由严重急性呼吸综合征冠状病毒2(SARS-CoV-2)引起的2019-20年冠状病毒大流行(COVID-19)。疫情于2019年12月在中国湖北武汉首次确认,并于2020年3月11日被世界卫生组织(世卫组织)确认为大流行。透明度、及时的信息和准确的报告对于从死亡轨迹中得出结论性的见解,以避免延误卫生设施的准备工作,并适当预防流行病的副作用,是非常重要的。

DAPOL可以作为社区、医院和其他组织利用这项技术并允许个人私下核实的补充工具。尽管一个完整的解决方案需要一个有充分文档记录的方法,但大致上,这个想法是,每一个被检测出携带病毒的人都可以从地方当局或医疗中心得到一个签名响应。然后,在每一天,相应的组织或当局发布一个Merkle树,其中每个叶子对应一个人(或者,如果批量报告多个病例,则对应多个人,即当医院更新/向中央数据库报告时)。

然后,受感染的人可以检查他们是否包含在树中,而组织可以交叉比较他们的数字,甚至不披露实际的数量;尽管我们希望在这个特定的用例中,报告的总数量(Merkle根)应该是公开的。请注意,这样一个工具将帮助这些组织识别其内部流程中的陷阱。显然,这种幼稚的方法可以通过将DAPOL与其他隐私保护和数据分析技术相结合来增强,我们希望从社区获得宝贵的反馈来适应这种情况。

  总结与展望  

加密世界有非常多的很cool的密码技术如Merkle树,零知识证明(ZKP),但行业同时也冲斥着很多负面的东西,跑路,割韭菜,交易所挪用用户的投票权对项目分叉投票等等,这些无不与传统不对称信任一至,而仅当大众都能通过密码技术去verfiy,而不是盲目相信时,行业才直正成熟。

本文链接:https://www.8btc.com/media/593995转载请注明文章出处

—-

编译者/作者:玩币族

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

知识 calibra
LOADING...
LOADING...