Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文
本文宗旨在于简要概述当今主流加密货币中实施的匿名机制* D0 {0 Q1 V, P( m6 x. O# a& w/ D
区块链匿名是一个特别困难的事情,因为公共区块链的设计使得所有的交易都是透明的,加密货币的供应可以被公开验证。即使在保护隐私和维护公共可验证性之间存在冲突,匿名机制也必须确保这两个要素得以保留。 要了解Sigma和Lelantus背后的创新,我们需要研究区块链匿名技术的历史。# X5 L% d3 b% x! _
1.资金池混币和混币器混币
' _5 r$ B! N1 ?+ o6 L* t用于:达世币Dash,比特币混币器
, `4 Q* N2 C" ^8 P+ U2 n7 Z优点:
6 V5 L0 t, i8 P; |·不需要特定的共识就可以在大多数加密货币上运行
# f& s+ x" Z4 v) p* q1 f·实施起来相对简单
' \* |6 J, Q; q) D& x/ L' R·轻量化$ z* R( c1 w+ I) u% g; J
缺点:" g8 i7 x% f' U/ V
·只能提供基础的匿名
1 ?5 ~  M7 h* L/ Q6 O·要求在线混币1 \2 _& p" P/ f+ T
·早期的应用需要可信的第三方
  N& H0 b" u8 w/ y人们试图实现匿名的第一种方法是通过在资金池中混合自己和他人的币来达到目的,混合之后很难证明谁的硬币最初属于谁,从而提供某种程度的匿名。当然,前提是相信别人不会偷你的币。
2 F1 J$ b3 G3 [3 V; y7 f混币器是这种混合理念的改进,消除了匿名发起者窃取币的可能性,它在Darkcoin(现在称为Dash)中被广泛使用。但是混币器仍然有很多缺点。# m0 k: J0 D9 r) g
(1)因为后台可以记录信息,并且知道每个用户的输入地址和他们正在接收的地址,所以您需要信任匿名发起者。这个问题可以通过使用匿名数字签名来避免,因此混币器的匿名强烈依赖于以匿名方式(例如通过Tor网络)登陆。
  @+ Y! P1 E% j9 o/ @* A  `(2)要求参与混币的人员在线进行混币。如果双方就混币的数额不能达成一致的话则必须推迟。
* W9 e& X% @  [( z! i1 Z(3)匿名受到人数限制。Dash的混币(private transactions)的一轮只涉及3个参与者,但是这个过程可以重复。& d/ m7 n" H9 r7 Q% C' f
(4)最近的研究(https://arxiv.org/pdf/1708.04748.pdf)显示,即使经过多轮混币器混合,如果用户的钱包在进行支付时不清除浏览器cookie的话,可以通过技术手段识别用户的钱包,因为混币只会掩盖地址之间的交易链接,但不会完全破坏它们。0 p# K4 p( M, ~$ y
(5)很容易破坏混币器运行,并延迟其他参与者完成混币交易。7 y( J- O3 x4 t# x
更严重的是,Dash中被称为PrivateSend的应用,容易受到集群交叉攻击。
- r9 F7 p+ L/ j6 K混币器的其他改进,例如CoinShuffle++不再需要可信的第三方,但仍然受到混币器的其他缺点的限制,如有限的匿名、参与者必须在线等。
. D$ y3 a+ c0 ~( B混币器匿名的主要好处是它们相对简单,并且在加密货币的基础上工作,而不需要使用特定的共识规则。通过适当的预防措施,混币器可以提供基础匿名。
$ b% R! g, W  {  |; ATumblebit也是一个非常有希望的改进混币器匿名的方案,但超出了本文的范围。与我们将在下一步讨论的其它匿名方案相比,这是一个没有在协议级别实施的匿名计划,但仍然需要其他人提供用于混合的资金。它的主要优点与混币器相同,可以在比特币或任何其他数字货币上实现,而不需要改变其协议。* F2 V3 Q$ }4 [' q  m
2.Cryptonote和环签
( d: y. c! J) v% Q/ f- B) Q用于:门罗币Monero0 ^3 R+ L0 t+ E5 l7 x
优点:
" i" z, B5 A8 ]' k·混合自动完成
( T/ b8 x' f# {" ]- f3 E" P·可以默认情况下自动匿名
& M: s4 Q/ g2 p) D; ?·随着新的混币加入和时间的推移,匿名性会增加$ S; c, ~' o& s/ v: m' b
·使用RingCT(或防弹证明)执行时可隐藏交易金额
9 M$ ~& v  R' g0 L* b- k% K5 E2 I·充分研究过的密码学基础
7 r* l1 Z' o7 O缺点:4 s% }" Q3 K3 K( W+ V( u6 U# f
·不能打断交易链接,只能模糊它们,因此属于“诱饵”模型( j8 ~% T, p2 F
·因为其区块链数据巨大且不可修剪,因此可扩展性较差
+ f: [( \( B: o. b% c·由于科技进步或执行错误的原因,存在会被解密的风险
4 Q' E! f5 V- O/ B3 d7 r; v·无法利用现有的比特币生态系统,需要单独的工作2 u9 h; v. X6 D" |2 g  S
·环签大小受限
1 E* J% H3 @5 L! t; t9 J7 @·无法使用简单的付款验证(SPV),因此您始终必须运行或连接至全节点(没有轻钱包)
; o4 _4 |) z: Q# E) w·很难实施一些第2层解决方案,如闪电网络' w- c; I$ H" b' x- [
·没有供应可审计性意味着隐藏的通货膨胀可能无法被发现
  v) i: m: _3 K( W! H我们将要探讨的下一个匿名方案是在Monero等Cryptonote加密货币中使用的环签,环签方案大大提高了混币器方案的匿名性。在环签中,某人签署了交易,只能追踪到一个组而不能具体追踪到组中的这个人。比如,可知某个“高级白宫官员”签署了环签,但不能追踪到具体哪个官员签署了这条信息。  g4 C6 B+ c7 x' W" }$ o/ U7 b
Cryptonote和环签可以自动实现匿名功能,无需其他用户指定想要和谁混合,也无需等待其他人提供资金,因为它只是扫描区块链以便使用输出。因为没有混币器,所以你不需要信任任何人。Monero最近还实施了RingCT (RingConfidential Transactions),也隐藏了交易金额。. }  g( Z+ `7 E) W0 l
目前在Cryptonote加密货币中实现的环签实际大小(你所使用的其他输出的数量)上也有限制,因为随着环的尺寸的增加,交易数据的大小线性增长。这就是为什么在默认情况下,Monero的默认环大小是4。实际上,使用不同的环大小,默认情况下,有可能会让你去匿名化。这意味着,在每笔交易的基础上,匿名性受到环参与者数量的限制。区块链分析师虽然可能无法证明交易是有关联的,但他们可以计算出交易关联的几率。因此Cryptonote的主要缺点是无法破坏交易之间的链接,而只分别混淆交易双方来让交易难于跟踪。5 u, ?; Z: r8 z1 [: e9 A- D
此外,安全研究人员已经找到了方法,通过将交易与交易时间联系起来,对哪个交易是真实交易做出有根据的猜测。在交易中捆绑的一个真实硬币和一组假硬币的任何组合中,真实硬币很可能是在该交易之前移动的最新硬币。在Monero的开发人员最近进行更改之前,时序分析在90%以上的时间内正确识别了真实硬币,这实际上使Monero的隐私保护措施无效。在改变Monero如何选择mixins之后,这个技巧现在可以有45%的机率发现真正的硬币 -这种情况下识别真正的硬币只用大约做两次猜测了,远远低于大多数Monero用户的预期。
" e, ^" [' c/ N) c: B4 B另一种对此种加密技术的批评是,如果它的环签技术存在bug,或者出现相当强大的量子计算机,那么整个区块链的记录就会被去匿名化和可追溯,并且无法在事后修正。就像名为Shadowcash的Cryptonote加密货币,因为bug导致所有区块数据全部被解密。然而,实用的量子计算机还有一段时间,它归结为几年前的交易数据是否仍然有价值。为了使这些数据有用,它很可能需要与外部数据相结合。
8 K7 v3 p/ v) q1 v& A另外还需要注意的是,使用环签来隐藏交易金额,牺牲了供应可审核性。“供应可审核性”可以验证在交易过程中,是否有新的加密货币被秘密生成,并确定在某一时刻加密货币的具体数量。在Monero的“环签”的实现中,如果有人打破了支撑环签的离散对数,他就可以在没人知道的情况下伪造加密货币,虽然用目前的技术还很难做到。这可能只存在理论上的可能性,因为离散对数问题在密码学中被广泛使用,并且预计离散对数在量子计算时代之前仍然可行。然而,代码错误也会出现伪造的情况,缺乏供应可审查性会使检测隐藏的通货膨胀变得复杂。人们确实曾发现了一个允许无限通胀的Cryptonote的bug,虽然在有人都利用它之前就已经修补了。9 T  ~4 Y9 W; J! h0 n
使用与比特币完全不同的代码库也意味着第三方必须做更多的工作来将CryptoNote集成到他们现有的生态系统中。简单付款验证(SPV)也不被支持,使轻型钱包实施成为问题。% P1 ?6 O( F* r
尽管有这些缺点,但Cryptonote今天已被证明是一种非常好的匿名技术,它唯一公开惨败的例子是Shadowcash,被全部解密,通过使用混合了零交易的Monero交易导致一个级联效应,约87%的输入被去匿名化。 (随后被新的交易所缓和)。因此,区块链分析中的新技术可能会大大降低Cryptonote的匿名性,因为它仅仅是一个基于“诱饵”的系统。最近的FloodXMR论文中证明了这一点,该文件表明,通过大量碎片交易来使得输入端的混合失效,就可以实施成本较低攻击。 当然,关于这种技术的成本和效率尚存在争论。
. _+ L% H# O( N3 y! ?5 t3.Zerocoin协议和Zcoin
2 ]/ ~0 I, }# X# ~6 V用于:Zcoin,PIVX6 ], L& X  @, E! p; S
优点:( Z6 V% U  z! `' m
·不需要混币1 f$ h: A' ]0 ]1 g
·成千上万个熔铸和取回交易完全打乱了各地址通过交易建立起来的联系,从而实现极高的匿名性
! N, U5 D) v5 G! N1 N4 M·保留总量的可审查性  L: J3 B8 V* U& i+ V: Z0 s+ q- {
·使用已被大量验证的密码学! G, A. L6 _8 X' \! J
缺点:& ^* Y9 n2 X# N4 `8 X( d2 \, L
·由于其中一个证明存在加密缺陷,Zerocoin目前已被破解。 虽然它可以被修复,但更好的实施方案,如Sigma和Lelantus将取代它。
2 B! L- f# K: C* h3 N5 m·证明尺寸目前比较大
/ p: O% G/ \) O! m* h! {) n·需要一个预信任机制: A$ @5 y. |( i$ j$ O, j7 J
·错误的实施方案或泄漏受预信任设置参数可能导致伪造zerocoin  G! s3 `- [6 z
·在熔铸和取回的时候,需要多加注意。为防止时序攻击,用户必须在准备取回匿名硬币之前将被重铸的硬币保存一段时间。, V3 Z8 f2 }7 E7 D" r
现在,我们来看看在Zcoin上实施的Zerocoin。与之前只是打乱了交易的输入输出的匿名方案不同,在使用零知识证明的情况下,Zerocoin协议完全打断了币之间的交易链接。
. K3 p4 V& t$ u9 Z) t* H0 d简单地说,零知识证明是你做某件事或知道某件事的证明,而不泄露任何其他信息。例如,要证明您知道密码,而不需要实际显示密码。
6 ^. Z. @7 E- M6 D" m) z# j- v% E+ gZerocoin的工作原理是,熔铸掉你自己的加密货币(我们称之为零币熔铸),然后再兑换等量的做记号的新币(被称为零币取回)。这些币在没有任何交易历史的情况下出现,看上去就和新挖出的币一样。这一证明是用来证明你确实销毁过了加密货币,而没有透露你销毁过的具体加密货币信息,因此你有权赎回等量的新币。: ?8 l0 C/ u' Z
这意味着,与混币和Cryptonote技术(匿名集的大小受参与者的数量或环的大小所限制)不同,Zerocoin的匿名集要大的多。你的匿名集等于所有曾经做过相同数值熔铸的总量。这就使得匿名者可以在成千上万的人中使用零币熔铸和取回来扩大规模。此外,这些硬币的交易环节也被完全打破,因为它们看起来完全是全新的硬币,与之相比,之前的匿名方法只是掩盖交易环节。  P" Q- h# f' B: [
这种匿名模式也有一些缺点。为了获得巨大的匿名性,同时打破交易链接,Zerocoin需要一次可信的设置来生成初始的参数。在Zerocoin中,有两个被摧毁的大质数。如果有人获取这两个巨大的质数,就可以凭空伪造出Zerocoin。为了解决这一问题,Zcoin使用了1991年的RSA质数挑战中的方法,在该挑战中,密码学专家生成并摧毁了两个大质数,并为能在16年内成功地将其分解的挑战者提供了20万美元的奖金,但无人能破解此难题。时至今日,RSA-2048方法仍然是我们所知的最好的方法,RSA-2048方法仍然被广泛使用,直到某天能够专门破解此类难题的量子计算机的出现。+ U. r8 j5 R( I! @+ F: E4 R, w, p
值得注意的是,对这两个质数成功的分解不会影响零硬币的匿名性,因为它只影响熔铸。此外,Zcoin的总量可查,这样就可以监测硬币的熔铸过程。在项目前期由于编程中的一个bug(并非RSA被破解),硬币的熔铸出现问题,但我们及时检测到了bug并进行了修复,因此可见,总量可查是非常重要的。
9 \' W% Q4 A$ C% t' p" S" r& F同样值得注意的是,即便是比特币也在2010年遭遇恶性通货膨胀bug,由于供应可审计性人们监测到了凭空产生的1844亿个硬币。 最近在2018年9月,在比特币中发现了另一个恶性通货膨胀的漏洞,但仍然未被开发。) I+ b# o+ @# k* n- X
Zerocoin的另一个限制是,熔铸和取回只能处理固定面值的货币,相比环签交易,零币的零知识证明的数据大小是25kb。值得注意的是,不同于Cryptonote交易(所有交易都占用同样大小的数据),只有匿名取回的交易占据了25kb数据,而普通交易的数据大小与比特币交易的数据大小相同。与其他交易相比,Zerocoin取回交易的计算密集程度也很高,需要大约半秒才能完成。
0 ^; J. N0 `5 t9 {此外,不正确的使用或有规律的使用Zerocoin铸币和花费交易,如总是定期铸造和消费,或做熔铸和取回的间隔时间太短,或使用相同的IP地址熔铸和取回可能会损害匿名,因此需要多加小心。建议用户在他们想要取回硬币之前预先熔铸好硬币。硬币以铸造形式存在的时间越长,匿名性越好。这一点正在通过Zcoin即将推出的GUI来缓解,该GUI建议用户保留一定比例熔铸过的硬币。  _6 N, ^* }% A9 g. M# H' j" i
总而言之,Zerocoin提供了非常强大的匿名性,但为了实现该匿名,需要信任机制、区块链上的存储空间和额外的计算资源。Zcoin的发展正在解决这些问题。
1 x( J4 N6 [/ [9 J0 N0 q4.Sigma* }- ?. I/ [0 G
用于:Zcoin,NIX
# V! K4 E* P' e优点:- |/ ]; T6 B9 n5 ~3 P
·无需混币
- A- V5 O+ C/ O·匿名性非常高,匿名集可高达100,000左右。 熔铸和取回交易可完全打破地址之间的交易链接。
5 [/ d" P% C# q) X7 k·保留一定程度的供应可审计性,因为交易金额不会被隐藏,硬币必须取回至基础层。
( j% ]9 D1 i( I3 a5 S8 ?& b- R+ ~·使用经过深入研究的密码学。. k4 m0 z/ X$ Z- o$ ~+ ^
·很小的证明尺寸,仅为1.5 kB。* r2 a9 @' x9 h0 y; }; S
·无需预信任机制。. R5 s! H9 q4 E# Q& q: u: A+ s# K- A
缺点:6 b+ }! @/ @- d' R" [
·与Zerocoin一样必须使用固定面值。
; U  ]& `' U* `·操作Sigma熔铸和取回时必须小心,使用者应在取回之前熔铸好相应硬币,以防止时序攻击。
" F/ K* p# V4 S% k- Y. N·在密码学基础没有突破前匿名集难以突破100,000。
+ g/ x  n7 r9 R6 kSigma是由Zcoin发明并实施的匿名协议,其工作方式与Zerocoin非常相似。它有两个关键的区别:它无需预信任机制,且其证明尺寸大幅变小,大约为1.5 kB(与Zerocoin的25 kB相比)。. D+ O8 n+ \( k* t9 r7 d
Sigma基于学术论文《One-Out-Of-Many-Proofs:Or Howto Leak a Secret and Spend a Coin》(Jens Groth和Markulf Kohlweiss)利用Pedersen承诺及其它技术取代RSA累积器,使此加密构造无需预信任机制。 Sigma设置中唯一需要的系统参数是ECC组规范和组生成器。这种结构已在《Short Accountable Ring Signatures base on DDH》(Jonathan Bootle,Andrew Cerulli,Pyrros Chaidos,Essam Ghadafi,Jens Groth和ChristophePetit)中进一步优化。9 T6 C! E) S7 z' s
Sigma严格来说是深度优化的Zerocoin。其唯一的缺点是它仍然需要固定的面额,这意味当使用者不注意时会更容易被识别出熔铸方和取回方,并且在保障性能前提下,匿名集仅限于大约100,000。
- D6 T) ]1 g/ t! i$ X4 F$ n5.Lelantus
: f+ c! T# L1 |5 A0 @# k如:Zcoin(研发中)8 F9 Q5 |$ t! G; G
优点:+ Y8 n) p$ `& V8 F. n& C
·无需混币器
8 \# E# e, X9 L5 o$ H8 @' ]·匿名性非常高,匿名集高达100,000左右,使用熔铸和取回交易完全打破交易地址之间的链接。: J9 Y& C7 j$ D# P% l
·使用成熟的密码学,仅需DDH加密假设) ]" {; o+ p7 ^: V, v! {
·很小的证明尺寸,仅仅为1.5kB$ K) H$ S* S6 q' E' \7 b
·无需预信任机制: z* e' b: m* x
·可使用非固定面额' r( K# {/ `, A# D: W3 }+ q: _
·可直接匿名付款而无法转换至基础层的硬币0 q, L2 H7 M5 p! U; G' i" b% G* u
·良好的可扩展性,足以支持默认匿名交易
3 d* N# @8 t5 D( f缺点:6 S$ o: u" W' q/ [/ `# c
·在加密技术取得突破之前匿名集难以突破100,000
' _2 o$ M2 P& _/ b9 W9 q2 r·目前直接匿名付款时需要收入方再次取回并再熔铸,以防止发送方发送的时间被发现
/ T  R+ c6 `5 j·仍处于早期发展阶段。 Zcoin已完成其加密库,Monero的Sarang Noether也完成其初步实施方案的证明。
0 D+ H) }. P) JLelantus通过取消对固定面额的要求进一步扩展Sigma,并允许直接匿名付款,但不显示金额。 Lelantus是Zcoin的密码学家Aram Jivanyan的创作,是我们不断改进隐私协议的一部分,其全文可在此处阅读。
" [4 Y2 a0 Q" K: M6 W* M  tLelantus保留了Sigma不需要预信任机制的所有好处,但通过利用双盲承诺和防弹证明来隐藏交易金额,消除了要求固定面额的剩余弱点。用户可以燃烧任意金额并兑换任意金额,这样就可以更加难以找出熔铸和取回之间的联系。
. t6 E" F' c) M4 z5 M0 S  }如果Lelantus存在某些弱点,那么就是其匿名集仍然限制在大约100,000,超出以后的性能使得实施起来不切实际,但我们认为对如此大的匿名集进行分析是不切实际的。与几乎所有其他隐私机制相比,它的匿名集仍然更高,除了Zerocash有自己的一套权衡(预信任机制,复杂的构造等),我们将在下面进一步探讨。' P7 g9 d5 N! y' E) p; P
在当前研究状态下直接匿名支付还需要额外的取回和再熔铸步骤来匿名化发送者。我们仍在进一步研究,以进一步改进和扩展。
) @- L7 H' P* X+ B3 z. ?/ P2 m1 K/ c! \
6.Zerocash and Zcash
  m# X/ U9 i. C如:Zcash,Horizen,Komodo,7 o3 B8 E. q5 Z$ S6 u0 Y/ A
优点:
0 p; U& n! z+ a! S, q  A  y·在熔铸过程和打破地址之间的交易链接方面可能是最好的匿名技术
% o- _+ q6 \, V  x·验证数据小,验证速度快' V  O5 N5 Z8 Z( r* x
·隐藏交易金额: X3 D/ g! ]5 T& Y4 j$ G$ S
·不需要预先转换成普通硬币,匿名硬币可以直接发送到对方。5 i* d# j; i; ~9 |7 ^& k, x/ d
缺点:  w. X6 K1 Z  Z+ A- a; |+ Q8 A
·匿名交易是计算密集型的(虽然通过Sapling升级得到了很大改善)6 H' W# j* B5 ~6 G
·必须由团队安排的复杂预信任机制
0 ~- z4 Z/ M- q+ D* t·不正确的实施或预信任机制参数的泄漏可能导致伪造硬币。2 [- k) @9 m' a1 C# H
·因此,如果硬币是伪造的并且凭空产生的,则无法检测供应,因此无法检测到供应。 这种性质的漏洞既可以在发布之前找到,也可以在实时主网中找到。. y) G2 w# E/ g
·使用相对较新的密码术并基于被批评的加密假设(KEA)。( K/ ^1 ?% K$ d! A/ N8 R5 Y. i
·很难理解完全意义上只有少数人能够掌握密码学和代码,并且可能出错。- h1 `. ]  t3 n
我们讨论的最后一个匿名方案是ZCash中使用的Zerocash协议。Zerocash采用了零知识证明,并试图改进Zerocoin协议。有了Zerocash和zkSNARKs技术,匿名数据大小现在只有1 kb,并且可快速验证。此外,所有交易金额都是隐藏的,在进行熔铸时不需要使用固定的面额。Zerocash还允许人们将Zerocash的“零硬币”直接转移给对方,而不需要将其转化为等价的基本硬币。它的匿名方法也是之前所有匿名计划中规模最大的一个,包含了所有铸造的硬币,而没有考虑区块链的面值。
, Z, E! \# r! P  J粗略来看,就会觉得Zerocash技术超出了Zerocoin,然而,相对Zerocoin,它也有一些不足。6 i6 R/ T9 ^$ N. \0 Z% K
首先,Zerocash缺乏供应量可审核性。和Zerocoin一样,Zerocash需要一个预信任机制,但Zerocash的设置要复杂得多。Zcash采用了一场涉及6人的多方仪式来完成设置,其参数泄露的唯一方式是,所有的6人相互串通,并保留相关参数。换句话说,你必须信任这6个人中的任何一位,相信他们摧毁了初始参数并且相信这个仪式被正确执行。这是一个严重的问题,Zcash正在组织一个新的预信任机制仪式。
" l1 ]6 F- [2 R如果代码中存在错误,或加密缺陷或多方预信任机制存在问题,攻击者可能会生成无限制的Zcash,与Zerocoin不同,无法检测到此额外供应。特别是在使用Zerocoin以类似原理运行的系统中,允许创建新硬币,供应可审计性变得越来越重要。
( O2 w% K+ _6 F0 \% m4 U/ T2 l+ i实际上,从发布到2018年10月28日,为期两年,Zcash实际上已经在其主网上修补其中一个漏洞。没有办法判断这个bug是否在被修补之前被利用了,从发现bug到修补之间存在8个月的差距。这不是第一次发现这样的错误。 Zerocash在其开发早期也有内部碰撞漏洞,这也允许锻造硬币。虽然这个bug从未投入生产,但它突出了潜在的风险。9 Y5 G5 X$ d. A$ t$ \* G' k; L* b
BTCP,一个同时基于Zcash和比特币的分叉币也遭受了隐藏的通货膨胀,近十个月没有被发现。只有在通过比特币UTXO输入时检查UTXO输出流程才能检测到这种通货膨胀。这不是由于密码学的缺陷而是隐蔽的预设,它突出了具有不可审计的供应的潜在问题。
8 A2 C# D5 |0 w, c+ R我们强调,即使是像比特币这种经过严格审查的项目也遭遇了许多恶性通货膨胀的错误,例如价值溢出事件和最近的CVE-2018-17144。比特币保留供应可审计性允许检测到这些错误或确认没有发生漏洞利用。/ H; \- `* |. [8 C% i% Z" p- @
另一个值得商榷的是其使用称为zkSNARKs的新实验密码术,它实际上仅用于Zerocash。对它的审查要少得多,因此不像RSA那样经过实战检验,RSA已经使用并经过多年的审查并继续得到广泛应用。 zkSNARKs使用加密假设,这些假设仍然是实验性的。与已建立的加密算法不同,如离散对数假设或分解硬度,zkSNARKs安全性基于双线性群的指数知识(KEA)假设的变体(通过某些配对友好的椭圆曲线实例化)。 KEA尚未得到很好的研究或部署,也受到批评。一些专家认为zkSNARKs背后的密码学相对较弱。
3 Q) [7 I* \* lZerocash也非常复杂,这意味着只有少数人能够正确理解和审核它。事实上,由于Zcash假设,产生如下现象:0 P  X# Q  T* L4 |5 m( {
·发现漏洞需要高水平的技术和加密复杂性,而很少有人拥有。
% g( F8 o1 ]! j) u0 e) n·该漏洞已存在多年,但许多专家密码学家,科学家,第三方审核员和第三方工程团队都没有发现这些漏洞,他们根据Zcash代码启动了新项目。) d9 h; W' c# B) ^, w
这实际上是“基于默默无闻的安全”。
& I# B5 i6 R$ B4 q8 }3 x: xZerocash的另一个主要缺点是,由于需要进行复杂的数学计算,因此,在一台功能强大的计算机上,匿名交易的生成时间要比之前任何一种匿名方式要长得多,特别是对配置较低的计算机来说,这一过程太长。这使得人们无法广泛使用它的匿名功能,也可能会不适用一些功能不太强大的系统,比如移动设备。Zcash通过使用新的BLS12-381曲线在其最新的Sapling升级中对此进行了重大改进,将生成时间缩短至几秒钟,并且需要大约40 MB的内存,这使其最终可用于移动设备。但是,与本文中的其他匿名方案相比,它仍然是计算密集程度最高的。
5 X2 J1 k& Y9 T7 b. _因此,尽管Zerocash具备可能是最好的匿名性,但它以牺牲总量可查为代价,同时也包括如下缺点:复杂的预信任机制,使用过于新的加密技术,创建匿名交易需要很长时间。
& ?+ q" s# _/ G3 _然而,Zcash团队正在对zkSTARKs(zkSNARKs的替代品)进行研究,该研究不需要预信任机制,并使用加密算法和更简单的加密假设。但是,到目前为止,zkSTARKS目前由于尺寸较大而无法使用,而且创建zkSTARK的计算要求仍然很高。还有其他一些有趣的zkSNARKs变种尚未实现,例如Sonic和Spartan,它们以不同的方式解决了预信任机制问题,但是它有一套超出本文范围的权衡取舍。4 V3 i# J7 \' W) l* U! Z
7.Mimblewimble
0 O1 F: ?; V* L- l$ |用于:Grin,Beam
1 W1 c" p7 Z6 e% S优点:
) i. U+ {! `; J# i, M9 C·所有交易都是匿名的
8 a# O7 c9 k' W6 `" h7 e·使用完善的密码学
3 P# d, v; w. L7 P/ V·隐藏交易金额
6 B* a2 R  |, u* g* k$ W1 _" k) ^- ?·区块链可以减小尺寸,因为它只保留UTXO
1 ~" m! M7 @5 i! m4 a0 K1 C·不存在重复使用地址的问题3 L* T& c; f. J
缺点:% r( Y2 M7 c( X% O3 ^
·需要接收者和发送者之间的互动。无法留下地址然后离线等待接收。多方交易存在问题,因为各方需要进行通信以创建交易。& ^+ h3 v6 `' V
·不打破交易链接,只是模糊它们,因此是一个“诱饵”模型。. t' c0 ]; t# a* {
·监控网络可以揭示交易如何加入的详细信息。7 d( {) G7 t& E! P7 q
·如果一个块中交易太少,那么匿名性会大大降低,因为它依赖于其他事务来加入。
% ^# b, r6 T- Y0 B$ l·硬件钱包中的冷存储很难实现
2 N2 V5 ~8 H: W. p4 v·Mimblewimble上的开发智能合约更难,因为没有脚本语言,只能通过“无脚本脚本”中的开发来完成部分功能
: }, f) F% j, g( B- F·相对较早版本的开发并且不共享Bitcoin core代码,使其借用比特币社区共识并将其集成到基础架构中需要独立开发。- D& f1 w' }. h
Grin和Beam都是MimbleWimble的应用。 Mimblewimble通过两种主要方法工作,首先隐藏所有交易值,然后通过将所有交易到一个大事务中,以便在块中,它看起来像是具有许多输出和输入的巨型交易。仅从区块链中查看它,即使同一个块中只有少量交易,您也只能通过猜测来判断哪个输出来自哪个输入。 Mimblewimble还允许另一个称为直通的功能,如果A向B支付然后将其全部支付给C,则区块链可以记录A到C而不显示B。
8 I5 n; \2 z1 F7 N+ c4 d$ N2 h/ c较为简单的理解方法是比较交易比特币中的交易方式与交易在Mimblewimble中汇总后的情况。- k( q  S1 ^/ C
想象一下A发送到B和C.在单独的事务中D发送给E和F.
) R4 F( {! O: d- {* J1 v3 ~7 {在比特币中,这将被视为
2 X& P# M, v7 Z8 o(输入)A>(输出)B,C3 i; F; @! _: A" _7 J9 P% o% m
(输入)D>(输出)E,F/ g) a4 w4 `/ D. M
他们还将拥有进一步使其独特的交易价值。
% Z. F: K$ F+ F& G- S# V( m  j在Mimblewimble中,所有交易值都被隐藏,并且这些交易被聚合,因此一旦交易在块中连接,它将如下所示:
" g9 M( d* b/ ]% a  A7 h" r) g) i! T; t(输入)A,D>(输出)B,C,E,F
4 l5 o3 M. l  P( v- [5 Z" u现在无法具体知道是谁发送给谁的!& O# p0 D, r' n7 B: d
对比比特币和Mimblewimble交易方式& ^8 g6 U. K/ c# S# J
然而,最大的假设是,在这些事务传播之前以及在将它们记录到区块链之前,没有人监视网络。使用vanilla Mimblewimble,有人可以创建一个连接到网络中所有其他节点的恶意节点,并在它们组合在一起之前记录事务,从而能够对事务进行去匿名化,这意味着它除了地址仅使用一次和交易值被隐藏之外,其他方面的匿名性仅仅相当于比特币。' n: K- A# [6 N9 ~  x4 m" B1 Z" _. p  R
为了缓解这种情况,Grin和Beam都使用蒲公英技术来改变交易的传播方式。不是将每个事务广播到所有对等体,而是首先通过一系列随机选择的对等体(主干阶段)发送该事务,然后才扩散到整个网络(发散阶段)。每个后续节点随机确定是否继续主干阶段(90%几率)或切换到发散阶段(10%几率)。虽然交易处于主干阶段,但在广泛广播之前,它们也与其他交易结合在一起。这使得节点更难以全面了解交易如何连接在一起。然而,它不是一个完美的解决方案,并且在将交易添加到块之前,交易仍然聚集在一起的方式仍然可以找到线索。) |7 o! ]9 N7 o3 ?4 q
这与Mimblewimble也是类似于Cryptonote的基于诱饵的系统这一事实相结合(尽管它使用不同的方法实现了它),它仍然存在与其他基于“诱饵”的隐私系统相同的缺点,其中重复交易可以进一步降低匿名性,交易网络仍然存在。此外,如果区块中的交易不多,则会极大地降低匿名性。如前所述,对网络的主动监控可以进一步威胁匿名性。
$ s/ J$ O; f% w/ j通过跟踪MimbleWimble交易构建的交易图表3 d0 E! z5 @& |1 `; [1 g$ V
MimbleWimble的一个重大缺点是需要接收者和发送者之间的交互(意味着接收者和发送者需要直接通信以传达一个致盲因素)和一个可消除地址的极为不同的方案。这意味着您不能只在网站上发布地址,而必须始终提供新值。这也使多方交易复杂化,例如,在一次交易中向B,C,D,E汇款将要求这些方中的每一方在发送之前与A通信。Beam的实现通过使用安全公告板系统解决了这个问题,该系统允许人们将他们的消息发布到Beam的完整节点,以便一旦用户上线就可以传达盲目因素,但如果这会影响隐私,则需要进一步研究。
/ o4 }3 ~' ~8 M6 E! l) \此外,虽然没有地址,但Pedersen承诺仍然是独一无二的,因此MimbleWimble本身并不隐藏交易图,这意味着您仍然可以看到资金如何流动,因此可以被视为“一次性”地址。这意味着如果没有蒲公英和Coinjoin的附加变通方法,Mimblewimble的隐私就相当于比特币,除了地址只使用一次并且隐藏了交易值。5 H8 [8 h" F+ \2 r
Grin没有脚本语言,因此实施智能合约可能十分困难,虽然“无脚本脚本”的开发可能能在特定领域使用类似的功能。" F0 |% a- `0 N) M8 `
凭借完全隐藏的交易值,Mimblewimble没有供应可审计性,它依靠防弹证明/机密交易来检查是否已经凭空创造了任何额外的硬币。然而,因为它背后的密码学十分成熟,因此其供应可审计性并不像Zerocash协议那样是一个巨大的问题。& P) ~/ g( f* z5 ?. m! E8 P
8 .其他匿名方案以及为什么我喜欢的匿名币没有被分析?
, k$ q  ~4 p3 Q6 o( o在这里列出的所有区块链匿名方案都得到了研究人员的好评,各种匿名方案都很容易理解。然而,现在的加密货币有好几百种,但只有少数能真正实现匿名。以下是新的匿名机制是否可靠的关键因素:, r6 P1 u" @1 Q" k" z! Y, Z0 ^
?  它能提供区块链的匿名吗?
3 x$ U/ \6 O1 j! e7 A& w6 ^一些匿名货币声称具备匿名技术,但在区块链上完全看不到任何匿名保护。具体可见下文:(在区块链上匿名与隐藏IP的区别)。/ a. o* e# B: E( ?/ n
?  专家撰写的匿名保护机制是否被审查过?% \% @7 Z+ Q0 \1 c
看看他们的匿名计划是否经过密码学家的审核,是否有学术论文引用它,许多程序都是由开发人员或程序员编写的,而他们没有任何的加密或信息安全的背景,其实现匿名技术的技术通常并不可靠。
+ u% [% P' H$ ^) P8 A?  它仅仅是利用现有技术的一个新名称吗?, H& T( b! h) q+ M
一些项目将现有的匿名货币更名为自己的名字,并将其作为自己的名字进行发行,如果他们公开了原始的匿名技术,这是可以接受的。
, w3 V$ |$ a8 Y4 U?  是否是中心化的?  f- z2 s. {+ P: D9 B
如果依靠你信任别人来保护你的匿名计划的话,它通常是一个糟糕的匿名计划。8 c$ f' V& ^9 t1 b" {/ S4 k% {
?  团队是否理解这些匿名技术背后的密码学?0 h: Z- J5 l( F' z
除非你自己是专家,否则这很难确定。检查他们的团队,看看他们的团队或者他们的顾问名单上是否有密码学相关的研究经历。
: h* ?. l, [) [1 _, m% e$ e9.总结7 m7 ?  k6 @+ l, {2 U7 Q
每一个匿名模式都有自己的利益和权衡取舍,我们相信,对这些匿名方案进行持续的探索和研究,会改善整个区块链的匿名技术。
- h6 v5 t$ A7 E. Z$ o( V9 S我们坚信Zcoin中使用的Sigma和Lelantus协议与其他匿名方案相比,提供了一个非常全面的匿名方案,它使用经过验证的加密技术提供了非常强大的匿名性,同时还保持了可扩展性和可审计性。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

一夜雨十年灯潞 初中生
  • 粉丝

    0

  • 关注

    7

  • 主题

    11