Satoshi、略して sat は ビットコイン の一億分の一です。1 sat = 0.00000001 BTC で、Bitcoin の基盤層の取引に記録される最小の価値単位です。別の暗号資産ではありません。同じ長さをメートルやセンチメートルで表すように、同じ金額を BTC または整数個の satoshi で表せます。
アンナは 25000 sat を支払う必要がありますが、ウォレットは 0.00025 BTC と表示します。違うお金でも有利な交換レートでもなく、同じ金額の二つの書き方です。1 BTC = 100000000 sat なので、0.001 BTC = 100000 sat でもあります。日常の少額では、小数点の後に続くゼロを数えるより sats の方が読みやすいことがあります。円やドルに対する ビットコイン の価格は変わっても、BTC と sat の換算関係は変わりません。 [1] [2]
アンナが設定で sats を選んでも、ビットコイン は移動せず、新しいコインも生まれません。画面の数字と単位だけが変わります。sat は単位の略記で、sats はよく使われる複数形です。名前は Bitcoin の創作者 Satoshi Nakamoto にちなみ、別途購入する資産を指すものではありません。小さな単位は少額を表しやすくしますが、一定の購買力や利益を保証しません。 [2]
アンナのウォレットが以前受け取った 50000 sat を使うとします。受取人へ 25000 sat を送り、アンナへ 24000 sat をお釣りとして戻し、1000 sat をその取引をブロックに入れるマイナーへの手数料として残します。50000 = 25000 + 24000 + 1000 で計算は合います。アンナがこの支払いで使ったのは 26000 sat で、元の入金全額ではありません。これは説明用の例で、一般的または推奨される手数料ではありません。承認前に受取人の金額と手数料を別々に確認してください。 [8]
ウォレットには手数料とともに Fee Rate、つまり sat/vB 単位の料率が出ることがあります。手数料計算用の取引サイズ単位である仮想バイト当たり、何 satoshi かを示します。100 vB の取引で 10 sat/vB なら、手数料は 1000 sat です。送金額に対する割合ではありません。同額の二つの支払いでも、一方がより多くの過去の入金をまとめるなどすればサイズが違います。結果はウォレットの最終確認画面で確かめてください。 [7] [8]
数字だけでは不十分です。sats の入力欄に 25000 と入れるのと BTC の欄に入れるのとでは、意味がまったく違います。支払い用 QR コードを読み取ったら、署名前にアドレス、ネットワーク、金額、手数料を確認します。署名は資金を使うためのデジタルな承認です。ウォレットは、ビットコインを管理するための秘密の数値である秘密鍵を使って署名を作ります。支払いリンクの仕様である BIP 321 では支払いリンクの amount パラメーターに小数の BTC を使い、区切りは点です。amount=0.00025 は 25000 sat を意味します。ウォレットが sats や地域に応じた小数のコンマで表示しても、この規則は同じです。リンクを手で直す必要はなく、確認画面の結果が正しいことが重要です。 [3]
ネットワークに一つずつの satoshi を表す小さなファイルがあるわけではありません。あるのは金額と使用条件を持つトランザクションの出力です。未使用の出力を UTXO と呼びます。ウォレットはこうした入金を複数持ち、その値を合計して残高を表示できます。支払い時は選んだ出力を丸ごと使い、受取人と必要に応じたお釣り用の新しい出力を作ります。Satoshi は値を数える単位であり、ウォレット内の独立した物ではありません。 [2]
金額の精度と、実用的な支払額は別の問題です。出力に 1 sat を記録することはできます。しかし、取引を検証して中継するコンピューターであるノードは、小さすぎる出力を作る取引の中継を拒むことがあります。Dust はノードの取引中継ルールと、将来その出力を使う際の推定費用に関わります。境界値は出力の種類やルールの設定によっても変わります。すべての有効な支払いに同一の最低金額を求める普遍的ルールではありません。すでにブロックに入った小さな出力でも、その価値より使用時の費用が高くなることがあります。 [7]
Lightning Network は支払いチャネルを使い、参加者がチャネルに入れた資金の配分を更新します。そのため、すべての支払いを個別に Bitcoin ブロックへ記録する必要はありません。内部計算では millisatoshi、略して msat も使い、1 sat = 1000 msat です。たとえば手数料を細かく計算するのに役立ちます。しかし基盤層に satoshi 未満の出力が生まれるわけではありません。チャネルを閉じるときは Lightning の規則に従って整数個の satoshi に換算し、小さすぎる出力の一部を省きます。精密な内部会計と最終的な精算は別の話です。 [6] [5]
1 BTC を一億個に分けても ビットコイン の量は増えません。メートルをセンチメートルに換算しても机が長くならないのと同じです。新しい ビットコイン はブロック補助金、つまりブロックに伴う新規発行の規則に従って生まれます。Halving ではこの補助金を整数個の satoshi で半分にし、端数を切り捨て、遠い将来にはゼロになります。技術上の定数 MAX_MONEY は金額範囲の検査に使われます。それだけで正確に 2100 万 BTC が発行され、使用可能になると示しているわけではありません。失われた鍵や、使用不能または請求されなかった一部の報酬も、利用できる量を減らします。 [1] [8]
Bitcoin Core は金額に CAmount という 64 ビット整数型を使い、定数 COIN を 100000000 と定めています。そのため 0.00025 BTC は内部では整数 25000 として扱います。これは一般的な二進浮動小数点計算、floating point の誤差を避けるのに役立ちます。利用者にとっての教訓は単純で、単位と正確な金額を確認することです。計算機を作ったりソフトウェアで支払いを処理したりするなら、概算結果を後から丸めるのではなく、整数個の satoshi または厳密な十進演算を使ってください。 [1]
理解を深めるには、この項目とあわせて次もお読みください Bitcoin, 21 Million, Unit of Account, Lightning Network, UTXO, Transaction Fees. 次の項目からも参照されています Bitcoin Pizza Day, Chaumian eCash, Blind Signature, OP_CHECKTEMPLATEVERIFY.