为什么铭文是546聪?
September 24th, 2023

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

1,什么是粉尘 Dust的概念:

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

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

dust = (input_vsize + output_size) × 3 sat/vB

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,还有粉尘攻击,你应当也有所了解。

Subscribe to DrJingle 金狗博士
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.
More from DrJingle 金狗博士

Skeleton

Skeleton

Skeleton