2、比特币交易

作者: 谷歌派 | 来源:发表于2018-05-24 15:27 被阅读27次

    资料:

    https://mp.weixin.qq.com/s?__biz=MzIwMzg1ODcwMw==&mid=2247486431&idx=1&sn=b44ac20769bf06e2eae03b7988777c26&chksm=96c9bdbfa1be34a9bb993724ddc27f500e3f5f3fe63d4e4747498b1d730b759e6095cabaed2f&scene=27#wechat_redirect

    https://mp.weixin.qq.com/s/tbU9Pg0vQkA7JdKSgNyPAQ

    UTXO

    • UTXO(Unspent Transaction Outputs)是未花费的交易输出,它是比特币交易生成及验证的一个核心概念。交易构成了一组链式结构,所有合法的比特币交易都可以追溯到前向一个或多个交易的输出,这些链条的源头都是挖矿奖励,末尾则是当前未花费的交易输出。所有的未花费的输出即整个比特币网络的UTXO。
    • 比特币规定每一笔新的交易的输入必须是某笔交易未花费的输出,每一笔输入同时也需要上一笔输出所对应的私钥进行签名,并且每个比特币的节点都会存储当前整个区块链上的UTXO,整个网络上的节点通过UTXO及签名算法来验证新交易的合法性。这样,节点不需要追溯历史就可以验证新交易的合法性。
    • 在比特币的世界里既没有账户,也没有余额,只有分散到区块链里的UTXO。
    • 向UTXO写入(创建UTXO)称为'输出',使用'输出'称为输入(花费) 即 '我给你钱-输出,你花掉该钱-输入'
    • 如果一个UTXO比一笔交易所需量大,它仍会被当作一个整体而消耗掉,但同时会在交易中生成零头。
    • 例:你有20比特币的UTXO并且想支付1比特币,那么你的交易必须消耗掉整个20比特币的UTXO并且产生两个输出:一个是支付了1比特币给接收人,另一个是支付19比特币的找零到你的钱包。这样的话,大部分比特币交易都会产生找零。

    UTXO池/UTXO集

    • UTXO被每一个全节点比特币客户端在一个储存于内存中的数据库所追踪,该数据库也被称为“UTXO集”或者“UTXO池”。新的交 易从UTXO集中消耗(支付)一个或多个输出。

    比特单位

    • 1比特币=100000000(亿)聪

    交易费

    • 交易的数据结构没有交易费的字段。相反地,交易费通过所有输入的总和,以及所有输出的总和之间的差来表示。从所有输入中扣掉所有输出之后的多余的量会被矿工收集走。
    • 交易费被作为输入减输出的余量:
    • 交易费 = 求和(所有输入) - 求和(所有输出)
    • 例:如果你消耗了一个20比特币的UTXO来完成1比特币的付款,你必须包含一笔19比特币的找零回到你的钱包。否则,那剩下的19比特币会被当作交易费,并且会被挖出你的交易到一个区块中的矿工收走。尽管你会受到高优先级的处理,并且让一个矿工喜出望外,但这很可能不是你想要的。

    交易链条

    • 交易形成一个链条,这条链的形式是一笔交易消耗了先前的交易(父交易)的输出,并为随后的交易(子交易)创造了输出。

    孤立交易

    • 当一条交易链被整个网络传送时,他们并不能总是按照相同的顺序到达目的地。有时,子交易在父交易之前到达。在这种情况下,节点会首先收到一个子交易,而不能找到他参考的父交易。节点不会立即抛弃这个子交易,而是放到一个临时池中,并等着接收它的父交易,与此同时广播这个子交易给其他节点。没有父交易的交易池被称作孤立交易池。一旦接收到了父交易,所有与这个父交易创建的UTXO有关的孤块会从池中释放出来,递归地重新验证,然后整条交易链就会被交易池包括进去,并等待着被区块所挖走。交易链可以是任意长度并且可以被任意数量的批次同时传走。在孤立池中保留孤块的机制保证了其他合法的交易不会只是因为父交易被耽误了而被抛弃,并且无论接收顺序,最终整个链会以正确的顺序重新构造出来。

    脚本创建(锁定与解锁)

    • 比特币的交易验证引擎依赖于两类脚本来验证比特币交易:一个锁定脚本和一个解锁脚本。
    • 锁定脚本是一个放在一个输出值上的“障碍”,同时它明确了今后花费这笔输出的条件。由于锁定脚本往往含有一个公钥(即比特币地址),在历史上它曾被称作一个脚本公钥代码。在大多数比特币应用源代码中,脚本公钥代码便是我们所说的锁定脚本。
    • 解锁脚本是一个“解决”或满足被锁定脚本在一个输出上设定的花费条件的脚本,同时它将允许输出被消费。解锁脚本是每一笔比特币交易输出的一部分,而且往往含有一个被用户的比特币钱包(通过用户的私钥)生成的数字签名
    • http://book.8btc.com/books/1/master_bitcoin/_book/5/Fig501.png
    • http://book.8btc.com/books/1/master_bitcoin/_book/5/Fig502.png

    相关文章

      网友评论

        本文标题:2、比特币交易

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