当前位置: 首页 > news >正文

UTXO 模型及扩展模型

目录

  • 引言
  • 1. 比特币的 UTXO 模型(信封)
  • 2. 以太坊的账户模型(全局状态机)
  • 3. UTXO 的代表性改进
    • (1)Nervos CKB:Cell(盒)
    • (2)Cardano:EUTXO(纸)
    • (3)Qtum:翻译层(译)
    • (4)Sui:双轨对象(双)
    • (5)Fuel:严格访问列表(点)
  • 4. 执行/并发的直觉对比
  • 总结

引言

区块链里最绕人的,往往不是数学,而是“账本怎么记”。比特币用 UTXO(像一次性零钱信封),以太坊用 账户+全局状态;后来的 CKB、Cardano、Qtum、Sui、Fuel 则在不丢掉 UTXO 并行/安全直觉的前提下,给“信封”加上状态、逻辑或调度能力。本文按“先直觉→再对比→最后看演化”的顺序,带你从比特币的 UTXO 出发,理解以太坊账户模型的取舍,再看 CKB 的 Cell(盒)、Cardano 的 EUTXO(纸)、Qtum 的 翻译层(译)、Sui 的 双轨对象(双) 与 Fuel 的 严格访问列表(点)。阅读时只记两个问题:能不能在链上“记状态”?并发靠什么避免冲突?

1. 比特币的 UTXO 模型(信封)

UTXO = Unspent Transaction Output(未花掉的交易输出)
一笔交易消耗若干旧 UTXO(作废),并生成若干新 UTXO(记入账本)。
特点

没有“余额字段”,余额 = 名下所有未花 UTXO之和。

一次性:每个 UTXO 只能被花一次,天然防双花。

钱包通常为找零用新地址(隐私更好,但不是强制;仍可被链上分析关联)。

局限:只会“锁→解锁”,难记中间状态,写复杂合约不便利。

2. 以太坊的账户模型(全局状态机)

账户持有余额与合约存储,可持续更新,合约表达力强。
代价:依赖全局状态与交易顺序,并行性受限,易“状态膨胀”

3. UTXO 的代表性改进

(1)Nervos CKB:Cell(盒)

把只能存数字的 nValue 一般化为 capacity + data(小盒子)

经济模型:存储付“租金”,抑制状态爆炸。

链下算、链上验:Layer1 只认“结果对不对”,计算可迁到链下/二层。

(2)Cardano:EUTXO(纸)

在 UTXO 上加:
Datum(纸条/状态)——随输出一起保存
Redeemer(解锁参数)——在花费时提交
验证器 Script 用 Datum + Redeemer + 交易上下文 判定能否花费(True / False)。
并行确定性强:不抢同一 UTXO,就能并发执行。

UTXO 图:只有“拆零钱、给谁”——简洁、一次性。
EUTXO 图:在“零钱”上贴规则(脚本),花的时候交参数(Redeemer),所以能写更复杂的条件,但仍保持“不抢同一 UTXO 就能并行”。

每个输出都可以挂脚本当“锁”;以后谁想花它,就要在输入端提供 Redeemer(参数)(还有通常的 Datum/ 纸条=状态,这张图没画出来),脚本会用 Datum + Redeemer + 交易上下文 验证是否允许花费。
在这里插入图片描述
疑点:
红色圆点是啥? Redeemer,花费该 UTXO 时提交的参数。
Datum 哪里? 通常存放在输出端随 UTXO 一起保存(这张图省略了“Datum/纸条”那一块)。
为什么金额能对上? 两次交易都满足“输入总额 = 输出总额 + 手续费”的守恒;图里画的是理想化的整分配。

EUTXO = UTXO +(Datum 状态)+(Redeemer 参数)→ 交给 Script 验证,结合交易上下文(时间/输入输出等),返回 True/False 决定能不能花。既能保存状态,又能写逻辑,兼顾了UTXO的并行性和以太坊的可编程性。
在这里插入图片描述
Script=锁,Datum=锁旁的便条规则,Redeemer=你交的钥匙/理由,Context=门卫看当天时间/票;最后给你放行/不放行。

(3)Qtum:翻译层(译)

UTXO 验证 + 账户抽象层(AAL) + EVM
交易先按 UTXO 逻辑验证,再被翻译为 EVM 合约调用,桥接 UTXO 并发与合约能力。

(4)Sui:双轨对象(双)

OwnedObject(像 UTXO,单写者):天然并行;同一版本只能“花”一次。

SharedObject(像账户,多写者):读写需全局排序。两者可按业务混用。

(5)Fuel:严格访问列表(点)

交易提前声明要访问的合约 / UTXO / 资源,执行前先点名后上车,减少资源争用;
并引入“合约 UTXO”增强表达力。

4. 执行/并发的直觉对比

比特币 / CKB(UTXO / Cell):本地验证 + 结果上链;只要不争同一 UTXO / Cell,即可并行。

以太坊(账户):对交易顺序先达成共识,再按顺序执行全局状态机;并行受限。

总结

区块链的关键在于“账本怎么记”:比特币用 UTXO(像一次性零钱信封)换取简单、可并行与防双花;以太坊用账户+全局状态获得更强合约能力,但并行受限、易状态膨胀。围绕取舍,各链给 UTXO 加“记忆/规则/调度”:CKB 的 Cell 用 capacity+data 泛化存储并“链下算、链上验”,Cardano 的 EUTXO 以 Datum + Redeemer + Script 做确定性验证,Qtum 以 AAL 把 UTXO 交易翻译给 EVM,Sui 以 Owned/Shared 双轨在并行与共享间切换,Fuel 用严格访问列表“先点名后上车”减少争用。归根到底记住两问:能否在链上记状态?并发靠什么避免冲突?
一句口令概括演化路线:信|盒|译|纸|双|点(BTC、CKB、Qtum、Cardano、Sui、Fuel),按业务在“并行确定性”与“合约表达力”之间选型即可。

http://www.xdnf.cn/news/1375489.html

相关文章:

  • Android -第二十一次技术总结
  • 海康相机的 HB 模式功能详解
  • Part 1️⃣:相机几何与单视图几何-第六章:相机模型
  • 【Redis 进阶】Redis 典型应用 —— 缓存(cache)
  • 【大前端】封装一个React Native与Android/IOS 端通用的埋点接口
  • 储能站运维管理一体化平台 | 图扑数字孪生
  • 《Linux 网络编程四:TCP 并发服务器:构建模式、原理及关键技术(以select )》
  • Linux 软件编程(十二)网络编程:TCP 并发服务器构建与 IO 多路复用
  • PPT处理控件Aspose.Slides教程:在.NET中开发SVG到EMF的转换器
  • 爬虫基础学习 - Xpath
  • 设计模式与设计原则简介——及其设计模式学习方法
  • 优选算法-常见位运算总结
  • uniapp中 ios端 scroll-view 组件内部子元素z-index失效问题
  • 基于 Node.js 的淘宝 API 接口开发:快速构建异步数据采集服务
  • 汽车电气系统的发展演进为测试带来了哪些影响?
  • DeFi协议Lombard能突破比特币生态原生叙事困境吗?
  • 图表可视化地理趋势-Telerik WPF Chart
  • 【Day 35】Linux-主从复制的维护
  • (LeetCode 面试经典 150 题 ) 637. 二叉树的层平均值(深度优先搜索dfs)
  • 亚马逊广告关键词排名提升的五大核心策略解析
  • java简单ssm(spring+springmvc+mybatis)框架结构demo
  • 大模型重构建筑“能耗基因“:企业如何用物联中台打响能源革命?
  • 手写MyBatis第36弹:MyBatis执行流程中SQL命令类型解析
  • 登录业务——密码重置与强制修改初始密码实现思路
  • 【微信小程序】分别解决H5的跨域代理问题 和小程序正常不需要代理问题
  • Coze用户账号设置修改用户名-后端源码
  • map|math
  • 腾讯位置商业授权微信小程序路线规划
  • 【开源工具】基于Flask与Socket.IO的跨平台屏幕监控系统实战(附完整源码)
  • 前端性能优化:从指标监控到全链路落地(2024最新实战指南)