美文网首页区块链区块链技术
1-2基本知识-UTXO是什么

1-2基本知识-UTXO是什么

作者: 疯光无线 | 来源:发表于2018-04-15 12:28 被阅读3066次

    UTXO是一个不那么有趣的话题,所以让我们先把重点聊一聊,枯燥的放在文后。

    确定的行为一定导致确定的结果,这是同步的本质。这在程序里面叫做事件与状态。

    状态是无法同步的,因为状态的信息非常巨大,所以计算机同步的任何信息都是事件。

    这句话听不懂其实可以识别出你不是程序员了,但我还是解释一下吧,以防万一。

    比如一百万人的账户数字,是一个状态,我不需要把这一百万人的信息全部发过来。

    我只需要发,现在谁的账户变动了,这就是事件。

    基于同步的实际需要,同步的东西就应该是事件,而UTXO,就是这个事件。一个底层数据结构。

    什么是UTXO

    UTXO 是 Unspent Transaction Output 的缩写,Transaction act发音简写为X。

    UTXO是中本聪最早在比特币中采用的一个具体的技术方案。

    在比特币的设计中,并没有账户概念,那么如何回答如下问题:

    用户A 有多少钱?

    UTXO的答案是,看多少笔交易给了A钱并且A没有花费掉,A就有多少钱。

    以NEO为例,每一笔交易有N个输出,每个输出都包括如下信息

    {

        address,//给谁

        assetid,//什么资产

        value,//多少

    }

    找出所有 交易输出地址为A的并且没有花费的交易,即可回答用户A有多少钱。

    花费与未花费

    花费是什么概念,每一个Transaction Output都犹如现实中的一张纸币,他只有两种状态,属于你或者不属于你。

    未花费就是该张纸币属于你,已花费就是该张纸币不属于你。

    以NEO为例,每一笔交易有N个输入,每个输入都包括如下信息

    {

        txid,//该输入是哪一笔交易的输出

        n,//该输入是上述交易的第几个输出

    }

    txid 和 n 可以对应到相应的交易输出上,只要有txid 和 n 对应到交易输出上。 该交易输出称为已花费交易输出。

    没有txid 和 n 对应到的交易输出,称为未花费交易输出。

    聪明如你一定发现了,是不是如纸币一样只能花一次呢,是的。

    你一定也发现了,现实中经常有找零的问题,UTXO的花费是否也存在找零问题呢,是的

    找零

    每个UTXO 都是一次性的,当用户A给用户B转账时,一定会碰到想转的数额和自己的UTXO数值不匹配的问题。

    此时采用的方法是,用多个输出,有一些输出还给自己,例如:

    输入(from x GAS:10)

    输出[0](to y gas:2)

    输出[1](to x gas:8)

    这个机制称为找零,其实并不只是找零,如果用兜里一把零碎utxo去转账,反而是找回一个整的。

    输入输出都是由客户端自行决定的。 可以在一笔交易中产生大量的输出找给自己。

    相关文章

      本文标题:1-2基本知识-UTXO是什么

      本文链接:https://www.haomeiwen.com/subject/wajdkftx.html