IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> 比特币UTXO模型和找零机制分享 -> 正文阅读

[区块链]比特币UTXO模型和找零机制分享

几种情形,几张大图,给大家描述比特币UTXO的存储模型

理想状态下,一个UTXO大致长这样

你可以暂时理解UTXO为一条记在账本上的一条完整的入账出账记录,这条记录记录了你某个时间段的资金流动,具体为:A转个你10个BTC,B转给你20个BTC,然后你转给C15个BTC,自己剩下5个BTC。这一整个记录,就叫做UTXO。记住,只有在你还有剩余BTC的前提下,才叫UTXO

比特币的交易跟以太坊的账户模式差别很大,比特币的每一笔交易,可以认为是给你一张整钱不管是转了多少个BTC给你,都是一张整钱。比如:A转给你10.102034BTC,就相当于给了你一张面额10.102034的BTC,一张不多不少刚好10.102034的BTC,转给你3.5BTC,就相当于给了一张面额3.5的BTC(这也就形成了比特币找零的一种特性)。

看这个例子:

?

这个交易表示:A给B转了0.001个BTC。

交易流程:

(1)A本身有0.00313395个BTC

(2)A给B转了0.00313395个BTC

(3)B给A退了0.00211985个BTC

(4)同时转账收了0.00101410 个BTC

这就很奇怪了,明明是0.00313395个BTC,为什么不直接转0.001个BTC,非得这么来回操作?

这就是我们刚才提到的面额问题,BTC的每一次转账都是转整额,这笔转账的来回操作,说明A账户中的0.00313395个BTC,是之前的交易中,其他地址给A转了一笔刚好为0.00313395BTC的账,这个0.00313395,是一个整额,拆不开的整额BTC。往前追溯我们可以看出

是一个bc1q958开头的地址给A转了一笔刚好0.00313395BTC的账。

?

OK,此时,因为B给A退了0.00211985个BTC,所以此时A的账户是一张0.00211985整额的BTC,试想此时如果A给C转了0.001个BTC会发生什么,看交易记录:

?没错,A先给C转了所有的0.00211985个BTC,然后C给A退了0.00010575个BTC,整个交易手续费为0.00201410BTC

以上是UTXO的第一个特性:找零机制。

继续往前查找交易:

?原来是某个时间,qqq地址往q95地址转了三笔BTC。为什么同一个地址转了三笔?因为qqq地址的btc也是从其他的三个地址或者叫三个UTXO转进来的整额BTC。

那么问题来了,为什么明明是三笔整额BTC,最后却成为了一个0.00313395整额的BTC呢?

这是UTXO的第二个特性:UTXO合并

前面我们提到,只有有余额剩余的地址的交易记录,才叫UTXO。当一个UTXO余额花完时,该UTXO会被删除,删除的部分跟使得该UTXO被删除的UTXO合并。也就是说,qqq地址转了三笔钱后,一毛钱都没有了,这个UTXO记录就被删除了,而q95地址的UTXO就可以把这些零钱合并为一个整钱。

看到这里,我们可以想象出,其实本质上行的UTXO是这样的:

?

每个地址都有N个交易(UTXO),每个UTXO都会有不同的输入(转入BTC)和输入(转出BTC),当一个UTXO的余额花完时,该UTXO被删除。所以一个地址有多个UTXO,即多条交易记录。

跟eth不一样,以太坊一般只支持单对单的转账和支付,在btc的设计中,每个“用户”可以有N个地址的使用权,找零的钱以及UTXO的钱都可以存放在各个地址,汇款的时候可以一对多款,多对一付款,多对多付款,付款的对象的是一个“用户”(可以理解为一个人),用户下可以拥有多个地址(可以理解为各个行的银行卡)。

以上是关于UTXO和找零机制的一些分享

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2022-01-08 14:03:06  更:2022-01-08 14:03:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 10:05:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计