您好!刚知道Zcash吗?
The Zcash network is young, but evolving quickly! Sign up and we'll be in touch with monthly highlights on ecosystem growth, network development and how to get started with Zcash!

语言

Zcash 交易剖析

Paige Peterson | Nov 23, 2016

Zcash 自 10月28日 成功发布后,我们收到了来自矿工和用户的井喷式的关注和兴趣,他们希望都希望能够利用这项协议的机密和隐私特性。当发送和接受 ZEC 时,选择使用隐私抵制还是透明地址的功能对于用户来说非常重要。理解这两类交易之间的区别是做出正确选择的第一步。

为一笔交易建立区块

一个面向用户的 Zcash 交易建立区块的过程可以分解为发送和接收抵制,庄户余额和交易费用。更将复杂的交易元素在我们的 协议说明说 中做了详细说明,因此我们在这里暂时回避这些概念。对于发送至隐藏地址,一个额外的“备忘录区域”单元需要被使用,但这将是以后博文中的主题。

高级 Zcash 交易概略图

一个对于 Zcash 交易更高级的视角。

上面的图表显示出发送和接收 ZEC 的过程。如果需要使用隐藏地址 - 无论发送还是接收 - 都需要生成零知识证明,这个证明允许其他人在不揭露交易内容的前提下验证加密交易的真实性。(零知识证明如何在隐藏地址之间进行工作的更多细节将在未来的博文中进行讨论。)这些地址总是以“z”开头,有时也会索引为"z-addrs"。类似的,使用透明地址需要把被称作 "透明价值池"(或 TVP) 和公开交易数据之间联系起来进行互动。这些地址都以“t”开头,有时也会索引为“t-addrs”。转账手续费同样通过 TVP,也因此在区块链上始终可见。即便交易的手续费始终被揭露在外,在 Zcash 真实交易中的隐藏地址和转账金额并不受影响。

来自区块链浏览器的一个关于在隐藏地址之间发送 ZEC 的截图

来自区块链浏览器的一个关于 在隐藏地址之间发送交易 的截图。

修改地址

类似于其他区块链协议,花费一个地址里面的余额需要将其余额全部发送出去。因此,除非你想把账户中剩余的部分发送给另外一个账户,你必须查分你的账户,以便有第二个你掌控的账户能够接受账户中剩余的部分。然而,一般不推荐这样做,因为让用户为了使用公开地址的转账而建立个人档案是非常琐碎的。我们推荐为了一笔新的转账而建立一个新地址,这样做可以混淆一个用户的所有转账。由于公开的交易可以通过发送和接收建立地址间的联系,然而,这一级别的混淆技术实施起来非常琐碎,同时也不能提供有意义的隐私级别。

谢天谢地,当使用隐藏地址发送 ZEC 时,有关交易的数据被隐藏,也因此将余额发送回发送地址是可以被允许的方式。在 Zcash 中,在隐藏地址之间的所有交易从外界看起来是外圈相同的,因此重复使用隐藏地址并不会像透明交易地址那样容易受到攻击。

在隐藏地址和透明地址之间发送交易

使用 ZEC 在隐藏地址之间和透明地址之间发送交易的区别图表

在隐藏地址和透明地址之间发送 ZEC 的特性

在 Zcash 中, ZEC 用于计算一个地址中持有有效货币的数量。有别于纯公开区块链的是,ZEC 的账户属性取决于这笔资金当前存储在的地址属性和这笔资金在发送之前的地址(地址们)的属性。如果 ZEC 当前被放入透明地址,则它未被花费的数量是可见的。不论这个地址上的这笔资金将被发送至一个或更多的透明地址,亦或是发送至隐藏地址或者这些地址的复合地址,这笔 ZEC 从透明地址的转出都是可见的。一个由透明地址中发送 ZEC 到隐藏地址的好处是,这样做打破了未来可能使用的透明地址和之前透明地址之间的联系。被隐藏地址接收的 ZEC 的行为是非常重要的,因为在当前 Zcash 的早期阶段,很多的钱包 (比如移动端钱包) 并不能支持隐藏地址,这是由于资源需求量高,这个问题在之前博文 用户对于硬件和软件限制的预期 中提到过。

一个来自 Zchain 区块链浏览器的截图,记录了从透明地址发送 ZEC 至隐私地址。

一个来自 Zchain 区块链浏览器的截图,记录了一笔 隐藏 ZEC 交易。

在上面的这笔交易中,交易从透明地址发送至隐藏地址。你可以看出隐藏 ZEC 的发送过程揭露了隐藏地址中的 ZEC 持有量。在这里的隐藏地址,当它发送资金至一个或多个隐藏地址时,交易都是保密的。

作为比较,一个在隐私地址中的 ZEC 账户保留了这个账户地址和余额的隐私。如果将这个地址中的资金发送至一个或多个隐私地址,转账的金额是保密的,但如果接收方是透明地址, 这笔 ZEC 的交易将被区块链记录从而失去隐私性。当 ZEC 去掉遮蔽后,发送方的隐私地址和这笔资金是否是有一个还是多个地址发送过来都依然是保密的。

关于复杂交易和隐私含义的更多注释

请注意,以下的例子并没有介绍所有关于复杂交易的特性,复杂交易是指透明和隐藏地址同时参与交易的发送或接收。这个概述是关于地址和发送 ZEC 账户的特性,用户可以以更好的视角观察交易在任何地址之间是如何进行的。在未来的博文中,会有更多关于隐私地址内部工作机制,关于可连接性和隐私牵连的考虑,关于复杂交易特性的详细介绍。我们正在积极提升隐私地址的属性来提升他们使用的 状态。当交易使用隐私地址时,它需要笔简单的透明地址使用更多的资源,提升后的隐私交易为自由金融提供诸多益处,这也是 Zcash 作为密码学货币的最主要贡献。