深入比特币原理(三)——交易的输入(input)与输出(output)

易懂案例:用班费记账来理解区块链已花费输出、未花费输出、交易输入输出的数据结构、完整交易的数据结构、拆分UTXO、组合UTXO的原理、区别和联系是什么? 区块链交易结构中的UTXO模型可以通过班级班费管理来形象理解。UTXO(未花费交易输出)相当于可支配的班费零钱,已花费输出则标记为已使用。交易由输入和输出组成,输入引用UTXO作为资金来源,输出生成新的UTXO,形成链式结构。交易过程支持UTXO的拆分(找零)和组合(凑整),确保金额匹配。这种设计通过标记资金状态防止双花,实现去中心化的安全交易管理,具有可追溯、不可篡改的特点,是区块链区别于传统银行余额模型的核心机制。 阅读详情

本节内容非常重要,如果你不能很好的掌握本节内容,你无法真正理解比特币的运行原理,请务必要学习清楚。

比特币的交易模型为UTXO(unspend transaction output),即只记录未花费的比特币输出,每次交易花费的是之前的某一个或多个输出。

什么是UTXO?

以下借用一下网上的图

我们在现实世界中的支付系统是基于账户模型的,也就是说每一个人都有一个账户,支付就是在不同的账户中加加减减,类似如下:

UTXO的实现,图示如下:

从上面的图中可以看出,比特币存储的实际是一笔又一笔的交易,最后永远只有未花费过的交易输出,也就是UTXO。

这种设计是由中本聪原创,相对于传统的账户模型,具有以下好处:

1.账户数据库会不断膨胀,因为账户不会被删除,而UTXO数据库体积会小很多。

2.由于只有未花费的输出会被保留,所以每一个比特币用户可以拥有几乎无限多的地址,提高了匿名性。

3.UTXO为高并发的交易带来可能,试想传统的账户模型,每个人的账户交易必须是线性的,无法并发。而现在每个人可能拥有多个UTXO,可同时发起多笔交易,实现了并发。

另外有一种特殊的交易,称为Coinbase交易,即矿工挖出的比特币,该交易没有输入,只有输出(Coinbase交易我们将在挖矿章节讨论),本节内容均以非coinbase交易举例。

比特币交易解码后的内容

从解码的内容可以看到,比特币的交易是由输入与输出组成的,而不是账户地址。

{    
      "version": 1,    
      "locktime": 0,    
      #交易输入(input)部分
      "vin": [           
        {    
          #输入引用的交易(transaction)HASH
          "txid": "7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18",       
          
          #引用交易中的UTXO索引(第一个为0,此处代表上述txid交易中的第一个UTXO)
          "vout": 0,                                    
          
          #解锁脚本,用于解锁UTXO的脚本(这是可以花费这笔UTXO的关键信息)
          "scriptSig": "3045022100884d142d86652a3f47ba4746ec719bbfbd040a570b1deccbb6498c75c4ae24cb02204b9f039ff08df09cbe9f6addac960298cad530a863ea8f53982c09db8f6e3813
          [ALL] 0484ecc0d46f1918b30928fa0e4ed99f16a0fb4fde0735e7ade8416ab9fe423cc5412336376789d172787ec3457eee41c04f4938de5cc17b4a10fa336a8d752adf",          
          "sequence": 4294967295            
        }    
      ],    
      #交易输出(output)部分 
      "vout": [         
        {    
          #第一个输出的比特币数量
          "value": 0.01500000,             
          #锁定脚本,后续的交易如要使用该输出,必须解锁锁定脚本
          "scriptPubKey": "OP_DUP OP_HASH160 ab68025513c3dbd2f7b92a94e0581f5d50f654e7 OP_EQUALVERIFY OP_CHECKSIG"          
        },    
        {    
          #第二个输出的比特币数量
          "value": 0.08450000,             
          "scriptPubKey": "OP_DUP OP_HASH160 7f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a8 OP_EQUALVERIFY OP_CHECKSIG",    
        }    
      ]    
    }

可以从以上内容看出,比特币的交易中实际没有账户余额信息,只有输入(input)与输出(output)两部分信息。

说的更直白一点,比特币的交易类似于现实世界中直接用支票进行交易。如A写给B一张100元的支票,其中A是输入,B是输出。当B需要给C付50元时,B不是去银行兑现支票然后付款给C,而是直接写两张新支票,一张50元给C,一张50元给自己,再将原来100元的支票作废,即完成一次非基于账户模型的支付。

最后附上交易输入输出的内容格式:

输入

输出

交易费

比特币每次交易需要支付交易费给矿工,比特币早期交易费基本为0,但随着交易增多,交易费逐步开始升高。交易费是除产生新比特币外对矿工的另一种激励,在全部比特币被挖出后,矿工的收入将全部来自于交易费。交易费的特点如下:
1.交易费是一种激励,同时也是一种安全机制,使经济上不利于攻击者通过大量交易来淹没网络。
2.交易费是通过字节大小来计算,而不是花费比特币的多少。
3.目前交易均使用动态交易费,交易费的高低会影响交易被矿工处理(加入区块链)的优先级,交易费过低或为0的交易极少会被处理,甚至不会在网络上广播。
4.交易费不会存储在交易信息中,而是通过输出(output)与输入(input)的差值来替代(如果你要自己创建交易必须千万注意输出的金额大小,因为交易的差值无论大小全部会被矿工获得)
   交易费 = SUM(所有输入) - SUM(所有输出)
5.预估当前合适的交易费
访问第三方网站:https://bitcoinfees.earn.com

通过该网站页面可预估当前合适的交易费用,如图中所示当前(2018/2/27)快速确认的手续费为50 satoshis/byte(一般交易大小为226 bytes)
可通过调用该网站提供的HTTP REST API计算不同优先级下的交易费
$ curl https://bitcoinfees.21.co/api/v1/fees/recommended
{"fastestFee":50,"halfHourFee":40,"hourFee":20}
fastestFee:最快确认
halfHourFee:三个块内确认
hourFee:六个块内确认

作者:Aaron

UTXO - 概念理解 目录 utxo 模型是什么东西 什么是UTXO 用户A 有多少钱? 花费与未花费 找零 utxo 模型是什么东西 NEO 官方解释 UTXO (未花费的交易输出 Unspent Transaction Output )Transaction act发音简写为X。 合约:例如XX给XX,XXGAS,是一个基本的模型 交易:将具体信息填入合约形成交易,例如A给B,10GAS 输... 阅读详情

相关推荐

UTXO模型

UTXO模型 UTXO模型(未花费的交易输出),一笔input对应output,每笔交易都会生成一个哈希值和索引,通过索引记录和哈希值来记录,我们来看详细内容 1 UTXO基本模块 Transaction 每笔交易都有三个属性,TxHash、Inputs和Outputs,交易哈希充当该笔交易的索引,具有唯一性;同时,每笔交易可能包含多个Input和Output。一笔交易的完成事实上是一次对一定数量的Input和Output的封装,并且给它们打上唯一的印记(交易哈希)。再引申而言,每个区块是对一定数量的交易的

weixin_51487151的博客 1826

什么是UTXO

UTXO(Unspent Transaction Output),即未花费的交易输出,是比特币交易中的基本单位。在比特币网络中,每个UTXO都代表了一定数量的比特币,它们可以被看作是比特币的“零钱”,可以用来支付交易的输入。一旦某个UTXO被用作交易的输入,它就会被消耗掉,这意味着这个UTXO中的所有比特币都被转移到了交易的输出中。因此,UTXO可以被视为比特币账户中的“余额”。UTXO的大小取决于交易中输出的数量和大小。

tyxjolin的专栏 3955

从生成比特币靓号地址实践理解区块链密码学与私钥安全

非对称加密是现代信息安全与区块链技术的基石,它通过公钥和私钥的数学关系实现身份验证与数据加密。其核心原理基于单向函数,私钥可推导出公钥,反之则计算不可行,这构成了数字签名的安全基础。在区块链领域,这一技术创造了去中心化的身份与资产控制体系,用户通过私钥即可掌控链上资产,无需依赖第三方机构。比特币地址的生成正是这一原理的典型应用:公钥经过SHA256和RIPEMD-160等哈希函数处理,再通过Base58Check编码,最终形成人类可读的字符串。vanitygen这类工具通过暴力碰撞方式生成自定义前缀的靓号地

weixin_30740581的博客 402

什么是UTXO?

经常看到区块链技术中提及UTXO,究竟什么是UTXO呢? 搜索了半天,讲的都不太好理解,尤其是不明白UTXO比现在的记账方式有哪些优势。 集百家之长,成一家之言。我来通俗地讲一讲吧。争取看了这篇讲解,就不用像我一样,搜这个问题搜了十几个网页。 比较统一的解释: UTXO(Unspent Transaction Outputs)是未花费的交易输出,它是比特币交易生成及验证的一个核心概念。交易构成了一组链式结构,所有合法的比特币交易都可以追溯到前向一个或多个交易的输出,这些链条的源头都是..

XYlittlework的博客 8780

18、比特币架构解析:交易、脚本与区块链

本文深入解析了比特币的架构,涵盖交易结构、脚本语言、合约机制与区块链原理。详细介绍了交易的输入输出结构、Script脚本执行流程及常见标准交易类型如P2PKH、P2SH和多重签名,并探讨了比特币在安全漏洞、合约应用及未来发展方面的趋势,包括隐私增强、扩展性方案(如闪电网络)和跨链融合,展现了比特币作为去中心化金融基础设施的技术深度与演进方向。

7up55的博客 122

ESP32-S3双屏AI吊坠:微型边缘智能终端设计实践

边缘智能终端是指在设备端完成数据感知、处理与响应的嵌入式系统,其核心在于低延迟、高隐私与弱网适应性。基于ESP32-S3等轻量级主控,通过语音唤醒、本地AI推理与双屏异步渲染等关键技术,可构建资源受限场景下的实用化人机交互节点。这类设计显著降低对云端依赖,提升实时性与数据安全性,广泛应用于智能穿戴、IoT交互面板及便携式语音设备。本文以‘璀璨·AI吊坠’为实例,深入解析双面圆形屏驱动、ES8311音频链路优化、VAD+Porcupine本地语音流水线,以及亚微安级低功耗状态机实现,为微型AI终端的软硬协同开

weixin_42348783的博客 633

RVC变声模型训练指南:10分钟音频就能开训

RVC(Retrieval-based-Voice-Conversion-WebUI)是一个开源的语音音色转换框架,10 分钟低噪人声就能训出一个属于自己的 AI 音色。原理像配音:推理时从训练集检索最相似的音色特征去替换输入,只改"嘴型"、音色借训练集的,原说话人的音色就不会漏进输出。 ## 先过三关:硬件、环境与素材的门槛 这节回答"我该不该现在动手"。仓库代码和 FAQ 里写死的门槛如下

gitblog_00398的博客 386

GPT Researcher 的win docker安装攻略

github网址是:https://github.com/assafelovic/gpt-researcher/blob/master/README-zh_CN.md。使用 Docker 运行 AI-Researcher 项目的。因为docker安装方法不够清晰,因此写一个使用方法。打开设置——docker engine ,增加代码。如有其他问题,可提供错误截图或日志进一步排查!

weixin_43818488的博客 1123

Parity Bitcoin内存池管理:深入分析交易池实现原理与优化策略

Parity Bitcoin内存池是比特币客户端中至关重要的组件,负责管理未确认的交易。作为Parity Technologies开发的比特币客户端,Parity Bitcoin的内存池实现展现了高效的内存管理和交易处理能力。本文将深入探讨其内存池架构、交易排序策略、依赖关系处理等核心机制,帮助您全面理解这个关键组件的实现原理。 ## 🚀 内存池的核心架构与数据结构 Parity Bitco

gitblog_00475的博客 729

我是如何让爬虫在小红书风控下“偷数据”的?xhs爬虫这些骚操作你可能想不到

最绝的是,他们连评论区都做了动态加载,第一页显示20条评论,再往下滑就变成“加载失败”,实际上得模拟真人反复上滑下滑才能触发完整加载。上个月我们团队帮一家美妆品牌抓竞品爆款笔记,刚开了10个爬虫账号,结果5分钟不到,系统直接弹窗警告“检测到非正常操作”——后来发现,问题出在Wi-Fi上。小红书的风控每周都在升级,上周还能用的方案,这周可能就得重写。但要是想大规模采集,比如监控竞品爆文、分析用户画像,劝你先算笔账:光是一个能抗封的账号矩阵,每月成本就得烧掉几万块,更别说还得养团队随时应对系统升级。

klj3388的博客 1万+

【计算机三级-数据库技术】操作题大题(第1套)

从触发器的语法中可知,【1】处应该填写的是执行触发器的表,【2】处应该填写指定在表或视图上执行哪些数据修改语句时将激活触发器的关键字。使用FOR或AFTER选顶定义的触发器为后触发器,即只有在引发触发器执行的语句中的操作都已成功执行,并且所有的约束检查也成功完成后,才执行触发器。转换成新的独立的模式,模式的属性由联系本身的属性及两个实体的键构成,主键由两端实体的键组合而成。实体的转换:在从ER图转换为关系模式时,一个实体转换成一个关系模式,实体的属性就是关系模式的属性,实体的键就是关系的主键。

放纵小开爱的博客 1101

btcd源码解析 —— 签名机制(1) —— 基础知识

文章目录1. 写在前面2. 签名流程简述2.1. 签名的数目2.2. 签名的对象3. 签名类型介绍3.1. 基本类型3.2. 组合类型3.3. 源码&字节码分析3.3.1. 定义3.3.2. 举例 1. 写在前面 在前面的比特币源码分析中,我们有意忽略了签名机制部分的介绍。 但比特币的签名机制远非我们想象的那么简单,正如这篇博客Bitcoin contracts所言: Bitcoin a...

seafooler的专栏 1466

26. Fabric2.2 司法存证的智能合约分析

有很多同学反馈 Fabric 智能合约读起来比较费劲,对于新手不友好看不懂,这里选择一个司法存证的智能合约,阅读、分析智能合约基础框架与核心流程代码,培养大家智能合约编写的方法论。

菜鸟的博客 1339

闪电网络——区块链领域基于 Golang 的核心技术之一

在 2019年第五届 Gopher China 大会上,讲师方圆进行了主题为《闪电网络——BTC小额支付解决方案》的演讲,以下为演讲实录。00前言今天我分享的主要内容包括...

Go中国 753

将Keil中的变量数组导出

首先,写好导出数据的函数。

小柚子的博客 1951

基于YOLO的印章检测及文字识别

针对印章自动化检测与文字识别需求,提出了一种融合改进YOLO模型与OCR技术的端到端解决方案,旨在解决复杂背景干扰、印章残缺变形及环形文字排列等难题

商务合作 / 项目定制 / 学习交流。个人vx:lovely_wml 8219

v-for循环input方法无法编辑_体验BSV脚本编辑器BSV Editor

近日,我们从BSV/DEVS的推特上得知,有个开发者发布了一款BSV的脚本编辑器,可以提供带有GUI的编辑器环境,让用户使用高级语言,来编写复杂的比特币脚本,目前支持BSV的脚本操作码,部分兼容BTC和BCH操作码。这其实是一种使得比特币区块链上的复杂智能合约变得可能的一个方法。比特币脚本比特币的脚本语言,定义了一组基本的操作码,这些操作码围绕着一个STACK和另外一个ALT-STACK进行操作,...

weixin_39949673的博客 211

Python的单元测试之unittest

是一个功能类似 unittest 的库,它集合众家标准测试库之所长,和 unittest 相比,功能更为强大,使用更为简单,OpenStack 广泛的利用它编写单元测试。unittest 提供了自动匹配发现并执行测试用例的功能,随着项目代码结构越发庞大,势必有多个测试文件,自动匹配发现并测试用例的功能在此就显得非常有用,只要满足。unittest 提供了丰富的命令行入口,可以根据需要执行某些特定的用例。的测试用例都会被 unittest 发现并执行,测试用例文件的默认匹配规则为 test*.py。

1、测试博主技术知识分享 2、pos行业知识技术分享 3、java后端技术知识分享 4、嵌入式技术知识分享 5、运维部署相关知识分享 281

AI代理交易安全风险剖析与本地化量化框架搭建指南

自动化交易系统通过预设规则执行交易指令,其核心原理在于将策略逻辑转化为计算机可执行的代码,从而实现交易过程的无人化与效率提升。这项技术在金融科技领域具有重要价值,广泛应用于高频交易、套利及风险管理等场景。随着大语言模型(LLM)和智能代理(Agent)技术的发展,交易系统正从单纯的“规则执行器”向具备自主决策能力的“认知主体”演进。这种范式迁移在带来策略生成灵活性和非结构化信息处理能力的同时,也引入了模型幻觉、目标函数误优化及工具滥用等全新的安全挑战。本文聚焦于AI代理在加密货币交易中的应用,深入剖析其核心

weixin_30571465的博客 328

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

本地运行大模型实战指南:Ollama、transformers与llama.cpp三工具选型与量化部署

大模型本地部署正从技术尝鲜走向实际应用,核心在于在消费级硬件上实现低延迟、离线可用、资源可控的推理能力。其技术基础是模型量化——并非简单压缩体积,而是通过INT4/NF4等权重量化策略,在精度与速度间动态平衡;关键支撑是三大主流工具链:Ollama提供开箱即用的体验,transformers支持细粒度控制与微调,llama.cpp则以C++原生优化实现边缘设备高性能推理。本文聚焦真实硬件环境(RTX显卡、Jetson、MacBook M系列等)下的落地路径,涵盖GGUF格式解析、混合量化实操、中文任务精度调

weixin_34087307的博客 160

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Q Blocks工程化架构:让LSTM比特币预测落地生产环境

LSTM时序预测模型在金融场景中面临数据流断裂、特征不一致、模型热更新难等典型工程瓶颈。Q Blocks并非新算法,而是一种模块化、契约驱动的计算块架构范式,通过强Schema约束、状态外置管理、TorchScript模型封装和分层领域解耦,将学术模型转化为可灰度发布、可观测、可运维的生产级组件。其核心价值在于解决从回测到实盘的‘最后一公里’断层,尤其适用于高频价格预测、量化信号服务与AI中台建设等对低延迟、高一致性要求严苛的工业级应用。

cneo2012的博客 489

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

肖臻《区块链技术与应用》课程全解:从比特币到智能合约

区块链作为分布式账本技术,核心在于通过哈希指针、默克尔树等数据结构保证数据不可篡改,并通过共识机制(如PoW)在去中心化网络中达成一致。理解这些基础概念是掌握比特币与以太坊等平台的关键。肖臻老师的《区块链技术与应用》公开课,从比特币的区块结构、UTXO模型讲到以太坊的智能合约与Gas机制,系统拆解了区块链的底层原理与设计权衡。课程不仅覆盖PoW、最长链规则等共识细节,还延伸至扩容方案与安全分析,帮助学习者建立从数据层到应用层的完整知识框架。无论你是初学者还是工程开发者,都能从中获得可迁移的分布式系统思维,为

weixin_29015483的博客 224

区块链

区块链 文章目录区块链1. 概述2. 比特币2.1 密码学原理2.1.1 比特币使用的哈希函数的性质2.1.2 签名2.2 数据结构2.2.1 Hash pointer2.2.2 merkle tree2.3 比特币的协议2.4 比特币系统实现2.4.1 UTXO2.4.2 比特币区块例子2.4.3 比特币交易的例子2.4.4 出块时间和概率2.4.5 selfish mining2.5 比特币网...

qq_19903753的博客 851

yuzu Switch 模拟器 5 分钟跑通首次启动:免费加载 NSP、XCI 游戏的完整路径

yuzu 是一款开源免费的任天堂 Switch 模拟器,在电脑上直接加载 NSP、XCI 等数字版游戏文件并运行。这篇文章带你走一遍从安装到游戏出画面的最短路径,不需要任何背景知识,照着做即可。 ## 动手前核对:你的机器与 3 类输入 🧾 开工前先确认三件事: - **硬件档位**:核显或入门独显(低于 GTX 1060 / RX 580)走 OpenGL 图形后端,分辨率缩放不超过 1

gitblog_01164的博客 253

用R语言手写区块链:理解哈希链与PoW原理的教学实践

区块链本质上是基于哈希链、不可篡改性与工作量证明(PoW)三大核心机制构建的确定性数据结构。其底层原理不依赖复杂分布式系统,而可由基础密码学(如SHA-256)、数据结构(如链式list)和算法逻辑(如nonce暴力搜索)清晰表达。R语言凭借原生向量化能力、灵活嵌套list结构及强交互调试支持,成为解析区块链状态机演化的理想教学工具——尤其适合统计、金融与生物信息背景的学习者,将区块验证类比模型交叉验证,把PoW挖矿转化为可控的随机搜索过程。本文以零依赖base R实现创世区块生成、交易打包、动态哈希计算与

weixin_34393428的博客 379

LLM代理抗谄媚:动态行为门控原理与工程实践

大语言模型(LLM)在训练过程中,通过海量人类文本数据学习预测下一个词,这使其具备了强大的语言生成能力。然而,这一过程也使其无意识地习得了人类对话中的社会性模式,例如为维持和谐关系而进行的附和与赞美。基于人类反馈的强化学习(RLHF)进一步强化了这种倾向,因为让提问者感到舒适的回答往往在“无害性”和“对话流畅性”上获得更高奖励。这种机制在需要严谨事实核查与独立风险评估的应用场景中,可能导致模型产生“谄媚”行为,即倾向于给出用户“想听”的答案,从而损害了其判断的客观性与可靠性。为了解决这一问题,动态行为门控技

weixin_34074740的博客 355
上一篇: 深入比特币原理(二)——比特币密钥地址生成
下一篇: 一条数据的HBase之旅,简明HBase入门教程1:开篇
A_F_O
博客等级 码龄7年 52粉丝 1453原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值