LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > 如何增强BTC转账的安全性和隐私性;一文弄懂比特币的找零机制

如何增强BTC转账的安全性和隐私性;一文弄懂比特币的找零机制

2020-05-08 阿华区块链 来源:区块链网络

一、UTXO 模型和账户模型

为了更好的理解比特币的找零地址,我们需要先理解什么是比特币的 UTXO 模型。关于 UTXO 模型,在昨天的文章中已经详细写了,下面再一起简单回顾下。

比特币的 UTXO 模型是区别于与传统银行转账的账户/余额模型的,也区别于 ETH/EOS 的账户余额模型。我们以银行卡为例,看看账号/余额模型是如何转账的。

假设小明要给小军转账90元,如果是使用银行卡转账,那么银行的数据库只需要在小明账户余额里-90元,在小军的账户余额里+90元就可以了,这就是传统银行的账户/余额模型。

但是,在比特币的转账中,并不是使用的账户/余额模型,它是采用的 UTXO 模型,如何理解 UTXO?我们还以上面的例子来说明。

比特币的 UTXO 模型类似于我们使用现金,其实,比特币就是被称为一种点对点的电子现金系统,众所周知,在现金中并没有90元的面额,所以小明只能给小军一张100元面额的现金。然后,小军再找回10元现金给小明。

上面例子用 UTXO 解释就是:小明只有100元的UTXO,UTXO不能往下再细分,所以小明转账给小军 100元的 UTXO,然后小军再找回 10元的 UTXO 给小明,最后就形成了两个新的UTXO,即小明的10 元 UXTO和小军的90元 UTXO。在这笔交易中:

交易输入:小明的 100元 UTXO

交易输出:90元 -> 小军;10元 -> 小明,这两笔输出产生了两个新的 UTXO,之前100元的 UTXO失效,即已花出。

在比特币钱包中,存储的只是一个个的 UTXO,我们所说的某个比特币地址中BTC数量就是这个地址锁定的所有 UTXO 的合集,我们拿现金钱包来类比就容易理解了,我们的现金钱包中存储的是面额为100元、10元、1元等的现金。同样的,比特币钱包中存储的是许多个 UTXO,所不同的是,UTXO 可以是聪的任意倍数,例如1BTC 是一个 UTXO,0.001BTC 也可以是 UTXO等。

那么,UTXO 是如何产生的呢?它是由交易产生的,例如:

A 向 Y 转账 1BTC;

B 向 Y 转账 2BTC;

C 向 Y 转账 5BTC;

D 向 Y 转账 1BTC。

那么在 Y 的比特币钱包中就会有四笔 UTXO:

UTXO:1BTC;

UTXO:2BTC;

UTXO:5BTC;

UTXO:1BTC。

Y 的比特币钱包中所有 UTXO 包含的 BTC 数量加起来就是 Y 所拥有 BTC 数量。

二、什么是找零地址

1、BTC 转账过程

我们以一个 BTC 转账例子简要说明下 BTC 的转账过程。

在上图中,小明给小军转账 1.5BTC。

在小明的 BTC 钱包中,有三个 UTXO,由于需要给小军转 1.5BTC,可见使用第二个 UTXO 即就可以完成支付,第二个 UTXO(2BTC)做为一个整体支付出去,小明在给小军支付了 1.5BTC 后,由于有剩余,所以小明会收到一个找零,这个找零需要扣掉矿工费,如果矿工费用为0.00001BTC,那么小明给小军支付了 1.5BTC后,他自己会收到 0.4999BTC 的找零(2-1.5-0.00001 = 0.49999)。

在该笔交易完成后,小明地址中 2BTC 的UTXO被使用过,就不存在了,生成了两个新的UTXO,小军的地址中就新增了一个UTXO,数量为1.5个比特币,小明地址中新增一个UTXO,数量为0.4999BTC(找零)。

2、什么是找零地址

顾名思义,找零地址就是 BTC 在完成转账后,剩下的钱要接收的地址,例如在上例中小军钱包中存储 0.4999BTC 的地址就是找零地址。

每一笔比特币交易在比特币的公共账簿上都是可见的,这就意味着任何人都可以随时在上面进行跟踪查询。通过将某个比特币地址与其使用者相关联,可以绘制此人与他人之间资金转移的关系图。

比特币为了安全性和匿名性,可以在每次使用一个地址转账过后, 将找零转向新的地址。也就是将找回的零钱发送至一个新创建的地址(找零地址),这样的设置可以让追踪变得更加困难。

关于这一点,中本聪在《比特币: 一种点对点的电子现金系统》里边,在谈及隐私 (Privacy) 特性时有提到:"作为额外的预防措施,使用者可以让每次交易都生成一个新的地址,以确保这些交易不被追溯到一个共同的所有者"。

例如,A 使用 5BTC 的 UTXO 向 B 支付了 4BTC,然后收到了 1BTC 的 UTXO 找零。在本次转账中,有两个 output:

4BTC -> B;

1BTC -> A。

如果 A 在转账时找零地址是一个新创建的地址,即和 A 转出的原始地址不同,那么就不易判断哪个是找零地址,哪个是真正的接收地址,从而提升了转账的安全性和隐私性。

当然了,找零地址也可以设置为和转出的地址一样,为了安全,建议找零地址使用新的地址。

三、如何开启找零地址(找零使用新地址)

许多 BTC 钱包都支持在转账时使用新的找零地址接收零钱,下面我们以 TokenPocket 为例,简要说明如何开启这样的隐私转账功能。

首先在 TokenPocket 钱包管理中选择相应的 BTC 钱包,在钱包详情界面中点击高级模式,点击地址隐私策略中的单地址(默认为单地址),然后在地址隐私策略界面中选择多地址。

选择了多地址后,以后在执行 BTC 转账时,每一笔转账的找零,就会自动会转账到一个新的找零地址中。

下图即为在选择多地址后所产生的一笔 BTC 转账。

可见,在转账后,地址管理界面中多了一个新的地址,这个地址即是系统自动产生的一个新的找零地址。

—-

编译者/作者:阿华区块链

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

LOADING...
LOADING...