区块链基础:交易模型解读

2023-11-17

1、比特币系统UTXO解读

UTXO(unspent transaction output)未花费的交易输出,这是比特币交易中核心概念。

UTXO是比特币拥有者的公钥锁定的一个数字,实际是是拥有者的公钥加密的数字,只有拥有者的私钥才能解开。

UTXO就是比特币,是比特币系统中虚拟货币的底层实现,也就是说比特币系统中没有一个虚拟货币的概念,只有UTXO。

UTXO可以用于支付,新的UTXO可以由挖矿或交易产生。说通俗一些,UXTO就是交易中交易接收者应该收到的支付金额和交易发起者的收到的找零。

UTXO存在全节点的数据库里
转账交易消耗自己的UTXO,同时生成新的UTXO,并用接收者的公钥锁定
比特币系统中用户的“余额”实际上并不直接存在,而是通过计算得来

2、比特币系统交易模型解读

(1)交易输出(UTXO)

  • 锁定的比特币数量
  • 锁定脚本(用接收者的公钥哈希)

(2) 交易输入(UTXO+解锁脚本)

  • 解锁脚本(发送者的签名和公钥)

(3)签名-对发送者和接收者的公钥哈希以及整个交易签名

简单交易模型图
这里写图片描述

3、交易全流程

  1. 起初,第一个挖出的区块里面包含了一个 coinbase 交易。在 coinbase 交易中,没有输入,所以也就不需要签名。coinbase 交易的输出包含了一个哈希过的公钥(使用的是 RIPEMD16(SHA256(PubKey)) 算法)
  2. 当一个人发起交易时,就会创建一笔交易。这笔交易的输入会引用之前交易的输出。每个输入会存储一个公钥(没有被哈希)和整个交易的一个签名。
  3. 比特币网络中接收到交易的其他节点会对该交易进行验证。除了一些其他事情,他们还会检查:在一个输入中,公钥哈希与所引用的输出哈希相匹配(这保证了发送方只能花费属于自己的币);签名是正确的(这保证了交易是由币的实际拥有者所创建)。
  4. 当一个矿工准备挖一个新块时,他会将交易放到块中,然后开始挖矿。
  5. 当新块被挖出来以后,网络中的所有其他节点会接收到一条消息,告诉其他人这个块已经被挖出并被加入到区块链。
  6. 当一个块被加入到区块链以后,交易就算完成,它的输出就可以在新的交易中被引用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

区块链基础:交易模型解读 的相关文章

随机推荐

  • 模板小程序是什么?怎么选择?

    模板小程序是指第三方服务商基于某个模板开发的小程序 这个模板可以根据开发者的需求进行定制 包括页面设计 功能模块 数据管理等方面 开发者可以在模板基础上进行自主开发 实现自己的需求和功能 模板小程序的优点是开发周期短 价格相对较低 一般是直
  • 白夜追凶 :手 Q 图片的显示和发送逻辑

    欢迎大家前往腾讯云社区 获取更多腾讯海量技术实践干货哦 作者 陈舜尧 导语 这张图片在快捷发图栏背景是黑色的 为啥发到AIO 会话窗口 里背景就变成白的了 通过一个bug单 对黑白背景问题跟进的过程中发现了手q中很多奇怪的表现 一层层看代码
  • SpringBoot支付宝接入实战

    文章目录 支付宝支付后端实战 基于SpringBoot 一 支付宝支付介绍及接入指引 1 支付宝开放能力介绍 1 能力地图 2 电脑网站支付产品 2 接入准备 1 开放平台帐号注册 2 常规接入流程 3 使用沙箱 二 项目的环境准备 1 框
  • js小案例

    一次性定时器 div class dn div
  • C++,命名空间

    命名空间定义 namespace 命名空间名 变量名 函数 结构体 枚举名 全局引入命名空间 using namespace 命名空间名 部分引入命名空间 using namespace 命名空间名 变量名 注意 表示域限定符 在哪个位置使
  • 【实战加详解】二进制部署k8s高可用集群教程系列二 - ssl 证书简介

    TIP 二进制部署 k8s ssl 证书 转载请注明出处 https janrs com 1 ssl 证书简介 NOTE 在这里只做应用的简介 原理不做介绍 自行谷歌查阅 涉及到安全的 也不整理文档了 自行研究 1 1 什么是 ssl 证书
  • Java实现:寻找水仙花数

    Java实现 寻找水仙花数 文章目录 Java实现 寻找水仙花数 1 问题 2 解决方案 3 实现代码 4 执行结果 5 解决方法说明 穷举法 1 问题 寻找水仙花数 如果一个3位数等于其各位数字的立方和 则称这个数为水仙花数 例如 407
  • 奇异值分解方法求解最小二乘问题的原理

    文章目录 一 奇异值分解 SVD 原理 1 1 回顾特征值和特征向量 1 2 SVD的定义 1 3 求出SVD分解后的U V矩阵 1 4 SVD计算举例 1 5 SVD的一些性质 二 线性最小二乘问题 2 1 最小二乘问题复习 2 2 奇异
  • 最小二乘法拟合圆(Python)

    上文已经对比了三种数据点拟合圆的方法 本文分享最小二乘法的拟合过程 旨在了解如何用Python编程拟合圆 usr bin env python coding utf 8 This program is debugged by Harden
  • Markdown插入视频、mp3音频和gif图的语法

    总所周知 鄙人有一个专栏叫做 差生文具多 里面记录了一些工具的使用方法 以及使用工具时会遇到的一些问题 于是乎 之前就有一个朋友在群里问道 markdown如何插入视频 当时的我不会弄 然后就出现了下面这一幕 明天就弄 开整 然而这篇博客是
  • ARM64_VS2017 动态库 静态库编译 主程序调用环境搭建

    ARM64 VS2017 动态库 静态库编译 主程序调用环境搭建 1 打开Visual Studio Installer安装linux开发环境 2 配置linux环境 工具 gt 选项 gt 跨平台 gt 连接管理器 gt 添加 远程lin
  • mkdir()和mkdirs()区别

    mkdir 和mkdirs 区别如下 mkdirs 可以建立多级文件夹 mkdir 只会建立一级的文件夹 如下 new File tmp one two three mkdirs 执行后 会建立tmp one two three四级目录 n
  • 算法:回文字符串

    要求 给定一个字符串数组 判断出所有的回文字符串 class Solution public List
  • 预备打工人之SystemC学习 (五) 事务级建模库

    预备打工人之SystemC学习 TLM2 0基本概念 松散定时建模 近似定时模型 近似定时建模和松散定时建模的使用 发起者 目标 套接字和桥 DMI和调试传送结构 合并接口和套接字 名字空间和头文件 通用净核类 定义 构造 赋值和析构函数
  • JS栈内存和堆内存详解

    JS变量都存放在内存中 而内存给变量开辟了两块区域 分别为栈区域和堆区域 栈像个容器 容量小速度快 堆像个房间 容量较大 一 基本数据类型和引用数据类型存储方式 js中的数据类型可以分为基本类型和引用类型 基本类型是存在栈内存中的 引用类型
  • 在网页的JS中注入Hook

    在网页的JS中注入Hook Chrome浏览器的overrides的使用 itcoder cn 1 以下为Edge 的示例 1 本地新建一个目录 2 用浏览器关联该目录 选择目录后 浏览器上方会弹出一个横条提示确认 点击允许后即可关联 3
  • Java实现MD5加密及解密的代码实例分享

    原文地址 http www jb51 net article 86027 htm 如果对安全性的需求不是太高 MD5仍是使用非常方便和普及的加密方式 比如Java中自带的MessageDigest类就提供了支持 这里就为大家带来Java实现
  • muduo net库学习笔记4——事件驱动循环EventLoop、runInLoop和queueInLoop及对应唤醒

    首先总体情况 每个muduo网络库有一个事件驱动循环线程池 EventLoopThreadPool 线程池用在事件驱动循环上层 也就是事件驱动循环是线程池中的一个线程 每个TcpServer对应一个事件驱动循环线程池 每个线程池中有多个事件
  • jupyter notebook新建python3空白_jupyter notebook 启动出现404 302,web空白页无反应

    原来装过官网的python2 7和3 6 在这基础上装了anaconda3 启动jupyter notebook时出现404和302 复制url到猎豹和IE浏览器都没有反应 token复制也不行 后来卸载了官网的python2 7和3 6也
  • 区块链基础:交易模型解读

    1 比特币系统UTXO解读 UTXO unspent transaction output 未花费的交易输出 这是比特币交易中核心概念 UTXO是比特币拥有者的公钥锁定的一个数字 实际是是拥有者的公钥加密的数字 只有拥有者的私钥才能解开 U