在 TokenPocket 最近上线的版本中,对 BTC 钱包的底层支持中,加入了支持自定义UTXO(未花费的交易输出)的功能。即可以在发送交易时自主选择具体哪些UTXO,使用更加经济的UTXO组合或者指定花费特定 UTXO 来进行交易。 大多 BTC 钱包在转账时都是不支持自定义 UTXO 功能的,而在 TokenPocket 的 BTC 钱包中,不但支持更低的矿工费设置,而且还支持自定义 UTXO 的功能。 那么什么是 UTXO 呢? 一、什么是 UTXO UTXO 是 Unspent Transaction Output 的简称,即未花费的交易输出。UTXO 是不能再分割、被所有者锁住的或记录于区块链中的并被整个网络识别成货币单位的一定量的比特币。 UTXO 是比特币交易的基本单位,每一笔交易都会产生新的 UTXO,一个 UTXO 是多少个比特币呢? 按照比特币白皮书的规则,一个 UTXO 可以是一聪的任意倍(注:聪是比特币的最小单位,1BTC=1亿聪)。即 1BTC 可以是一个UTXO,100BTC 也可以是一个 UTXO,0.001 BTC 同样也可以是一个 UTXO。 例如,在我们人民币的纸币面额中,有 100元、50元、20元、10元、1元等,这就相当于比特币中的 UTXO,但很明显比特币中 UTXO 的面额范围却要广泛的多,UTXO 可以是一聪的任意倍。 在进行比特币的转账交易时,给某人转账比特币实际上是在创造新的 UTXO,例如小明向小飞支付 5BTC 的这笔交易,实际上就产生了一个新的 UTXO,这笔新的 UTXO 包含了 5 个 BTC (即5 亿聪),并且锁定到了小飞的比特币钱包地址上,能被小飞用于新的支付。 然后,小红向小飞支付了 1BTC,也会产生一个新的 UTXO,该 UTXO 中有 1BTC,小军向小飞支付了 2BTC,同样的会产生一个包含了 2BTC 的新的 UTXO。 现在,小飞的比特币地址中有 3个 UTXO了,3个 UTXO 中的 BTC 金额加起来就是8 BTC,这些 UTXO 可以用于小飞之后的比特币转账交易。 二、UTXO 模型和账户模型 众所周知,比特币采用的是 UTXO 模型,而 ETH 和 EOS 都是采用的是账户模型,我们的银行卡也是基于账户模型的。假如一个EOS 账户中有 100EOS,就代表该 EOS 账户中有 100EOS 余额的数字资产。 而在比特币的交易系统中,并没有账户、余额的概念,它采用的是 UTXO 模型。 例如在上面的例子中,这 8BTC 并不是小飞的余额,并不是说小飞的钱包余额有8BTC,这 8个 BTC 其实是由小飞的比特币地址(钱包地址 | 公钥)锁定了的散落在各个区块和各个交易里面的 UTXO 的总和,即小飞的比特币地址中拥有的是这三笔 UTXO(5BTC、1BTC、2BTC),这三笔 UTXO 包含的比特币数量加起来是 8BTC。 账户模型和 UTXO 模型理解起来可能有些困难,下面我们举个例子辅助理解。 例如,我有186元,存在银行的话,我的银行卡上面就有186元的余额,它是一个整体,收入或支出都是在这个账户余额上加加减减; 如果这186元我全部是都是现金,那么它可能的形式就是:1张100元、1张50元、1张20元、1张10元、1张5元和1张1元,即 100+50+20+10+5+1 = 186,这100元、50元、20元、10元、5元或1元,都是单独的 UTXO,而且不能分割,它们都是交易的基本单位。 三、比特币交易转账过程 当我们明白了比特币的 UTXO 模型后,BTC 转账过程就容易理解了。 一般的比特币交易都是由交易输入和交易输出两部分组成的。 假如你要给别人转 BTC,那么你的比特币钱包会从可用的 UTXO 中选取一个或多个可用的个体来拼凑出一个大于或等于一笔交易所需的比特币量(当然了一般都是要稍大于,因为牵涉到矿工费用)。 我们还拿前面的例子进行说明,为了便于理解我省去了矿工费用。 现在,小飞要向小丽转账 4BTC,在小飞比特币地址中有三个 UTXO,由于要转账 4BTC,1BTC 和 2BTC 的 UTXO 都小于4BTC,所以不能做为这次转账的交易转入,而 5BTC 这笔 UTXO 由于大于4BTC,因此可以做为本次转账的交易输入。 在本次转账中,5BTC这个 UTXO 是做为一个整体支付出去的,就像我们拿一张10元钱的人民币买了8块钱的商品后,这10块钱是做为整体支付出去的,但是会有2块钱的找零。同样的,在小飞向小丽转账 4BTC 的过程中也会产生一个找零。由于小飞使用了 5BTC 的 UTXO 向小丽支付了 4BTC,所以也就产生了一个 1BTC 的找零(实际上会小于1BTC,因为要扣掉矿工费)。 在小例中,5BTC 的 UTXO 是交易输入,而交易输出则有两个:小飞向小丽转账 4BTC,这4BTC锁定到了小丽的比特币钱包上,同时小飞向自己转账1BTC(找零)。即: 交易输入:5BTC 交易输出:4BTC -> 小丽;1BTC -> 给小飞自己(实际上会小于1BTC,因为要扣掉矿工费用)。 通过上面的例子,你理解了比特币交易网络的转账过程了吗?其实它和我们生活中拿纸币去购物的过程差不多。 例如,小明的妈妈想去买一瓶酱油,价格是 6 元钱,她给了10元钱的纸币让小明去商店购买,到商店后小明将 10 元纸币给到了售货员,花费了6 元换取了一瓶酱油,售货员找回 4 元钱。 在这个例子中,10 元就是小明妈妈的 UTXO,它是不可分割的,做为一个整体支付给商店的,然后产生一个4元的找零。即把10元支付出去后,产生了两个交易输出,一个是6元给商店,另一个是4元给自己(找零)。 正常情况下,交易输入不会完全等于交易输出,会稍大一些,而多出来就是支付给矿工的交易手续费。 四、比特币转账如何更省钱 由于在 TokenPocket 的比特币钱包中是支持自定义 UTXO 的,所以,我们在使用 TP 的比特币钱包进行转账时,是可以自主选择使用哪个 UTXO 或哪些 UTXO 组合来进行支付的。 首先,在 TP的比特币钱包转账界面点击 UTXO,然后就可以自主选择相应的 UTXO 或组合进行支付了。 另外,在 TP钱包中转账 BTC 时,可以在高级设置中调低矿工费,从而节省转账费用。 总之,在 TP 的比特币钱包中,用户自定义UTXO功能结合矿工费设置,这样转账更经济,日常交易亦或最后一笔交易,都不浪费任何一聪比特币。 —- 编译者/作者:阿华区块链 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
在进行 BTC 转账时如何更省钱;一文读懂比特币的 UTXO 模型
2020-05-05 阿华区块链 来源:区块链网络
LOADING...
相关阅读:
- 100万美元的比特币欺诈事件被捕2020-10-31
- 226篇:1.4万刀以前的暴跌都是障眼法?主流币起飞还需要一些火候!2020-10-31
- 西站挖矿实盘;葡萄EOS/KEY挖矿收益超1000%可持续吗?几大平台收益对比2020-10-31
- 现在可以在Venmo上购买比特币2020-10-31
- 比特币(BTC)和以太坊(ETH)地址中的通用记录2020-10-31