Bitcoin的Covenants——合同化管理UTXO的花费方式

1. 引言

最近几个月(2023年4月前后),随着Ordinal、Tarproot、染色币等技术被众多开发者深入挖掘,比特币生态诞生出一系列的协议产品,最出名的就是BRC20,各种搞NFT和同质化代币。

币圈的技术栈,总体分为2种:

  • 1)如何发币:BRCxxx系列都是如何法币。
  • 2)如何使用币:
    • Ordinal是如何使用币(比特币),将UTXO里的每一聪给定义成一个新的东西。
    • 目前最成功的是闪电网路。闪电网络拓展了比特币的使用方法,做到了快速、低成本的支付。

以RSK为代表侧链技术,和以RGB为代表的客户端验证技术,属于是即是发币技术又是使用币技术。

比特币核心开发者最关心的其实是使用币技术栈,对发币技术体系基本上是持负面态度。

上述提到的技术体系里,闪电网络是唯一一个得到了比特币核心开发者的青睐。

在技术实现上,所有的协议和产品变更要么采用软分叉的方式,要不就只能在共识层之上做改变。

而涉及到软分叉的变更,就是比特币核心开发者额外关注的。

最典型的几次是隔离见证(segwit),Taproot、Schnorr签名的软分叉。这些软分叉都是典型的如何使用币的技术改进。

比特币的所有权基本上是由私钥决定的,即只有私钥才能花费UTXO,但这就限定了比特币的应用方式。像以太坊的erc20那样,因为所有权是归合约代码管,代码的可编程性好,应用就可以五花八门。

比特币也有大量的开发是朝着更多的应用场景去设计的,最典型的也是最成熟的是P2SH。P2SH让UTXO的解锁脚本可以设计成是任何信息的哈希,这极大的拓展了比特币的应用方向。

MAST(Merkleized Abstract Syntax Trees)是近一年多比特币生态上研究的很多的一个方向。MAST是将复杂的比特币脚本编码成一个哈希二叉树,这可以实现特定的UTXO在可以设定为部分脚本赎回。比如一个UTXO可以设定成三个赎回脚本,其中任何一个脚本都可以按特定的条件来设计。

Covenants(契约)这个技术栈就是为了推动比特币合同化管理花费野心最大的(目前看到的野心最大)。可以简单地理解为将比特币锁定进一个金库,开金库的方式可以设计成非常复杂。

比特币脚本用于定义花费某个 UTXO 所需满足的条件。当你创建一个比特币地址来接收资金时,该地址实际上是一个比特币脚本(变换后)的哈希,定义了解锁和花费资金的必要条件。

截至发稿时,比特币脚本 能定义比特币交易中的输入(被花费的资金)必需满足的条件。没有一种方法能够限制比特币交易输出(被花费的资金的去向)的任何属性。

比特币契约(Covenants)是一种能够给未来的比特币交易设置条件的机制。

截至发稿时,人们关于比特币契约(Covenants)的讨论已经持续了 9 年半以上!

Covenant类似于合约:

  • 用于限制资产如何被使用:如禁止扩张或改变结构外部颜色

比特币契约是对比特币代码的拟议补充,允许人们保留对不再属于他们的比特币的一些控制权。换句话说,可能会对转移给另一个人的比特币施加限制。

无论是有意还是无意,如果将任何数量的比特币发送到钱包,其所有权就会在那里到期。没有办法收回它,也没有办法对比特币的使用方式或用途施加限制。

由于拟议的比特币契约,可将比特币以代码的形式转移给具有某些明确限制的人。可对比特币的使用施加限制,如要求仅在指定期限后或在发送回你的钱包后才使用它。

此外,可允许或限制特定的钱包。甚至可利用契约作为托管方,在特定数量的 BTC 可供使用之前持有一段时间。

2. 比特币契约的优点

比特币网络一直在应对固有的挑战,特别是“比特币不能三角”,它表明去中心化网络只能在三个方面中的两个方面表现出色:

  • 去中心化
  • 安全性
  • 可扩展性

契约提供了有前途的解决方案来增强安全性和可扩展性。

  • 增强的安全性:契约使用户能够更好地控制资产转移,减少盗窃的漏洞。它们有助于创建安全的vault(保险库),增强最终用户的保护。
  • 预签名交易:比特币契约可以实现预签名交易。这可阻止黑客,因为他们需要钱包的私钥才能完全控制资产。
  • 3)减少双花:契约在防止双花攻击方面发挥着关键作用,有助于网络安全。
  • 4)支持 Bitcoin-NG:契约符合 Bitcoin-NG 的原则,Bitcoin-NG 是一种旨在增强可扩展性的拜占庭容错区块链协议。Bitcoin-NG 的倡导者预计它将作为现有比特币网络之上的一个层进行无缝集成,从而在保持安全性的同时促进可扩展性。

3. 比特币契约的缺点

尽管比特币契约提出了显着的改进,但潜在的陷阱和社区保留仍然存在。以下是主要缺点:

  • 1)社区怀疑论:比特币社区的知名人士,包括 Adam Back、Jimmy Song 和 Andreas Antonopoulos,对 BIP119(契约提案)提出了严重担忧。该提案面临社区内部的阻力。
  • 2)递归契约:一种担忧是递归契约的可能性,其中一笔交易的限制导致后续约束,可能导致无限的契约链,从而导致网络拥塞。
  • 3)审查制度和中心化风险:契约可能会带来审查制度、中心化控制和资产没收风险。它们可能会迫使交易平台专门使用指定的钱包进行交易,这可能会侵犯用户的自由。
  • 4)隐私和可替代性:契约的引入可能会改变比特币的可替代性。目前,所有比特币都是相同的,但契约可能会区分各个比特币单位,从而影响加密货币的核心可替代性原则,并可能影响用户隐私。

虽然比特币契约提供了增强的安全性和实用性,但它们的采用需要仔细考虑并减轻比特币社区内的这些担忧。

4. 比特币契约工作原理

详情见:

  • Bitcoin Covenants Wiki

要了解比特币契约的运作方式,必须了解保护典型比特币交易的机制。

典型的比特币交易依赖于称为“锁定脚本”的保护脚本。该脚本包含处理交易必须满足的先决条件。

这些条件包含各种要素,包括:

  • 要求签名证明相应私钥和时间锁的所有权。
    • 时间锁类似于契约,规定在经过指定数量的区块之前不能使用该coins。

与标准比特币脚本不同,标准比特币脚本需要特定条件来解锁特定功能(如使用私钥签署交易),而契约通过引入额外的先决条件来扩展此过程。

契约引入的一个值得注意的前提条件是限制代币的功能。比特币契约使开发人员能够集成和定义比特币交易的新先决条件,有效增强交易安全性和实用性。

5. 结论

比特币契约尚未成为现实,因为任何比特币改进提案(BIP)都必须通过民主程序来实施。双方都有游说团体热衷于支持像这样有争议的提案。

契约的支持者相信,通过实施更多的安全性,将能够禁止比特币生态系统中的所有欺诈和盗窃行为,并提高比特币的可扩展性。随着其可替代性的丧失,一些人反对它,并认为这将破坏比特币作为未来people’s currency的主要地位。

由于没有实施比特币改进提案(BIP)的时间表,契约无疑将成为未来几个月和几年内更多讨论和辩论的主题,以及发现更多缺点或用例的主题。

参考资料

[1] 比特币核心开发者重视什么方向?——我觉得比特币生态最值得追求的技术栈和应用方向是Covenants
[2] 为什么比特币需要限制条款
[3] Why bitcoin needs covenants
[4] Bitcoin Optech: Convenants
[5] 2023年9月博客 What are Bitcoin Covenants? How Do They Work?
[6] Bitcoin Covenants Wiki
[7] 2024年1月14日视频 Covenant Use Cases & TXHASH with Steven Roose (SLP541)

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

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

相关文章

前端关于学习方式,解决问题的面试题(本人真实面试题)

本文旨在为大家平时面试解答提供思路 和 介绍平时学习,解决问题的方法。 1、如何解决Echarts难使用的问题 深入学习文档: ECharts 的官方文档是非常详细和全面的。仔细阅读文档,深入理解配置项和 API,可以帮助你更好地使用 EChart…

解决springboot启动报Failed to start bean ‘subProtocolWebSocketHandler‘;

解决springboot启动报 Failed to start bean subProtocolWebSocketHandler; nested exception is java.lang.IllegalArgumentException: No handlers 问题发现问题解决 问题发现 使用springboot整合websocket,启动时报错,示例代码: EnableW…

基于SSM的家政公司服务平台的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue、HTML 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是…

以某轧钢厂为例浅谈电能管理系统

摘要:结合某轧钢厂的现状和电能管理软件的优势应用,在节能降耗方面利用电能管理软件对轧钢厂电能损耗进行实时监控,为实现能源优化配置和节能降耗管理提供了大量数据,从而为大型能耗企业的节能降耗实施奠定了基础。 关键词&#x…

vue3使用vue-masonry插件实现瀑布流

《Vue插件》瀑布流插件vue-masonry的使用与踩坑记录 参数:item-selector transition-duration column-width origin-left origin-top gutter 前言: 之前其实有分享过一篇纯CSS实现瀑布流的方法: https://oliver.blog.csdn.net/article/details/126450691,但纯CSS实现…

C //练习 6-4 编写一个程序,根据单词的出现频率按降序打印输入的各个不同单词,并在每个单词的前面标上它的出现次数。

C程序设计语言 (第二版) 练习 6-4 练习 6-4 编写一个程序,根据单词的出现频率按降序打印输入的各个不同单词,并在每个单词的前面标上它的出现次数。 注意:代码在win32控制台运行,在不同的IDE环境下&#…

vivado RTL运行方法检查、分析方法报告、报告DRC

运行方法检查 Vivado Design Suite提供基于超快设计的自动化方法检查使用“报告方法论”命令的FPGA和SoC(UG949)方法论指南。您可以生成关于打开、详细阐述、综合或实现的方法论报告设计对于详细设计,方法报告会检查XDC和RTL文件。对于有关使…

阿里云国外云服务器多少钱?2024年最新价格

阿里云国外服务器优惠活动「全球云服务器精选特惠」,国外服务器租用价格24元一个月起,免备案适合搭建网站,部署独立站等业务场景,阿里云服务器网aliyunfuwuqi.com分享阿里云国外服务器优惠活动: 全球云服务器精选特惠…

odoo 一日一技 系统参数 config_parameter

# 基础介绍 在Odoo中,ir.config_parameter是一个特殊的模型,它用于存储全局配置参数。这些参数是全局的,可以在任何地方访问,而且它们的值在数据库中是持久化的。 你可以使用config_parameter模型来存储各种配置数据,…

汇编指令retn和retn x的区别

在32位汇编语言中,retn 和 retn 16 指令用于从子过程(或函数)返回,但它们之间有一些区别。 retn: retn 指令没有附加的立即数参数。当执行 retn 指令时,控制权返回到调用该过程的地址,但不会对…

Web Animation API

工作中经常会遇到需要动画的场景,连贯动画都是用CSS实现,,但是如果遇到需要用户互动介入的动画,那纯CSS很比较吃力,也不是不能实现,需要动态修改CSS变量,而且动画容易被JS代码阻塞,导…

XSS漏洞:xss.haozi.me靶场通关

xss系列往期文章: 初识XSS漏洞-CSDN博客 利用XSS漏洞打cookie-CSDN博客 XSS漏洞:xss-labs靶场通关-CSDN博客 XSS漏洞:prompt.mi靶场通关-CSDN博客 目录 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C…

【C++干货铺】红黑树 (Red Black Tree)

个人主页点击直达:小白不是程序媛 C系列专栏:C干货铺 代码仓库:Gitee 目录 前言 红黑树的概念 红黑树的性质 红黑树结点的定义 红黑树的插入操作 插入新的结点 检查规则进行改色 情况一 情况二 情况三 插入完整代码 红黑树的验…

母线温度预测业务需求设计

1、需求背景 需求对象:设备使用方、设备维修人员 使用场景:使用方需要对母线温度进行实时监测和预警,及时排除安全隐患,保证长期正常运行。 使用目的:准确预测母线的未来温度,对于可能存在的隐患提前预警…

OpenCV-Python(43):姿势估计

目标 学习了解calib3D 模块学习在图像中创建3D效果 calib3D模块 OpenCV-Python的calib3D模块是OpenCV库中的一个重要模块,用于摄像头标定和三维重建等计算机视觉任务。该模块提供了一些函数和类,用于摄像头标定、立体视觉和三维重建等方面的操作。 下…

MySQL语句 | 使用WITH子句和临时表达式进行数据分析和筛选

MySQL支持使用WITH创建临时表达式,通常称为"Common Table Expressions"(CTE)。CTE 通常用于较复杂的查询,为复杂查询提供了一种更清晰、模块化的方式,以提高复杂查询的可读性和易维护性。 举个通用的例子 …

MySQL-索引的介绍和使用

MySQL 支持哪些类型的索引? 主键索引(Primary Key Index) 唯一索引(Unique Index) 普通索引(Normal Index) 全文索引(Full-text Index) 组合索引(Composite …

apache seatunnel web 安装部署

下载文件 apache-seatunnel-2.3.3-bin.tar.gz apache-seatunnel-web-1.0.0-bin.tar.gz download_datasource.sh 准备工作 解压文件tar -zxvf apache-seatunnel-2.3.3-bin.tar.gz tar -zxvf apache-seatunnel-web-1.0

《动手学深度学习》学习笔记 第10章 注意力机制

文章目录 本系列为《动手学深度学习》学习笔记10.1 注意力提示10.1.1 生物学中的注意力提示10.1.2 查询、键和值10.1.3 注意力的可视化 10.2 注意力汇聚:Nadaraya-Watson 核回归10.2.1 生成数据集10.2.2 平均汇聚10.2.3 非参数注意力汇聚10.2.4 带参数注意力汇聚10.…

Python用selenium实现自动登录和下单的项目实战

前言 学python对selenium应该不陌生吧 Selenium 是最广泛使用的开源 Web UI(用户界面)自动化测试套件之一。Selenium 支持的语言包括C#,Java,Perl,PHP,Python 和 Ruby。目前,Selenium Web 驱动…