深度洋葱币DeepOnion中的混币CoinJoin和多重签名技术

in #deeponion7 years ago (edited)

我想要深度剖析深度洋葱币的DeepSend功能,该功能计划于18年第二季度发布。DeepSend将确保一个洋葱币交易中发送者的身份在公开账本上是不可追踪的。你或许猜到了,我要讲的就是混币技术CoinJoin和多重签名验证技术Multi-signature verification。

当然, DeepSend除了包含CoinJoin和多重签名之外,还将集成零知识证明Zero-Knowledge Proofs和环签技术Ring-Signatures,本文只涉及前两者。

基于多重签名认证的CoinJoin 。

基于多重签名认证的CoinJoin是很先进的一个概念,因而难以捉摸。为了更好地讲明白,本文用一个具体的例子来一步步介绍上述技术是怎么工作的。

场景:

你打算发送100个洋葱币给CARL(一个洋葱币地址)作为给该地址所有人的酬金;
你不愿意让公开账本记录你与这笔交易的任何关联。

首先你要做的是发送一个匿名请求来申请匿名交易。然后系统会随机选择两个人同意执行匿名交易服务的两个人来帮你完成这项交易。

在我们的例子中,JOHN和JULA被选择分别作为混币者MIXER和裁决者GUARANTOR。混币者的工作就是作为一个中间人来执行转账操作到CARL。而裁决者的工作就是解决可能发生在发送者(即你自己)和混币者JOHN之间的纠纷问题。

为了便于理解接下来要发生的过程,你首先需要弄明白什么是多签交易Multi-Signature Transaction和多签地址Multi-Signature Address.

1.png

2-of-3多签交易和地址

多签地址其实不是存在于公开账本上的一个实际地址,而是专门用于执行多签交易的一个东西。

在我们的例子中,2-of-3多签交易的正常进行是易于一下规则,即你要有三个不同的秘钥可以签署一个交易。但是,要让该交易有效,你至少需要三个秘钥中的任意两个来执行签名操作。这就是该过程为什么叫做2-of-3多签交易。

那么2-of-3多签交易怎么应用在CoinJoin中呢?很简单,该过程有三方:发送者,混币者和裁决者。三者中每一方均有一个秘钥用来签署交易。必须有三方中的两方的签名,交易才能进行,否则资金将会被退回,交易会失败。

所以,上面说的2-of-3多签地址在该过程中充当了一个临时地址,在该地址一个多签交易在被广播到公开账本之前被三方注册。

三者之间怎么转账的?

多签交易的牛逼之处在于,多个交易可以同时发生,这使得很难基于公开账本上的记录去搞清楚谁支付给谁了。外部观察者只能看到三方参与了交易,但不知道谁是谁。

交易的分步解析

三方都同意进行多签交易之后,交易就开始了,接下来我们一步步对该过程进行解析三方同意之后。需要注意的是,为了执行多签交易,你必须发出两倍的数额(即200个洋葱币,酬金的两倍)再加上多签交易的服务费。

  1. 一个临时的3重签名地址生成
  2. 你发送200个洋葱币以及服务费到多签地址,其中100个用于支付,另外100个暂时托管。
  3. JOHN和JULIA也分别发送100个洋葱币到该多签地址。
  4. 裁决者JULIA创建交易,该交易用来分别给三方,即你和JULIA, JOHN各100个洋葱币。 JULIA和JOHN平分服务费,并且分别收到100个洋葱币,而混淆者JOHN再额外收到100 ONION。
  5. 你和混淆者JOHN用私钥来验证此次交易。
  6. 混淆者JOHN发送100个洋葱币给实际接收者CARL,并将交易的ID,即TX-ID信息共享给你和裁决者以供你俩分别验证。
  7. 你验证混淆者JOHN是不是发送了正确数量的洋葱币给了正确的地址,验证之后签字,再告诉裁决者JULIA也签字。
  8. 都签完字后,交易就成功了,并被记录到区块链中

如果,你作为发送方发现混淆者JOHN没有发送正确数量的洋葱币给正确的地址,你没有在交易上签名,那么裁决者就会取消此次交易,之前各人发送的所有洋葱币和服务费都会原路退回。

以上就是多签验证Multi-signature verification和混币CoinJoin的基本原理

最后,当交易成功后,该多签交易表现在公开账本上的信息如下:

你在多签交易中发送了200个洋葱币及交易费到多签地址,混币者JOHN发哦送了200个洋葱币同时接收了200个洋葱币及一半的服务费,裁决者JULIA发送了100个洋葱币并接收了100个洋葱币及一般的服务费。
混币者JOHN发送100个洋葱币给CARL。

强强联合

你好像还有点担心,貌似旁观者可以追踪到你。但是,你这样想:

  • 100个洋葱币可以被分成1个,2个,4个等多个标准额度的小份;
  • 公开账本上同时又多个类似的多签交易。而且发送者你,JULIA,JOHN以及CARL同时可能在不同的交易中与另外的人一块儿扮演混币者或裁决者的身份。

如果你把基于多签技术的混币和隐身地址Stealth Addresses技术结合,将不会有任何机会能够成功地追踪到你和CARL之间的这笔交易。

我觉得这应该能够帮你更好的理解混币CoinJoin和多签交易是什么鬼东西,以及这些技术怎么被用于洋葱币的匿名功能。

深度洋葱币的DeepSend模块会确保交易中的不可追踪性即发送者的匿名性。而DeepProtocol模块(隐身地址Stealth Addresses)用于确保交易中的接收者的匿名性。 这两个模块的强强联合,能够作为深度洋葱币保护用户隐私和匿名的坚实基础。

DeepOnion forum: https://deeponion.org/. Here we can use $ONION to refer DeepOnion coins.

Sort:  

Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
http://blog.csdn.net/golden1314521/article/details/79610146