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

BTC系列-系统学习铭文(二)-序数理论

Ordinals的BIP: https://github.com/ordinals/ord/blob/master/bip.mediawiki

序数理论概述

序数是一种比特币的编号方案,允许跟踪和转移单个聪。这些数字被称作序号。比特币是按照它们被挖掘的顺序编号的,并从交易输入转移到交易输出(遵循先进先出原则)。编号方案和传输方案都依赖于_顺序_,编号方案依赖于比特币被挖掘的_顺序_,而传输方案依赖于交易输入和输出的_顺序_。因此得名,序数(Ordinals)

编号方案-不同的表示方式

  • 整数符号:2099994106992659 这个序号是根据挖掘聪的顺序分配。
  • 十进制符号: 3891094.16797 第一个数字是挖掘聪的区块高度,第二个数字是区块内聪的偏移量。
  • 度数符号: 3°111094′214″16797‴ 按聪的稀有性表示一个序数。
  • 百分数: 99.99971949060254% . 以百分比表示聪在比特币供应中的位置
  • 名字: satoshi. 一种使用字母az对序号进行编码的方法 (随着聪被开采的时间越长,名字越短, 最后一个被挖掘的聪的名字会是"a")

整数表示法

按照挖矿的顺序分配给聪。第一个区块的首聪序数为0,第二个聪的序数为1,第一个区块的最后一个聪的序数为4,999,999,999。

度数表示法

稀缺度等级
  • 普通: 指所有不是其区块第一个聪的聪
  • 非普通: 每个区块的第一个聪
  • 罕见: 每一个难度调整周期的第一个聪
  • 史诗: 每个减半周期的第一个聪
  • 传奇: 每一个循环周期的第一个聪
  • 神话: 创世区块的第一个聪
稀有聪的总供给量
  • 普通: 2千100万亿
  • 非普通: 6,929,999
  • 罕见: 3437
  • 史诗: 32
  • 传奇: 5
  • 神话: 1
度数表示
A°B′C″D‴
│ │ │ ╰─ Index of sat in the block
│ │ ╰─── Index of block in difficulty adjustment period
│ ╰───── Index of block in halving epoch
╰─────── Cycle, numbered starting from 0

来看一颗神话级别的聪:

0°0′0″0‴
│ │ │ ╰─ First sat in block
│ │ ╰─── First block in difficulty adjustment period
│ ╰───── First block in halving epoch
╰─────── First cycle

一颗不普通的聪:

1°1′1″0‴
│ │ │ ╰─ First sat in block
│ │ ╰─── Not first block in difficulty adjustment period
│ ╰───── Not first block in halving epoch
╰─────── Second cycle

如果区块偏移量为零,则可以省略

1°1′1″
│ │ ╰─ Not first block in difficulty adjustment period
│ ╰─── Not first block in halving epoch
╰───── Second cycle

转让方案

对号入座

聪按照先进先出的顺序进行转账。 将交易的输入视为聪列表,将输出视为插槽slot列表,等待接收聪。 要将输入聪分配给插槽,按顺序检查输入中的每个聪,并将每个聪分配给输出中的每一个可用插槽。

让我们想象一个具有三个输入和两个输出的交易。 输入在箭头的左边,输出在右边,现在,我们用每个输入包含的聪序数标记同一笔交易,并为每个输出插槽标记问号。 序数号很大,所以我们用字母来表示它们:

[a b] [c] [d e f] → [? ? ? ?] [? ?]

要弄清楚哪个聪到哪个输出,请按顺序检查输入聪并将每个聪分配给一个问号:

[a b] [c] [d e f] → [a b c d] [e f]

交易费用

比如费用是两个聪。收费交易在输入中发送的聪得多于输出接收的聪,因此为了使我们的交易成为支付费用的交易,我们将删除第二个输出:

[a b] [c] [d e f] → [a b c d]

聪e和 f现在在输出中无处可去

所以他们作为“费用”去到挖这个区块的矿工那里。交易支付的费用被视为对Coinbase交易的额外输入,并按照其对应的交易在区块中的顺序进行排序。该区块的Coinbase交易可能是这样的: (SUBSIDY表示区块奖励)

[SUBSIDY] [e f] → [SUBSIDY e f]

往期精彩回顾:
区块链知识系列
密码学系列
零知识证明系列
共识系列
公链调研系列
BTC系列
以太坊系列
EOS系列
Filecoin系列
联盟链系列
Fabric系列
智能合约系列
Token系列

相关文章:

  • 「实用推荐」如何为桌面 移动跨平台应用选择UI框架/APP架构?
  • 数据库——实验12 数据库备份和还原
  • 网络通信(一)
  • Github 2024-05-24 Java开源项目日报 Top10
  • 缪尔赛思又来到了你的面前(哈希)
  • windows、mac、linux中node版本的切换(nvm管理工具),解决项目兼容问题 node版本管理、国内npm源镜像切换
  • python:pycharm虚拟解释器报错环境位置目录为空
  • 人生苦短,我学python之数据类型(下)
  • “高考钉子户”唐尚珺决定再战2024年高考
  • Proteus仿真小技巧(隔空连线)
  • C语言:有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中
  • 揭秘Python的魔法:装饰器的超能力大揭秘 ‍♂️✨
  • AI视频智能分析技术赋能营业厅:智慧化管理与效率新突破
  • 【SpringCloud】Spring Cloud基本介绍
  • python爬虫-爬小说
  • 5、React组件事件详解
  • angular学习第一篇-----环境搭建
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • ES6语法详解(一)
  • express如何解决request entity too large问题
  • Javascript弹出层-初探
  • JavaScript设计模式之工厂模式
  • k8s 面向应用开发者的基础命令
  • React系列之 Redux 架构模式
  • Twitter赢在开放,三年创造奇迹
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 阿里云前端周刊 - 第 26 期
  • 创建一个Struts2项目maven 方式
  • 大主子表关联的性能优化方法
  • 面试总结JavaScript篇
  • 前端代码风格自动化系列(二)之Commitlint
  • 前端攻城师
  • 前嗅ForeSpider中数据浏览界面介绍
  • 我建了一个叫Hello World的项目
  • 用element的upload组件实现多图片上传和压缩
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 翻译 | The Principles of OOD 面向对象设计原则
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • (12)目标检测_SSD基于pytorch搭建代码
  • (C语言)逆序输出字符串
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第6节 (嵌套的Finally代码块)
  • (WSI分类)WSI分类文献小综述 2024
  • (ZT)出版业改革:该死的死,该生的生
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (一)基于IDEA的JAVA基础1
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)mysql使用Navicat 导出和导入数据库
  • (转)scrum常见工具列表
  • .bat文件调用java类的main方法
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET 分布式技术比较
  • .net 验证控件和javaScript的冲突问题
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • /run/containerd/containerd.sock connect: connection refused