ルーン
ルーンはビットコイントランザクションでビットコインネイティブのデジタルコモディティをエッチング、ミント、転送することを可能にします。
すべての碑文がユニークであるのに対し、ルーンの各単位は同じです。これらは交換可能なトークンであり、様々な目的に適しています。
ルーンストーン
ルーンストーンと呼ばれるルーンプロトコルメッセージは、ビットコイントランザクションアウトプットに格納されます。
ルーンストーンアウトプットのスクリプト pubkey は OP_RETURN で始まり、続いて OP_13、その後ゼロ個以上のデータプッシュが続きます。これらのデータプッシュは連結され、128ビット整数のシーケンスにデコードされ、最終的にルーンストーンに解析されます。
トランザクションには最大1つのルーンストーンが含まれる可能性があります。
ルーンストーンは新しいルーンをエッチング、既存のルーンをミント、またはトランザクションのインプットからアウトプットへルーンを転送することができます。
トランザクションアウトプットには任意の数のルーンの残高を保持することができます。
ルーンはIDによって識別されます。IDはルーンがエッチングされたブロックと、そのブロック内でのエッチングトランザクションのインデックスから構成され、テキストでは BLOCK:TX として表現されます。たとえば、500番目のブロックの20番目のトランザクションでエッチングされたルーンのIDは 500:20 です。
エッチング
ルーンはエッチングされることで存在します。エッチングはルーンを作成し、そのプロパティを設定します。一度設定されたこれらのプロパティは、エッチングした者であっても不変です。
Name
名前はAからZの文字から構成され、1文字から26文字の長さです。たとえば、UNCOMMONGOODS はルーン名です。
名前には可読性を高めるために、ブリットで表現されるスペーサーを含めることができます。UNCOMMONGOODS は UNCOMMON•GOODS としてエッチングされる場合があります。
名前の一意性はスペーサーに依存しません。したがって、別のスペーサーを持つ場合であっても、既存のルーンと同じ文字の配列でルーンをエッチングすることはできません。
スペーサーは2つの文字の間にのみ配置できます。また、スペーサーは文字数にカウントされません。
分割可能性
ルーンの分割可能性とは、そのルーンが原子単位にどれだけ細かく分割できるかを示します。分割可能性は、ルーン量における小数点以下の許可される桁数として表されます。分割可能性が0のルーンは分割できません。分割可能性が1のルーンの単位は10のサブユニットに分割でき、分割可能性が2のルーンは100に分割でき、以下同様に続きます。
シンボル
ルーンの通貨シンボルは単一のUnicodeコードポイントです。例えば$、⧉、または🧿などで、そのルーンの数量の後に表示されます。
分割可能性が2でシンボルが🧿のルーンの101原子単位は1.01 🧿として表示されます。
ルーンにシンボルがない場合は、スカラベとも呼ばれる汎用通貨記号¤を使用する必要があります。
プリマイン
ルーンのエッチャー(作成者)は、オプションでエッチされるルーンの単位を自分自身に割り当てることができます。この割り当てはプリマインと呼ばれます。
条件
ルーンはオープンミントを持つことができ、誰でもそのルーンの単位を自分のために作成し割り当てることができます。オープンミントは、エッチング時に設定される条件に従います。
ミントは、ミントのすべての条件が満たされている間はオープンし、いずれかが満たされなくなるとクローズします。例えば、ミントは開始ブロック高、終了ブロック高、上限に制限される場合があり、開始ブロック高から終了ブロック高の間、または上限に達するまで、どちらか早い方まで開いています。
上限
ルーンがミントできる回数がその上限です。上限に達すると、ミントは閉じられます。
金額
各ミントトランザクションは、ルーンの固定量の新しい単位を作成します。
開始ブロック高
指定された開始ブロック高のブロックからミントが開始されます。
終了ブロック高
指定された終了ブロック高のブロック以降では、ルーンをミントすることはできません。
開始オフセット
ミントは、開始オフセット+ルーンがエッチされたブロックの高さに等しい高さのブロックから開始されます。
終了オフセット
ルーンは、終了オフセット+ルーンがエッチされたブロックの高さに等しい高さのブロック以降ではミントすることはできません。
ミンティング
ルーンのミントがオープンしている間、誰でもミントの条件に従って、そのルーンの固定量の新しい単位を作成するミントトランザクションを作成することができます。
転送
トランザクションの入力にルーンが含まれるか、プリマインやミントによって新しいルーンが作成される場合、それらのルーンはそのトランザクションの出力に転送されます。トランザクションのルーンストーンは、入力ルーンが出力に転送される方法を変更することがあります。
命令
ルーンストーンには任意の数の命令を含めることができます。命令はルーンID、金額、出力番号で構成されます。命令は順番に処理され、未割り当てのルーンを出力に割り当てます。
ポインタ
すべての命令が処理された後、残った未割り当てのルーンは、トランザクションの最初の非OP_RETURN出力に転送されます。ルーンストーンには、オプションで代替のデフォルト出力を指定するポインターを含めることができます。
バーン
ルーンは、命令やポインターでOP_RETURN出力に転送することでバーン(無効化)することができます。
空墓(セノタフ)
ルーンストーンは、ルーンストーンOP_RETURN内の非プッシュデータオプコード、無効なvarint、または認識されないルーンストーンフィールドなど、いくつかの理由で形式が不正になることがあります。
形式不正のルーンストーンは空墓(cenotaphs)と呼ばれます。
空墓を持つトランザクションに入力されるルーンはバーンされます。空墓を持つトランザクションでエッチされるルーンはミント不可に設定されます。空墓を持つトランザクションのミントはミント上限にカウントされますが、ミントされたルーンはバーンされます。
空墓はアップグレードメカニズムであり、ルーンストーンにルーンの作成と転送方法を変更する新しいセマンティクスを与えることを可能にします。アップグレードしていないクライアントがそれらのルーンをバーンされたものとして見るため、アップグレードしていないクライアントを惑わせることはありません。