# 为什么铭文是546聪？


By [DrJingle 金狗博士](https://paragraph.com/@fahayek) · 2023-09-24

---

很多人在Ordicord里问铭文为什么是546聪。这要从Dust粉尘这个概念说起。

**1，什么是粉尘 Dust的概念：**

在加密货币中，Dust 粉尘往往是指极小金额存在的交易，就像粉尘一样，他们的价值如此微小，以至于他们的手续费可能超过其自身价值。Dust非常的形象，就像现在地上的一分钱。

BitcoinCore源码里，Dust被定义为转账输出的价值小于网络上进行该转账的费用。这个阀值，往往是基于dustRelayFee 粉尘转播费来决定。如果要转账的比特币数量少于转账所需的手续费（基于"dustRelayFee"计算），那么这笔交易就被视为"dust"。

dust = (input\_vsize + output\_size) × 3 sat/vB

![](https://storage.googleapis.com/papyrus_images/d2bd3ed8fceb184d43648098c2333cdafc3d7c3d15e8d04ba03cf508b2c10779.webp)

**2，铭文大小的计算**

P2PKH 交易输入需要148字节，输出大约需要34字节的空间，因此总提大小为182字节：那么一个可支配的交易输出少于182\*dustRelayFee/1000（以聪计），那么就可以被定义为dust。以默认费率3000聪/kvB来算， 即 182 X 3 = 546 sats 由数据大小和给定默认费率得出的值

对于（P2WPKH）的交易输出，通常需要31字节的空间，并且至少需要67字节的输入支持才能消费出去：因此，如果一个可支配的交易输出少于98\*dustRelayFee/1000（以聪计），那么这个输出就会被定义为dust。 即 98 X 3 = 294 Sats

按照同样公式，计算得出 P2SH的粉尘上限是540Sats P2WSH and P2TR 则是330 Sats。 因此Bitcoin Core在设计的时候，为了防止区块链被大量的低价值交易塞满，从而影响整个网络的效率，就把上述计算的理论值作为一个判断条件。如果低于粉尘值，该交易就不会被bitcoin core以及其节点所接受。

Ordinals协议最早是10000个Sats来铸造铭文，后来通过postage命令则可以指定铭文大小。而代打工具unisats以及idclub等，则默认以546聪作为铭文大小，以节约铭文所使用的utxo，取得最佳性价比。 当下也有很多讨论是否应该解除粉尘限制，以及粉尘攻击 Dust Attack，有需要下回再聊。

**3，小结**

1，Dust是指极小金额的加密货币；

2，比特币上的Dust阀值dustRelayFee，是在3sat/vB假定条件下人为计算的值，546是这其中最大的值；

3，低于阀值的交易会被bitcoin core和节点拒绝；

4，机制设计目的为了保证网络效率；

5，还有粉尘攻击，你应当也有所了解。

![](https://storage.googleapis.com/papyrus_images/bc148fd6465c580be3538606fd55a3924b487bc4c3ccabbd8ca50c88e6df3468.png)

---

*Originally published on [DrJingle 金狗博士](https://paragraph.com/@fahayek/546)*
