关于 Runes 协议及「公开铭刻」发行机制的拓展讨论
撰文:MiX
编辑:Faust,极客 web3
2024 年 3 月 2 日,Runes 生态基础设施项目 Rune alpha 的创始人,在 Github 的公开议题中,与 Runes 协议创始人 Casey 展开了讨论,双方对如何拓展 Runes 协议的「公开铭刻」机制进行了探讨。话题包括:
- 要不要放宽「公开铭刻」不可预留的要求?
- 指出了采用「公开铭刻」发行方式的 Runes 符文不存在管理权的观点
- 提出了一套基于铭文 NFT 和符文 FT 互相配合的发行机制设想
出于对比特币衍生资产协议的浓厚兴趣,本文作者结合上述 Runes 的一些最新话题,写作了此篇文章,就 Runes 与 Ordinals 协议的过往,以及类似的资产发行方式进行开发性的探索,相信能够对大家了解比特币生态带来帮助。
什么是 Runes 协议
所谓的 Runes 协议,是在比特币网络上发行同质化代币的协议,由 Ordinals 创始人 Casey 在发布 Ordinals 方案后,又重新构建的同质化代币方案,基于比特币 UTXO 的特性而构建,整体的设计思路非常简洁。
值得一提的是,Runes 协议计划在比特币 2024 年减半时(区块高度 840000),也即是今年四月下旬上线主网。现在 Runes 协议仍然处于优化和版本迭代的过程中。
在简要科普 Runes 的原理前,让我们先快速了解下来龙去脉,以及所谓的【公开铭刻】到底代表什么。
Runes 的提出者 Casey 在一开始并没有要做同质化代币协议的 idea,早在 2022 年 12 月时,Casey 就发布了 Ordinals 协议,意图是将 NFT 数据永久上链 Bitcoin,简单说就是将 NFT 元数据像铭文一样,记录在比特币交易的见证数据 witness 中(witness 主要包含数字签名信息),这样就能够将任意形式的内容(如文本、图像等)铭刻在指定的聪上。
(图片来源:https://yishi.io/a-beginner-guide-to-the-ordinals-protocol/)
随后,历史的齿轮开始转动,2023 年 3 月 8 日,匿名开发者@domodata 基于 Ordinals 这个典型的 NFT 发行协议,迂回的搞出一套发行同质化代币的 BRC-20 标准,就是以铭文的方式,对那些需要上传到比特币链上的衍生资产数据,规定出统一的格式和属性(Token 名称、总供应量、单次最大铸造量等),再通过索引器去解析并追踪这些信息,展示出 BRC-20 代币相关的钱包账户和资产数额。
关键来了,BRC-20 的发行,要依赖于 Ordinals 这种比特币铭文 NFT 协议,所以在初始的发行机制上变得和 NFT 铸造过程类似,天然具备「先到先得」的特性,谁先 Mint 谁就拥有,完全不同于以太坊 ERC-20 资产发行时「项目方先部署资产合约,定义资产分配机制,官方想怎么控盘都可以」。
这种Fair Launch的特性,使得大多数人有了公平参与同质化代币初始发行的机会,项目方无预留无锁仓,每个人都可以在资产最初发行的第一时间参与。很快,BRC20 就带来了比特币链上衍生资产的发行热潮,甚至直接启动了这轮牛市。由此可知,我们今天重点讨论的「公开铭刻」的发行方式,对于 Runes 协议而言非常重要。
但 BRC-20 也带来了很多问题:BRC-20 资产的每一次操作,都要在比特币链上发起特定的交易,随着 BRC-20 资产的火爆,比特币 UTXO 数据集也快速膨胀,这使得 BTC 核心开发者对 BRC-20 产生公开质疑。
Ordinals 创始人 Casey 不仅反对 BRC-20,更是对基于 Ordinals 之上发行的 FT 资产不予认可,但是 BRC-20 的火爆,让他觉得虽然 99% 的代币都是骗局和噱头,但这些东西仍会像赌场一样无法消失。
同时,BRC-20 在比特币链上留下了「过多的痕迹」,为比特币节点带来了数据承载上的负担,但如果有人提出一套,能够在上链数据方面「减负」的资产协议,或许能减缓 BRC-20 带来的问题。
所以Casey 决定为比特币构建一种「更好的同质化代币协议」,随后在 2023 年 9 月 25 日,他发布了 Runes 协议的初步构想。
从技术角度看,Runes 协议基于比特币 UTXO 和附加信息而构建,每一笔交易的触发,都要把链下生成的数字签名信息 on chain,我们可以在签名信息中携带特定格式的消息。Runes 协议通过 OP_RETURN 操作码来标记出「特定消息」,这些特定消息就是与 Runes 资产变更相关的信息。
相比于 BRC-20 协议,Runes 优势很多,其中最重要在于:
1.交易步骤简化,且不会生成多余的无用 UTXO,能更好的为比特币节点「减轻负担」。此外,BRC-20 的一笔转账交易仅支持一个接收者和一种代币,而 Runes 支持同时向多个接收者转账,且可转账多种 Runes 代币。
2.资产数据的存储与索引更简洁:BRC-20 的数据以 JSON 格式存储在特定交易的 witness 数据中,且 BRC-20 基于账户模型,资产余额与指定的账户相关联。而 Runes 协议的数据存储在特定交易的 OP_RETURN 字段中,资产的记录方式采用 UTXO 模型,可以直接与比特币链上的 UTXO「同构绑定」。
在确认一个人的 Runes 资产状况时,只需验证这个人拥有的、与 Runes 资产相绑定的特殊 UTXO,虽然还是要追溯部分信息完成计算,但无需像 BRC-20 那样扫描比特币链上的完整 UTXO 集合,这种轻量化的方式对数据索引更友好。
3.与 UTXO 功能拓展层兼容:Runes 基于 UTXO 的设计,使其能够与 CKB、Cardano、Fuel 等基于 UTXO 的功能拓展层更好地兼容。通过类似于 RGB++ 的「UTXO 同构绑定」,上述功能拓展层可以为 Runes 提供智能合约场景。
简要谈完了技术,我们回到本文最开始谈论的发行机制的事情。Casey 为 Runes 符文设计了两套发行方式,即「固定总量」和「公开铭刻」:
1.固定总量就是发行方直接铭刻所有 Runes 符文,然后再进行分发,相对更中心化。
2.公开铭刻就是对 Runes 符文的发行方式设定参数,比如指明一个区块高度或时间戳,在符合规则的时间段内,用户 Mint 了多少资产,最后该符文的总量就是多少。
两种发行方式对应的场景与机制完全不同,下文中我们只聊「公开铭刻」。
事实上,Sondotpin 从 Runes 的 Issues#124 议题中,就开始讨论此话题,并得到了 Casey 的认可。
而 Issues#165 具体内容如下:
- Sondotpin:目前的公开发行,项目方 / 发行方不能提前预留 Runes 符文,这限制了项目方设计优秀通证经济模型的机会。
- Casey:请查看之前的 Issues#124。我正在考虑放宽这个要求,允许发行方在发行时以合理的方式安排符文,甚至超出参数的设定范围。如果这样设计,相关信息会在 Runes 符文的详情页做非常突出的展示。
- Sondotpin:是不是可以设计一个多次发行的机制,比如能有两轮「公开铭刻」Runes 符文,然后每一轮发行设定不同的参数?
- Casey:我并不倾向于这样的做法,因为 Runes 符文本质上并没有「管理者」。发行的权限不应该掌握在有特别权限的单一实体手上。但是你可以在发行符文的时候添加一个铭文,然后在这个铭文的基础上再发行新的符文,这样就可以实现两次发行的符文都是同一个资产。当然,你也可以采用预挖的方式,然后用其他的分配方式进行发行。
如果未来 CTV 的功能能够顺利启动,就不需要协议支持了,CTV 直接可以预先设定条件模板,达到条件后就可以做符合条件设置的空投和公开发行。
围绕 Casey 和 SonPin 的讨论,个人看法:
1.在发起项目的早期,预留部分 Token 确有必要
在早期,项目方想要实现业务的自举,需要有一定的 Token 储备去激励核心团队、凝聚社区。如果可以按照本次讨论去实现协议,是对「公开铭刻」的公平和全民参与价值的补充,可以让更多有价值基础项目方通过「公开铭刻」的方式参与到 Runes 生态中。
2.是否预留、如何预留,是将自证的手段交给发行方
事实上,Casey 曾多次在 Youtube 视频里直言,同质化通证 99.9% 都是骗局,大家也别冠冕堂皇的说自己要改变世界,坦率地承认这是一个充满赌博和投机的行业,以诚相待,对所有人都好。IT’S JUST FOR FUN!
是从 issue#124 到#165,可以看到 Casey 对同质化通证的使用场景有了更多认可。「公开铭刻」的方式勿需质疑,在此基础上进行拓展,比如增加预留机制,是将选择的权利、自证的手段交给发行方,也是防止劣币驱逐良币的好方法。
3.铭文 NFT 和符文 FT 将会有更多的创新空间
Casey 提出的铭文 NFT 和符文 FT 互相配合进行多轮次的发行机制设想,相当有趣。背景知识里我们说到,Ordinals 和 Runes 都是 Casey 设计的协议,应该算是两个平行关系协议,但是在 Github 上都做到 Ord 这个项目里,技术上不少交叉和配合,比如共用了同步区块这类底层逻辑。
当下热点 Runestone 和 Runecoin 等项目,也是铭文和符文互相组合创新。Runecoin 的玩儿法是最主流的铭文预挖矿,持有 Runecoin 发行的 RSIC 铭文,就会持续不断的挖出项目的符文,然后 4 月底 Runes 协议上线再分配 FT。期待未来有更多项目可以推陈出新,带来更新颖的玩儿法。
4.采用「公开铭刻」发行方式的 Runes 符文不存在所有权
Casey 原文中只表达了「Rune 不存在所有权」,但是笔者认为这应该是特指采用「公开铭刻」发行方式的 Runes 符文不存在所有权。SonPin 提出的两轮「公开铭刻」方案,就一定会有一个拥有极高权限的地址的地址来操作,这并不是 Crypto 加密领域希望看到的。
就像项目 Runecoin 在发完 21000 张 RSIC 铭文 NFT 后,很快就将父铭文打到了中本聪地址,相当于没有人能够再次使用,也就是通过技术手段承诺不做增发。这波操作本身就为其带来一大波好评,非常涨路人缘。
PS:什么是父铭文?因为在 BTC 做交互速度慢且 gas 高昂,所以当操作数量比较大的时候,为提高效率,一般会先设置一个父铭文,在父铭文的那一次交易里,直接批量处理多个子铭文,这样可以在交互的时候,节约区块链的存储空间和处理时间。
最后说一下 Casey 提到的CTV,即「Check Template Verify」。
CTV 是一个比特币提议的协议升级,旨在通过允许用户在创建交易时,指定未来交易的模板,从而增强比特币网络的智能合约和锁定功能。CTV 的激活将使得用户能够创建更复杂的交易类型,例如可信赖的空投和开放式蚀刻,而无需协议的显式支持。
这个CTV 提案增加了比特币网络的可编程性和灵活性,在这次讨论中提到,简单来说就是可以创建一个使用 UTXO 的解锁条件模板,有机会给 Runes 创造更多玩法。举个例子,通过「Runes 协议 +CTV」,可以让 10 个用户联合使用 CTV 技术,共同 Mint 符文,然后预设未来的一些比特币支付交易的承诺之类。
相关文章:

关于 Runes 协议及「公开铭刻」发行机制的拓展讨论
撰文:MiX 编辑:Faust,极客 web3 2024 年 3 月 2 日,Runes 生态基础设施项目 Rune alpha 的创始人,在 Github 的公开议题中,与 Runes 协议创始人 Casey 展开了讨论,双方对如何拓展 Runes 协议的…...

chkdsk修复会造成文件丢失吗?chkdsk数据丢失还能恢复吗
在Windows操作系统中,CHKDSK是一个强大的磁盘检查工具,它可以帮助我们诊断并修复硬盘的各种错误。然而,许多用户在运行CHKDSK之前都会担心一个问题:CHKDSK修复会造成文件丢失吗?如果不幸发生了数据丢失,CHK…...

Hypermesh2019快捷键大全
1、F系列 F* | ShiftF* F1 | 打开帮助文件 | color F2 | delete | temp nodes F3 | replace | edges F4 | distance | tran…...

CSS布局——Flexbox基础使用
基础概念 Flexbox布局的概念 Flexbox布局是一种布局的模式,用来在一个维度上为项目设置布局 容器 在HTML中大多数元素例如div、ul、main块元素,span、em、i行内元素都可以作为Flex容器,它的作用是开启一个Flex布局模式,你只需…...

Kubernetes(K8s):容器化应用的航空母舰
一、Kubernetes简介 Kubernetes(K8s)是一个开源的容器编排系统,它的出现就像是为容器化应用提供了一艘强大的航空母舰。在这艘母舰上,你的应用容器就像是一架架战斗机,Kubernetes负责指挥它们起飞、飞行、降落&#x…...

Java配置49-nginx 反向代理 sftp 服务器
1. 背景 后端服务需要通过部署在跳板机上的 nginx 访问一个外网的 SFTP 服务器。 2. 方法 nginx从 1.9.0 开始,新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等。 首先检查 nginx 版本信息及是否安装了 stream 模块。 进入 ngi…...

Qt添加VTK并绘制图形
文章目录 准备环境使用VS创建Qt Widget项目配置VTK依赖调试C/C链接器 添加vtk窗口测试代码 参考链接: VS2017配置QT环境(详细版)_vs2017 qt-CSDN博客 QT5VTK9.1最新配置方法_qt vtk-CSDN博客 VTK笔记-Qt5.12.11编译VTK9.0.3-QVTKOpenGLNativeWidget-CSDN博客 准…...

VsCode搭建Spring Boot项目环境
VsCode搭建Spring Boot项目环境 1、前提条件:配置Java环境 下载安装JDK配置环境变量 2、VsCode配置SpringBoot环境 安装扩展 配置Maven 找到Maven配置文件,进行打开settings.json,添加如下代码: "workbench.iconThem…...

(黑马出品_05)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
(黑马出品_05)SpringCloudRabbitMQDockerRedis搜索分布式 微服务技术分布式搜索 今日目标1.初识elasticsearch1.1.了解ES1.1.1.elasticsearch的作用1.1.2.ELK技术栈1.1.3.elasticsearch和lucene1.1.4.为什么不是其他搜索技…...

window mysql 安装出现的问题
1.安装到最后时,报错:authentication_string doesnt have a default value 解决办法: 1.不要关掉该页面,点击skip。 然后单击 back 回退到如下界面 2.去掉 Enable Strict Mode。 不要勾选 2. 最后一步:Start Servic…...

【3GPP】【核心网】【5G】5G核心网协议解析(二)(超详细)
5G UE 附着过程 UE AMF ----------------- 注册请求(Registration Request) ----------------------> <--------------- 鉴权请求(Authentication Request) ------…...

物联网带来的六大运营挑战
物联网现在被广泛认为是一种变革力量。根据Juniper Research的调查,到2020年底,将有385亿台设备连接到互联网,自2015年以来增长了285%。 但是随着更多的设备互连,故障的数量也会增加。例如,根据Juniper的数…...

【ETCD】简介安装常用操作---图文并茂详细讲解
目录 一 简介 1.1 etcd是什么 1.2. 特点 1.3. 使用场景 1.4 关键字 1.5 工作原理 二 安装 2.1 etcd安装前介绍 2.2 安装 2.3 启动 2.4 创建一个etcd服务 三 常用操作 一 简介 1.1 etcd是什么 etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建…...

第四篇【传奇开心果系列】Python的自动化办公库技术点案例示例:深度解读Pandas生物信息学领域应用
传奇开心果博文系列 系列博文目录Python的自动化办公库技术点案例示例系列 博文目录前言一、Pandas生物学数据操作应用介绍二、数据加载与清洗示例代码三、数据分析与统计示例代码四、数据可视化示例代码五、基因组数据分析示例代码六、蛋白质数据分析示例代码七、生物医学图像…...

Elasticsearch:机器学习与人工智能 - 理解差异
作者:来自 Elastic Aditya Tripathi, Jessica Taylor 长期以来,人工智能几乎完全是科幻小说作家的玩物,人类将技术推得太远,以至于它变得活跃起来 —— 正如好莱坞让我们相信的那样 —— 开始造成严重破坏。 令人愉快的东西&#…...

智引未来:2024年科技革新引领工业界变革与机遇
✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…...

自动化运维工具----Ansible playbook详解
一.Ansible playbook简介 1.playbook是ansible用于配置,部署,和管理被节点的剧本 2.通过playbook的详细描述,执行其中的一些列tasks,可以让远端的主机达到预期的状态。playbook就像ansible控制器给被控节点列出的一系列to-do-lis…...

【element-ui】el-table表格高亮选中
highlight-current-row 是否要高亮当前行 <el-tableref"singleTable"highlight-current-rowcurrent-change"handleCurrentChange"></el-table>修改高亮行的颜色 .current-row {background-color: pink; }由current-change事件来管理选中时触发…...

构建MySQL数据库的高可用与高容错系统:关键策略与最佳实践
简介 在今天的数据驱动时代,数据库的高可用性(High Availability, HA)和高容错性(High Fault Tolerance)不再是可选项,而是每一个企业和应用都必须考虑的核心特性。特别是对于MySQL这样广泛使用的数据库系统,如何确保它能在各种故障面前保持持续可用,并且能迅速从故障…...

简析内部审计数字化转型的方法和路径【小落送书(第6期)】
个人名片: 🐼作者简介:一名大三在校生,喜欢AI编程🎋 🐻❄️个人主页🥇:落798. 🐼个人WeChat:hmmwx53 🕊️系列专栏:🖼️…...

mysql和oracle数据库的区别与联系(值得收藏)
1、mysql和oracle都是关系型数据库。 mysql默认端口:3306 默认用户root oracle默认端口 1521 默认用户system mysql的安装配置和卸载简单,oracle比较麻烦,严重的可能要你重做系统。 oracle在命令行用命令登陆:sqlplus---然后录…...

vulhub中Wordpress 4.6 任意命令执行漏洞复现
由于Mysql初始化需要一段时间,所以请等待。成功运行后,访问http://your-ip:8080/打开站点,初始化管理员用户名和密码后即可使用(数据库等已经配置好,且不会自动更新)。 发送如下数据包,可见/tmp…...

ETCD分布式缓存
一、ETCD简介 ETCD是一个高度可用的分布式键值存储系统,主要用于共享配置和服务发现。它基于Go语言实现,内部使用Raft一致性算法处理日志复制,保证多节点数据的强一致性。 ETCD的目标是构建一个高可用的分布式键值数据库,用于存…...

【Linux】iftop命令详解
目录 一、iftop简介 二、安装iftop命令 2.1 命令查看测试环境系统信息 2.2 查看iftop版本与命令帮助 三、iftop的基本使用 3.1 直接使用iftop命令 3.2 iftop的显示说明 3.3 指定监控某块网卡 3.4 显示某个网段进出封包流量 3.5 按照流量排序 3.6 过滤显示连接 3.7 …...

【蓝桥杯】Excel地址
一.题目描述 二.问题分析 类似于进制转换 //Excel地址 #include <iostream> #include <stack> using namespace std;//const int N1e22; long long n; stack <char> s;int main(int argc, const char * argv[]) {ios::sync_with_stdio(0);cin.tie(0);cout.…...

Spring Boot 生成与解析Jwt
Spring Boot 生成与解析Jwt Maven依赖 <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version> </dependency>生成&解析 package yang;import io.jsonwebtoken.Claims…...

安卓Java面试题11-20
🔥 11、Android本身的API并未声明会抛出异常,则其在运行时有无可能抛出runtime异常,如何解决?🔥 会,比如nullpointerException。我遇到过,比如textview.setText()时,textview没有初始化。会导致程序无法正常运行出现forceclose。打开控制台查看logcat信息找出异常信…...

SSL 证书,了解一下常识
公司的网站、应用怎么才能保证在互联网上安全运行,不被攻击、盗取数据呢? 创业必经之路,一步一步走就对了,可能没赶上红利期,但不做就等于0。 概述 SSL 证书(SSL Certificates)又称数字证书&am…...

react tab选项卡吸顶实现
react tab选项卡吸顶实现,直接上代码(代码有注释) tsx代码 /* eslint-disable react-hooks/exhaustive-deps */ import React, { useEffect, useState } from "react"; import DocumentTitle from react-document-title import s…...

【数据结构】二、线性表:6.顺序表和链表的对比不同(从数据结构三要素讨论:逻辑结构、物理结构(存储结构)、数据运算(基本操作))
文章目录 6.对比:顺序表&链表6.1逻辑结构6.2物理结构(存储结构)6.2.1顺序表6.2.2链表 6.3数据运算(基本操作)6.3.1初始化6.3.2销毁表6.3.3插入、删除6.3.4查找 6.对比:顺序表&链表 6.1逻辑结构 顺…...