BTC交易流程

news/2024/7/5 23:15:47/文章来源:https://www.cnblogs.com/lianshuiwuyi/p/18281653

交易流程

比特币的交易流程涉及多个步骤和参与方,包括发送方、接收方、矿工和比特币网络中的节点。以下是比特币交易的详细流程:

  1. 创建交易:
    • 生成比特币地址:比特币地址是一个由公钥生成的字符串,用于接收比特币。每个用户在创建比特币钱包时,都会生成一对公钥和私钥。公钥通过哈希算法生成比特币地址,私钥用于签名交易。
    • 创建交易信息:交易信息包括以下几个部分:
      • 输入(Inputs):包含发送方的比特币地址和之前交易的输出(即发送方要花费的比特币)。
      • 输出(Outputs):包含接收方的比特币地址和发送的比特币数量。
      • 交易额外信息:包括交易费等。
  2. 签名交易:发送方使用私钥对交易信息进行签名。签名的目的是证明交易的合法性和发送方对比特币的所有权。签名后的交易信息会被广播到比特币网络。
  3. 广播交易: 签名后的交易信息通过比特币网络广播到其他节点。每个节点都会验证交易的合法性,包括检查签名是否有效、输入是否未被双花(即同一笔比特币是否未被多次使用)等。
  4. 矿工打包交易: 矿工从比特币网络中收集未确认的交易,并将这些交易打包到一个新的区块中。矿工会优先选择交易费较高的交易进行打包。
  5. 工作量证明(PoW): 矿工需要通过工作量证明(PoW)算法来解决一个复杂的数学问题。具体来说,矿工需要找到一个随机数(Nonce),使得整个区块的哈希值满足目标难度。这个过程称为挖矿。
  6. 广播新区块: 一旦矿工找到符合条件的哈希值,他们会将新区块广播到比特币网络。其他节点会验证新区块的合法性,包括检查哈希值是否符合目标难度、交易的合法性等。
  7. 区块链更新: 验证通过后,新区块会被添加到区块链中,成为区块链的最新部分。此时,交易被确认并记录在区块链中。
  8. 交易确认: 交易被打包到区块中并添加到区块链后,交易会获得一次确认。随着新区块的不断添加,交易会获得更多的确认。一般来说,6次确认被认为是安全的,意味着交易已经被多个区块确认,难以被篡改。
  9. 接收方验证交易: 接收方可以通过比特币网络查询交易状态,确认交易是否被记录在区块链中以及获得的确认次数。一旦交易获得足够的确认,接收方可以认为交易是安全的,已成功接收比特币。

广播交易

以下是一个比特币交易广播的示例流程图:

graph TDA[用户创建并签名交易] --> B[发送交易到本地节点]B --> C[本地节点验证交易]C --> D[广播交易到邻近节点]D --> E[邻近节点验证并广播交易]E --> F[交易在网络中传播]F --> G[交易进入内存池]G --> H[矿工选择并打包交易]H --> I[广播新区块]I --> J[区块链更新]

广播过程涉及到P2P网络Gossip协议

  • P2P网络:比特币网络是一个P2P网络,由许多节点组成。每个节点都连接到其他节点,并通过P2P协议与其他节点交换信息。节点之间可以相互通信,交换交易、区块等信息。
  • Gossip协议:比特币网络使用一种称为Gossip协议的传播机制。每个节点会将接收到的新交易信息传递给它的所有邻近节点,邻近节点再继续传递,直到整个网络中的所有节点都接收到该交易信息。

交易验证过程包括

  • 检查输入的未花费交易输出(UTXO):确保交易输入引用的比特币尚未被花费。
  • 签名验证:使用发送方的公钥验证交易的签名,确保发送方对交易输入的比特币拥有所有权。
  • 双花检查:确保交易输入的比特币未被其他交易使用。
  • 格式检查:确保交易的格式符合比特币协议的规范。

孟斯特

声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
Author: mengbin
blog: mengbin
Github: mengbin92
cnblogs: 恋水无意
腾讯云开发者社区:孟斯特


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/736870.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技术手段和测试流程,不是一回事

看到这样一个问题:造测试数据时,如果失败了怎么办,如何处理这种失败的情况?失败了需要停止测试活动吗? 很久没看到这么有意思的问题了,毕竟测试数据是很重要的测试活动开展资料,如果缺失或者不准确,会对测试结果造成极大的影响。那么该如何理解和解决上述的问题呢?我们…

PaddleNLP UIE -- 药品说明书信息抽取(名称、规格、用法、用量)

目录创建项目环境配置上传代码训练定制代码结构数据标注准备语料库数据标注导出数据数据转换doccanoLabel Studio模型微调模型评估定制模型一键预测效果 PaddleNLP UIE 实体关系抽取 -- 抽取药品说明书(名称、规格、用法、用量) 对于细分场景推荐使用轻定制功能(标注少量数据…

VMware vSphere Tanzu部署_03_vCenter部署

vCenter部署 部署vCenter通过安装ISO内的webui工具进行vCenter虚机部署配置部署位置为ESXI机器配置部署规格为tiny模式配置vcsa部署的磁盘类型为精简模式配置vcsa的网络初始化vCenter配置vcsa开启ntp同步和开启SSH登录配置vsphere登录账号和登录域调整vCenter内存大小在esxi中将…

05-Excel初阶操作-学习笔记

本期继续更新函数专题DATE函数 函数格式:DATE(参数1,参数2,参数3) 参数说明:参数1:年份;参数2:月份;参数3:日 作用:将文本类型转换为正确的日期格式 应用场景:身份证号提取出生日期其中,MID()是文本截取函数 注意!如果输入2000-2-30使用date函数后会进行进位显示2000…

OpenBMB Hugging Face THUNLP,大模型课开班丨伙伴活动推荐

2022 年,OpenBMB 开源社区联合 THUNLP 开国内大模型公开课先河,全网百万级播放量,已帮助无数大模型爱好者从入门到精通。这个夏天,OpenBMB 携手 HuggingFace、THUNLP 和面壁智能,推出大模型公开课第二季。全球知名开源社区 OpenBMB Hugging Face 梦幻联动,MiniCPM、Chat…

【Unity】HoloLens2 开发日记

2022/1/12 第一天! START ! 配置环境微软官方教程:练习 - 导入和配置资源 - Learn | Microsoft DocsWindows 10 SDK 地址:Windows SDK - Windows 应用开发 (microsoft.com)MRTK(混合现实工具包):Download Mixed Reality Feature Tool from Official Microsoft Download C…

深度学习--模型优化--模型的量化--92

目录1. 什么是量化2 位宽,高精度浮点数的表示3. K-means 聚类量化4. 均匀/线性量化(linear quantization)5. Thresholding量化 1. 什么是量化 量化可以理解为:从连续到离散,针对parameters(W)、activations(A)使用整数值取代浮点数值, 模型尺寸更小 改进inference时间…

Profibus DP主站转Modbus网关连接伺服与电机通讯

文章介绍了ProfibusDP主站转Modbus网关(XD-MDPBM20)在工业自动化中的应用,包括其定义、优势及连接伺服与电机通讯的步骤。Profibus DP主站转Modbus网关(XD-MDPBM20)是一种用于不同通讯协议之间转换的设备,它可以将Profibus DP主站的信号转换为Modbus协议,实现不同设备之…

Power BI实用技巧:轻松打造专业级甘特图

Power BI实用技巧:轻松打造专业级甘特图大家好,今天我们要一起探索Power BI中一个既实用又强大的功能——制作甘特图。甘特图以其直观展示项目时间线和任务进度的特点,在项目管理中扮演着重要角色,今天将为大家带来两种不同的甘特图制作方式——堆积条形甘特图、第三方视觉…

docker相关配置

避免 Docker Hub 限制,最好配置镜像 配置文件:/lib/systemd/system/docker.service 把文件里ExecStart=/usr/bin/dockerd-current替换成ExecStart=/usr/bin/dockerd-current --registry-mirror=https://a14c78qe.mirror.aliyuncs.com即可 配置成功后可查看docker运行状态:sy…

Power BI进阶秘籍,干货满满!如何将度量值转化为切片器(动态切换分析指标),实操指南来了!

Power BI进阶秘籍,干货满满!如何将度量值转化为切片器(动态切换分析指标),实操指南来了!想要在Power BI中让度量值也能像维度一样灵活筛选?没问题,这里就为你揭秘如何将度量值转化为切片器(动态切换分析指标)的实用方法!一、了解基础:首先,要知道Power BI原生不支…

SD中的VAE,你不能不懂

要想生成一幅美丽的图片,没有VAE可不行什么是VAE? VAE,即变分自编码器(Variational Autoencoder),是一种生成模型,它通过学习输入数据的潜在表示来重构输入数据。 在Stable Diffusion 1.4 或 1.5 模型中,通过VAE对模型进行部分更新,以提升模型渲染眼睛的能力。通过这种…

VSCODE 编辑markdown 文件

因为Obsidian版权问题,改用vscode编辑器 编辑markdown 文件 1.使用VSCODE 编辑markdown 文件 首先分别下载 Markdown 和markdown PDF 第三方插件 2.保存文件为md 格式,如果需要缓存图片,可以点击右上角的预览模块。就可以看图片了(window 和linux 服务器都是/ 分隔符) 如…

如何从服务器bios清除磁盘数据

解决问题并查找根源: 一、服务空间不足,服务无法部署或服务不可用 二、清理了大日志文件,但是空间还是不足 1.首先是通过df -h命令查看磁盘的使用情况,主演是看Avail(可用)和Use(已用)的占用百分比,如下所示: df -h Filesystem Size Used Avail Use% Mounted on /dev/m…

《安富莱嵌入式周报》第339期:单片机运行苹果早期Mac系统模拟器,2GHz示波器有源探头,下一代矩阵开关面包板,卡片式声音分贝器,HP经典示波器,ReRAM

周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 视频版 https://www.bilibili.com/video/BV1Kf421Q7Lh目录1、开源2GHz的示波器有源探头 2、模拟矩阵开关面包板Jumperless推出下一代Jumperless V5 3、软件相关…

IBM服务器SQL/ Oracle数据库修复

一、故障诊断: 1.使用IBM服务器管理工具(如IBM Storage Manager)连接到服务器,检查当前存储状态和数据库状态。 2.查看错误日志和系统日志,确定数据库损坏的具体原因,如硬盘故障、RAID阵列崩溃、文件系统损坏等。 风险评估: 1.评估数据库损坏的严重程度和恢复的可能性。…

对vue3中update:属性的理解

最近看到了一个项目中代码,类似于update:count。 对此不太明白用法,这里经过理解之后,记录一下。 大概是这样的这里的场景是父组件中引入了子组件,在父组件中有一个变量count,并将count传入到了子组件。 现在假设父组件上有个按钮,其作用是每次按下,就对父组件中的count…

Vue props的多类型定义报错的问题

报错内容:The "maxHeight" property should be a constructor vue/require-prop-type-constructor 代码中是这样实现的:解决办法: 改成数组型是就可以了

WPF进度条中间写百分比数字

我发现很多同学把思维固话了,通常我们需要实现的进度条是我在网上看到好多例子,但是都没有我的简单,他们不是重写ProcessBar就是使用模板, 可以将TextBlock提取出来啊,灵活一点单独绑定 然后一句代码Panel.ZIndex="1"就搞定了<StackPanel><Button Cont…

mysql连表查询出现数据重复

当我们连表查询遇见数据重复的时候 出现了 好多条 id一样的数据 是错误的 所以我们需要用到distinct关键字进行处理 保证我们数据的唯一性 接下来一个小知识 就是distinct关键字的使用 感谢观看 谢谢