一文读懂什么是UTXO模型
在很多小白的认知中,比特币的交易逻辑和现实世界中的银行账户交易逻辑是一致的。实际上,作为一个去中心化的现金系统,。甚至有这样一种说法广为流传:。
什么是UTXO
UTXO是Unspent Transaction Output的缩写,直译过来就是。要理解这个概念,先要清楚比特币的交易逻辑。
为了方便大家理解,在这里我们不放那些“非人言”的专业解释,直接上例子。
假设张三有1000元,李四有2000元,王五有3000元
三个人之间有生意往来,因此经常会互相转账,以下是三人最近发生的三笔转账:
转账1:王五向张三转账1000元
转账2:李四向张三转账500元
转账3:张三向王五转账800元
现实世界中,我们的转账收款都基于两个基本概念:账户和余额。等第三方系统只需要根据我们发出的转账申请。
以转账1为例,如果是在现实世界中,转账发起时银行或者支付宝等第三方系统会校验王五的账户内是否有至少1000元的余额,如果余额不足,则直接拒绝转账请求,交易失败;如果余额足够,就在王五的账户内减去1000元,并在张三的账户内加上1000元。
其他两笔转账也是同样的流程。经过了3次转账之后,张三的账户余额变成了1700元,李四的账户余额为1500元,王五的账户余额为2800元。
而在UTXO模型下,系统会将张三的1000元、李四的2000元、王五的3000元都视为UTXO。
以转账1为例,当转账发起时,系统会将王五的3000元UTXO作为一笔交易输入,然后将这笔输入一分为二,张三的地址下增加一笔1000元UTXO交易输出,王五的地址下增加一笔2000元UTXO输出。
转账2发生时,李四的2000元UTXO作为输入,张三的地址下增加一笔500元UTXO输出,李四的地址下增加一笔1500元UTXO输出。此时,张三的地址有两笔1000元UTXO和一笔500元UTXO。
转账3发生时,张三的一笔1000元UTXO作为输入,王五的地址下增加一笔800元UTXO输出,张三的地址下增加一笔200元UTXO输出。
三笔转账结束后,三个人地址下的UTXO会变成这样:张三有一笔1000元的UTXO,一笔500元的UTXO和一笔200元的UTXO;李四有一笔1500元的UTXO;王五有一笔2000元的UTXO和一笔800元的UTXO。
如果觉得上面的例子还不够通俗易懂,那我们可以将。
假设一件商品的价格是90元,张三看上了这件商品,现在他手头有100元、50元、20元、20元四张纸币。
现实世界中是没有90元纸币的,张三也不可能将一张100元纸币撕个90%出来进行支付。这个时候张三可以使用一张50元、两张20元进行支付,也可以使用一张100元进行支付,同时收回商家找零的10元。
无论是50元、20元、100元还是10元,我们都可以将其视为UTXO。由于我们没有90元的UTXO,。
与现金系统不同的是,。这个机制其实很好理解,UTXO名称的含义就是未花费的交易输出,。
比如张三使用100元进行支付,那这笔100元的UTXO就变成“已花费”,并形成了90元和10元两笔新的UTXO;若张三使用一张50元和两张20元进行支付,那这三笔UTXO也会变成“已花费”,形成一笔90元的新UTXO。
找零地址
。张三支付100元,90元输出给商家,10元输出给自己,给自己的这部分就相当于是找零。这时候张三需要设置一个找零地址来接收这10元输出,。
可能有的朋友会疑惑,为什么要设置一个新的找零地址呢?像银行体系一样只用同一个账户不行吗?
啊,放错图了。答案是。
俗话说,财不露白,大部分人都不愿意将自己的财富暴露在大庭广众之下。
由于。
一旦用户在某次交易中不小心暴露了自己的真实信息,那么这个地址的真实归属也会暴露。坏人可以直接查看到这个地址中的余额总数,严重者有可能带来直接的人身安全问题。
设想一下如果哪天李老师暴露了一个真的有6位数的比特币地址,会有多少法外狂徒盯上他。
如果你设置一个与发起转账地址不同的找零地址,安全性将得到极大的提升。因为,坏人只能确定发起转账的地址是你的,但不知道你现在还有没有钱,即使知道你有,也没办法确定钱是在哪个地址里,有多少。
Scan QR code with WeChat