UTXO是什么?
以易于理解的方式解释了比特币交易中的“UTXO”
UTXO
2017年11月1日
让我们看看当你发一点硬币时会发生什么。
比特币交易通过UTXO执行。通过在比特硬币的所有交易中新生成UTXO并消费UTXO来完成转移。由于UTXO是系统端的一种机制,因此用户不会有意识,但通过计算此UTXO来计算地址的平衡。
在本文中,我将尽可能简单地告诉您复杂的UTXO机制。我们还要考虑UTXO的优点和缺点。
比特币的交易概述
比特币交易流程如下。
UTXO进入UTXO池
有效的UTXO成为事务输入
交易输出成为新的UTXO
从这个流程中可以看出,UTXO在比特币交易中起着核心作用。要记住的第一件事是地址平衡不记录在位硬币的区块链中。
通过计算网络中的所有交易来计算地址的余额。例如,如果有100BTC的平衡的地址A,“地址甲余额:100BTC”和,而不是被记录,“以前地址A 10BTC地址B和30BTC汇地址C,地址d由于我们已收到50 BTC,100 - (10 + 30)+ 50 = 110现在地址A的余额为110 BTC!
为什么bitkines做这么麻烦的计算来计算地址的平衡?这种计算方法正是基于UTXO的平衡管理方法,并且有各种优点。(当然也有缺点。)
什么是UTXO
UTXO(未使用的事务输出)是“未使用的事务的输出”,如果已翻译。比特硬币的交易包括输入和输出。换句话说,位硬币的传送对应于输出,并且存款对应于输入。
来自UTXO的来自此交易的输出。事务输出是UTXO,这个UTXO是下一个事务输入。所以UTXO被称为“未使用的事务输出”。
因此,在块链中的每个块中连接事务。
UTXO
以这种方式,交易流程,即硬币交换是作为UTXO交换完成的。关键是每个事务都使用UTXO,生成新的UTXO,依此类推。
此外,实际交易可能有多个输入和输出。这是因为从多个人(地址)接收硬币,相反硬币被发送到多个地址。(以下“交易”缩写为“Tx”)
UTXO
UTXO的特征
输入事务和输出事务是相等的
交易的每个输入和输出的总和是相等的。此外,交易将收取费用,因此更准确地说,“交易输入=由收款人地址收到的交易输出+交易费用的交易输出”。
UTXO不能分割
UTXO无法拆分。500 BTC UTXO不能分为200 BTC UTXO和300 BTC UTXO,因此500日元硬币不能分为200日元和300日元。那么,你如何将资金从地址A的500比特币转移到200比特币到地址B呢?
当像这样发生UTXO的更改时,您创建自己的地址C以接收更改并在地址C接收200 BTC。地址接收Otsuri没有自己的,因为好,如果你是管理层,但那些谁收到地址C新但从匿名的点创建和隐私的地址是首选偶数地址的问题。
如果您没有指定发送更改的地址,您将作为交易费用交给未成年人。
coinbase交易(阻止第一笔交易)
交易由输入和输出组成,我认为通过UTXO交换创建交易的流程是可以想象的。但是输入来自块中的第一个事务?每个块中的第一个事务是一个例外,它被称为coinbase事务。
coinbase事务没有输入,只有输出存在。coinbase是由生成块的未成年人制作的,并且有轻微的奖励输出次要。
UTXO的好处
通过计算所有上述UTXO来计算地址的余额。这称为UTXO基础。另一方面,在块链中记录直接平衡的方法称为帐户基础。顺便说一句,Eliarium和NEM采用帐户基础。
从这里我们将解释UTXO基础与账户基础相比的优点和缺点。
优秀的隐私保护
UTXO
UTXO的一个优点是它具有出色的隐私保护。如上所述,当从您的地址A汇款到另一方的地址B时,更改是首选创建您自己的地址C并将其发送到该新地址C.
因为外部不知道地址A和地址C属于同一用户。换句话说,我们将地址A的钱发送给两个人,地址B和地址C,或者只发送到地址B,所以我们无法判断地址C是否是变更地址。
另一方面,在基于像以太网的帐户的情况下,没有UTXO的概念,因此不需要生成用于改变的新地址。这是因为地址的余额直接记录在块中,只需从该余额中扣除汇款即可。
当然,即使是在账户的基础上,您也可以将更改发送到您的新地址,但汇款费用也会相应增加。
强大抵抗重播攻击
重播攻击(Replay Attack)是指您可以通过重复在交易所存放硬分叉硬币的行为以及撤销它的行为,在硬叉中获得大量分支版本的硬币。
实施例在实施例中,重放攻击的抵抗力较弱存款在交换位硬币,我会被拉出偶数位相同数量的硬币缓存结合位硬币被拉出。这是因为硬叉分支的每个版本的硬币使用地址/密钥/网络的相同结构。
事实上,虽然对位硬币缓存重放攻击已经重放攻击的措施并没有成为一个问题,如果你没有去过重放攻击的措施如果汇款100BTC从“地址A到地址B在比特币是“它也将收到位硬币缓存,我的交易也发生在同一时间,交易的节点”从地址汇款100BCH一到地址B”。
UTXO基地更能抵抗这种重播攻击。因为,因为地址的天平是UTXO计算,如果是经过艰苦的叉UTXO区别,不能计算在相同的平衡。
另一方面,在帐户基础上,您不能记录交易历史记录,因为地址的余额按原样说明。换句话说,很难区分交易的来源,并削弱重播攻击阻力。当实际采用帐户基础的Ethiaryum实际上分叉到Ethicalam Classic时,在没有采取措施的交易所发生了重播攻击。
UTXO的缺点
实施很复杂
从上面的UTXO评论中可以看出,汇款和汇款的计算相当麻烦。在计算地址中某一点的余额时,有必要计算包括所有UTXO在内的余额。
而且,转账时UTXO的计算变得复杂。如果地址有多个UTXO,您必须选择将哪个UTXO应用于UTXO以进行汇款以及要更改哪个UTXO。对于比特币,交易费用由交易规模决定。
为了尽可能减少交易费用,尽量减少交易规模,即尽可能少地使用UTXO进行汇款,并确保变更的UTXO不会变小(下一笔交易费用会更高)有必要优化它)。
另一方面,在汇款时,您可以通过简单地从区块链中记录的余额中扣除汇款金额和佣金来计算。当然,这些计算是由钱包系统方面完成的,因此用户在正常汇款时无需了解。
由于平衡和汇款的UTXO基础的计算成为具有作为像比特币的货币硬币甚至是复杂的,我认为,进一步的计算和具有智能合同的功能复仇可以想象可能很复杂我会的。因此,Eliarium和NEM采用帐户基础。
UTXO是什么?的更多相关文章
- 区块链区块的生成和链接,比特币btc的产生,UTXO的生成和消耗,比特币系统
区块链区块的生成和链接,比特币btc的产生,UTXO的生成和消耗,比特币系统 区块链区块的生成和链接,比特币btc的产生,UTXO的生成和消耗,比特币系统
- Bytom交易说明(UTXO用户自己管理模式)
比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 该部分主 ...
- 比原链设计思考: 扩展性UTXO模型
用户模型是比原链在最初就需要确定的重要数据结构, 团队的选择还是聚焦在两种典型的模型系统中,Account模型和UTXO模型,和其他大多数区块链设计一样, 选择了模型就决定了协议层的重要实现,两种模型 ...
- 比特币交易本质--UTXO(Unspent Transaction Output)
UTXO 代表 Unspent Transaction Output. Transaction 被简称为 TX,所以上面这个短语缩写为 UTXO. 现在的银行也好.信用卡也好.证券交易系统也好,互联网 ...
- 比特币原理——交易与UTXO
UTXO UTXO (Unspent Transaction Output) 未花费交易输出 传统的支付系统都是基于账户(account based)的,即: 若A向B转账20元 判断A的账户余额大于 ...
- UTXO和Account模型一个都不能少
UTXO对于非区块链从业人员来说可能比较陌生,UTXO的全称是Unspent Transaction Output,这中本聪在比特币中的一个天才设计.而Account模型就很常见,也很容易理解,你银行 ...
- 04.UTXO:未使用的交易输出,比特币核心概念之一
在比特币系统上其实并不存在“账户”,而只有“地址”.只要你愿意,你就可以在比特币区块链上开设无限多个钱包地址,你拥有的比特币数量是你所有的钱包地址中比特币的总和.比特币系统并不会帮你把这些地址汇总起来 ...
- [转帖]比特币本质其实是UTXO
比特币本质其实是UTXO https://www.jianshu.com/p/7071e68c5262 其实并没有什么比特币,我们在交易所里或者钱包里显示的比特币余额其实是UTXO.那到底什么是UTX ...
- 比特币系列钱包的UTXO总结
1.通过比特币钱包的WalletNotify配置来处理 本钱包内的交易信息的 推送.BlockNotify数据更多,不适合交易所的监听
随机推荐
- php简单开启gzip压缩方法(zlib.output_compression)
网上的教程基本是你抄我来我抄他,不外乎加头加尾或者自构函数两种写法.实际上每个php页面都要去加代码——当然也可以include引用,不过总显得略微麻烦 一般而言,页面文件开启gzip压缩以后,其 ...
- 基于建模的视觉定位(SFM-Based Positioning)
具体方法来自我参与的这篇journal: Vision-Based Positioning for Internet-of-Vehicles, IEEE Transactions on Intelli ...
- 曲率(Curvature)
原文链接 几何体的曲率对于不同的对象有不同的定义.首先来看最简单的平面曲线. 首先把曲线分成无穷小的小段,每一段看作某个圆的一小段圆弧.这个圆叫做“密切圆”(Osculating Circle).由于 ...
- 高亮代码 SyntaxHighlighter
SyntaxHighlighter: http://alexgorbatchev.com/SyntaxHighlighter/download/ demo <!DOCTYPE html PUBL ...
- node-inspector调试工具使用方法
开发node.js程序使用的是javascript语言,其中最麻烦的还是调试,这里介绍一下node-inspector使用方法.具体资料可以看参考资料中的GITHUB文档. 工具/原料 node. ...
- C#如何使用异步编程【BeginInvoke/EndInvoke】
怎么使用异步,就是用委托进行处理,如果委托对象在调用列表中只有一个方法,它就可以异步执行这个方法.委托类有两个方法,叫做BeginInvoke和EndInvoke,它们是用来异步执行使用. 异步有三种 ...
- mysql指定id默认第一
有个需求 家庭创建人要默认排第一,刚开始用加入家庭的时间排序可以 好简单, 后来加了一个需求 家庭创建人可以转移,结果按时间排序就不行了,又不想去写循环重新排序 就各种百度, 等于就是指定ID排最后 ...
- OA上传和编辑数据
1.VO:value object值对象.通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已.但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要. 2. String[]类型打 ...
- IDEA工具配置weblogic
1.首先打开IDEA,点击Run-Edit Configurations… 2.配置weblogic页面 2.1点击“+”号,选WeblogicServer-local 2.2红框的是新添加的服务,起 ...
- ajax 传递文件成功时 jQuery提示parsererror错误
后台返回值类型 改为:PrintWriter out = response.getWriter();String jsonStr = "{\"success\":\&qu ...