用語集 / トランザクションと手数料
重量単位
別名はWUです。
- 重量単位とは?
- 重量単位は、ビットコインのブロックサイズ上限においてバイトに代わって導入された計算単位です。署名データを4分の1の価格で計上することで、SegWitがハードフォークなしに容量を増やせるようにしました。
BIP-141で規定されています。
旧ノードはブロックのストリップ後のバイト数を数え、1,000,000を超えるものを拒否しますが、新しいノードはweightを数え、4,000,000を超えるものを拒否します。この2つのルールは同じブロックによって満たされます。これが、Segregated Witnessが2017年8月のブロック481,824で有効化されたときにソフトフォークとなった仕組みです。ビットコインを動かすために支払うものはすべて、この単位、またはその4分の1の単位で価格が付けられています。
仕組み
重量単位が存在するのは、異なるソフトウェアを実行するノードが、同じバイトを見ていなくても、ブロックがいつ満杯になるかについて一致しなければならないからです。
一度もアップグレードしていないノードには、ウィットネスデータがまったく送られません。そのノードはストリップ後のブロックを見て、これまで常に適用してきた上限である1,000,000バイトを適用します。アップグレード済みのノードは全体を再構成し、4,000,000weightの上限を適用します。ウィットネス以外のバイト1つにつき4単位、ウィットネスバイト1つにつき1単位を課金すれば、この2つの判定が食い違うことは決してありません。weight予算内に収まるブロックは、ストリップ後には必ず1メガバイト未満にもなるからです。古いソフトウェアがすでに受け入れているものを厳しくするだけのルールこそが、まさにソフトフォークであり、この価格設定によって容量の増加が1つのソフトフォークの中に収まったのです。
4分の1という選択は恣意的なものではありませんでした。ウィットネスバイトは署名であり、署名は、支払いが十分に埋もれた後にノードが破棄できるトランザクションの部分です。署名がUTXOセットに入ることは決してなく、UTXOセットは、検証を行うすべてのマシンが永久に手元に保持しなければならない唯一の構造です。署名を低く価格設定することで、ウォレットは高コストなこのセットの増加がより緩やかになる形式へと導かれ、責任ある選択が同時に安価な選択にもなるようにすることで、それを実現しました。
同じ尺度で運用される2つ目の予算は、はるかに注目度が低いものです。BIP141はブロックあたりの署名オペレーション単位を80,000に制限し、レガシーのオペレーションは4倍に数えられるため、旧式のマルチシグで埋め尽くされたブロックは、容量を使い果たす前に署名検証を使い果たす可能性があります。
したがって容量は、単一の数値ではなく範囲です。純粋にレガシーの支払いだけのブロックは依然として1,000,000バイトを超えられませんが、ウィットネスを多く含むブロックは4メガバイトに近づくことができ、ほとんどのブロックは混在しているため1から2の間に収まります。
どこで見られるか
重量単位はすべてのブロックエクスプローラーでブロックの横に表示され、マイニングプールが実際に最適化の基準とする数値です。
最もはっきりと現れるのは、2017年8月に誤りとなったある言い回しの中です。ビットコインには1メガバイトのブロック上限はありません。400万単位の予算があり、エクスプローラーで見る充足率のバーはその予算に対して測られています。プールは、最も高い手数料を払う候補で予算を満たし、その一部をcoinbaseトランザクション用に取り置いてテンプレートを組み立てるため、マイニングされたブロックは通常、上限ちょうどではなくわずかに下に収まります。
重量単位はまた、ビットコインで最も騒がしい議論の隠れた主題でもあります。ウィットネス空間にデータを保存するコストは、同じバイトを他のどこかに保存するコストの4分の1であり、まさにそれがinscriptionがそこに置かれる理由です。そのデータがチェーン上にあるべきかどうかの議論は、騒音の下では、BIP141が2015年に書かれたときに選ばれた比率についての議論なのです。
購入して保有する人にとって、この単位との関わりは間接的なものです。ウォレットにweightを入力することは決してありませんが、旧形式のコインを使うほうが現代のコインを使うより高くつくのは、この単位のためです。
重量単位vsブロックの重量
重量単位は物差しであり、ブロックの重量はそれで取った1つの測定値です。トランザクションにもweightがあり、ブロックの数値はそのトランザクションの合計にヘッダーとカウンターを加えたものなので、この2つの語は交換可能ではありません。誰かが4,000,000という数値をトランザクションあたりの許容量と読むと、混乱は高くつきます。そうではありません。リレーポリシーは、単一の標準的なトランザクションがブロックの上限に近づくはるか前にそれを拒否し、コンセンサスはブロックのみを測定します。