From 49dc9aa28768ac3b63ee1c8cf21f08e6df147c0b Mon Sep 17 00:00:00 2001 From: Casey Rodarmor Date: Sun, 20 Feb 2022 19:49:51 -0800 Subject: [PATCH 1/2] Describe dust output avoidance workaround --- bip.mediawiki | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/bip.mediawiki b/bip.mediawiki index 726fb94e8e..1e93b512e1 100644 --- a/bip.mediawiki +++ b/bip.mediawiki @@ -107,6 +107,14 @@ Ordinals are fairly assigned. They are not premined, and are assigned proportion Ordinals are as granular as possible, as bitcoin is not capable of tracking ownership of sub-satoshi values. +=== Transfer and the Dust Limit === + +Any ordinal transfer can be accomplished in a single transaction, but the resulting transaction may contain outputs below the dust limit, and thus be non-standard and difficult to get included in a block. Consider a scenario where Alice owns an output containing the range of ordinals [0,10], the current dust limit is 5 satoshis, and Alice wishes to send send ordinals 4° and 6° to Bob, but retain ordinal 5°. Alice could construct a transaction with three outputs of size 5, 1, and 5, containing ordinals [0,4], 5, and [6,10]. The second output is under the dust limit, and so such a transaction would be non-standard. + +This transfer, and indeed any transfer, can be accomplished by breaking the transfer into multiple transactions, with each transaction performing one or more splits and merging in padding outputs as needed. + +Alice could perform the desired transfer in two transactions. The first transaction would send ordinals [0,4] to Bob, and return as change ordinals [5,10] to Alice. The second transaction would take as inputs an output of at least 4 satoshis, the change input, and an additional input of at least one satoshi; and create an outputs of size 5 to Bob's address, and the remainder as change. Both transactions avoid creating any non-standard outputs, but still accomplish the same desired transfer of ordinals. + === Objections === ''Privacy: Ordinal numbers are public and thus reduce user privacy.'' @@ -157,7 +165,7 @@ Since ordinals are borne by outputs, they can be encumbered by covenants. [https ==== The Lightning Network ==== -The Lightning Network cannot be used to selectively transfer individual non-fungable ordinals, however it can be used to transfer arbitrary amounts of fungible ordinals. Channels can be created with inputs whose ordinals are all colored coins of the same type, for example colored coins honored for redemption by a stablecoin issuer. These channels can be used to conduct instant, low-fee USD-denominated off-chain payments, and would require only modest changes to existing Lightning Network nodes. +The Lightning Network cannot be used to selectively transfer individual non-fungible ordinals, however it can be used to transfer arbitrary amounts of fungible ordinals. Channels can be created with inputs whose ordinals are all colored coins of the same type, for example colored coins honored for redemption by a stablecoin issuer. These channels can be used to conduct instant, low-fee USD-denominated off-chain payments, and would require only modest changes to existing Lightning Network nodes. On channel close, fees would have to be paid by child-pays-for-parent, to avoid paying stablecoin ordinals as fees. From fc848c2422759af5ae8698c5fcaf69da40e9d73e Mon Sep 17 00:00:00 2001 From: Casey Rodarmor Date: Sun, 20 Feb 2022 19:54:30 -0800 Subject: [PATCH 2/2] To wit --- bip.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip.mediawiki b/bip.mediawiki index 1e93b512e1..6d5118b1e7 100644 --- a/bip.mediawiki +++ b/bip.mediawiki @@ -113,7 +113,7 @@ Any ordinal transfer can be accomplished in a single transaction, but the result This transfer, and indeed any transfer, can be accomplished by breaking the transfer into multiple transactions, with each transaction performing one or more splits and merging in padding outputs as needed. -Alice could perform the desired transfer in two transactions. The first transaction would send ordinals [0,4] to Bob, and return as change ordinals [5,10] to Alice. The second transaction would take as inputs an output of at least 4 satoshis, the change input, and an additional input of at least one satoshi; and create an outputs of size 5 to Bob's address, and the remainder as change. Both transactions avoid creating any non-standard outputs, but still accomplish the same desired transfer of ordinals. +To wit, Alice could perform the desired transfer in two transactions. The first transaction would send ordinals [0,4] to Bob, and return as change ordinals [5,10] to Alice. The second transaction would take as inputs an output of at least 4 satoshis, the change input, and an additional input of at least one satoshi; and create an output of size 5 to Bob's address, and the remainder as a change output. Both transactions avoid creating any non-standard outputs, but still accomplish the same desired transfer of ordinals. === Objections ===