第6章 · オンチェーン取引では何が起こるのか
確認ボタンを押した後の十数秒間に、何が起きているのでしょうか?
- 練習する能力
- Onchain LiteracyProtocol Literacy
- 実践
- テストネットで送金し、保留中、ブロック収録済み、承認済みの 3 状態を画像で記録して、それぞれの所要時間を書く。
- AI Lab
- 取引ハッシュを AI に渡して各フィールドを説明させ、自分でエクスプローラー上の全フィールドを照合する。
現実の問題
確認ボタンを押しました。
画面で読み込みの輪が回ります。3秒、10秒。やがて「送信済み」に変わり、その下に小さく承認待ち 1/12と表示されました。
取引番号を相手に送ると、「まだ届いていない」と言われます。
しばらくすると3/12になりました。「こちらでは入金されているけれど、取引所からはまだ待つように言われている」と相手は言います。
結局、このお金は届いたのでしょうか?
見た目より複雑な問題です。同じチェーンでも、異なるルールがたくさんあります。
- 1承認でよいサービスもあれば、30承認を求めるサービスもあります。
- 同じサービスでも、100元の入金と大口入金では必要な承認数が異なることがあります。
- 承認数を表示せず、「完了」とだけ表示するチェーンもあります。
- 画面には「成功」と出たのにお金は届かず、しかも手数料は引かれることもあります。
初心者が最も戸惑うのは最後の点です。失敗したのに、なぜお金を取られるのでしょうか?
第1章で、入金の表示と決済の完了は別だと説明しました。この章ではその間をすべて分解します。確認ボタンを押してから、資金の移動が本当に覆らなくなるまでに何段階あるのか、それぞれ何が起こり得るのか、どこまで進めば安心してよいのかを見ていきます。
ここは前の5章が合流する場所でもあります。台帳(第2章)、合意(第3章)、順序付けと仕事量(第4章)、署名と鍵(第5章)を一緒に使います。
思考実験
第5章の村の入口にある壁へ戻り、第4章のようにページを次々につなげる仕組みを加えましょう。
あなたは売店に5枚支払います。 全体の流れは次のようになります。
第1段階、紙を書く。 「私の行から売店の行へ5枚移す」と書きます。金額と受取人のほかに、必ず二つの情報が必要です。
- 通し番号。「私が書いた8枚目の紙」と示します。これがないと、誰かが同じ紙を拾ってもう一度投入し、二重に引かれてしまいます。
- 手間賃。その紙を壁に書き写してくれる人へ払います。
第2段階、印を押す。 あなた専用の印を押します。村の誰もがあなたの印だと確認でき、紙の内容を一文字でも変えると印は無効になります。
第3段階、かごに入れる。 村の中心に大きなかごがあり、処理待ちの紙がすべて入っています。
ここで非常に大事なのは、かごが公開されていることです。 誰でも中の紙をすべて読めます。あなたの紙も例外ではありません。紙が効力を持つ前から、何をしようとしているか知られています。
第4段階、書き写されるのを待つ。 ページを書く人が一定の間隔で来て、かごから紙を選び、新しいページにまとめます。
なぜあなたの紙を選ぶのでしょうか? 手間賃です。高く払う人が先に選ばれ、安い紙は長く残ることがあります。かごが混むと手間賃は大きく上がります。空いていれば、少額でもすぐ書き写されます。
第5段階、あなたの紙が100ページ目に載りました。 これで有効になったと言えるでしょうか?
第6段階、翌朝、誰かがもっと長い冊子を持ってきます。
その冊子は99ページ目から皆の冊子と違い、現在のものより長くなっています。第4章のルールに従い、村全体が新しい冊子を採用します。
あなたの紙はそこにありません。 運がよければ、かごへ戻ります。悪い場合、その人の版には、あなたがその人へ支払う別の紙が入っています。それにも本物の印が付いています。かごであなたの紙を見た人が、競合する紙を作れるのでしょうか? 作れません。あなたの印を持っていないからです。ただし、支払う本人ならできます。
第7段階、村に習慣ができます。 紙が壁に載った後、後ろに1ページ追加されるたび、覆すにはさらに1ページ分の仕事をやり直す必要があります。6、7ページたまると、覆す費用が高すぎて誰も試さなくなります。
ただし、その費用が無限になるわけではありません。 割に合わないほど高いだけです。
第8段階、隣の村ではルールを変えました。 長い冊子を選ぶ代わりに、あらかじめ保証金を預けた記録係が短い間隔で集団署名します。「100ページ目まで確定。変更した人の保証金は没収する。」
署名後、100ページ目は変更できません。ただし、十分な人数が保証金をすべて失う覚悟で協力する場合は別です。
ここで考えてください。第7段階と第8段階で、「有効」の意味は同じでしょうか?
片方は「覆すと高すぎるので誰もやらない」。もう片方は「覆すと損をし、ルールでも明確に禁じられている」です。
安心の根拠は違いますが、画面ではどちらも「完了」と表示されます。
あなたが決める
あなたは売店の店主です。お客さんが紙で代金を支払いました。
いつ商品を渡しますか?
結果を観察する
四つの選択肢は、一つの問いの四つの目盛りです。
この取引が覆るリスクに対し、どの程度の保険を買いたいですか?
保険料は待ち時間で支払います。長く待つほど、覆る確率が下がり、覆す費用が上がります。
| 待つ段階 | 覆すために必要なこと | 向く場面 |
|---|---|---|
| 公開のかごに入る | 支払う人が高い手数料で別の取引を出す | ごく少額、または相手を信頼できる |
| ブロックに入る | そのブロックをやり直す | 日常の少額 |
| 後ろに複数のブロックがつながる | 全ブロックをやり直し、進行を追い越す | 大口。金額に応じて待ち時間を調整 |
| 明確に最終確定する | 十分な数の記録係が同時に保証金を没収される | このルールを持つチェーンの大口 |
この表から三つの結論が出ます。後になるほど重要です。
第1に、ファイナリティはスイッチではなく曲線です。
0秒の時点で100%を保証するチェーンはありません。ある時点でほぼ垂直になる曲線もあれば、近づき続けても到達しない曲線もあります。しかし左端はどのチェーンも同じです。送った直後には何の保証もありません。
第2に、「成功」は三つの場所で現れ、それぞれ意味が違います。
同じ緑のチェックで示されがちですが、次の三つは別のことです。
| 画面の表示 | 実際の意味 | その時点でお金はどうなっているか |
|---|---|---|
| 送信済み | ウォレットがノードへ取引を送った | まだ効力がなく、置き換えや破棄が可能 |
| ブロックに格納済み | ブロックに書き込まれた | 成功している場合も、失敗と記録される場合もある |
| N回承認済み | 後ろにN個のブロックがつながった | Nが増えるほど覆る確率が下がる |
第3に、最も直感に反する点ですが、取引に失敗しても手数料は引かれます。
理由は第4章で学んだ通りです。手数料で買うのは「成功」ではなく、記録係があなたのために行った処理です。紙を読み、実行し、残高不足や条件不成立を確認して、失敗を記録する。その仕事は実際に行われたので、支払いが必要です。
払うのは計算資源の代金であり、結果の代金ではありません。 第7章でこの区別を詳しく扱います。
モデルを作る
取引が頭の中の考えから覆らない状態になるまでには、七つの段階があります。第1ステージ全体で、最も覚える価値のある図です。
- 構築
- 署名
- ブロードキャスト
- メンプールに入る
- ブロックに格納される
- 複数の承認を得る
- ファイナリティに達する
各段階を広げてみましょう。
| 段階 | 行うこと | 典型的な失敗 | できること |
|---|---|---|---|
| 構築 | 受取人、金額、番号、手数料を設定 | アドレス違い、金額の桁違い、番号の競合 | 署名前なので修正する |
| 署名 | 秘密鍵で内容を承認 | 理解していない権限を承認する | 署名前なら拒否できる。後では遅い |
| ブロードキャスト | ネットワークへ送り、各ノードへ伝播 | ノードが拒否、不正な形式、通信切断 | 再送する。通常は損失なし |
| メンプール | 公開の候補領域で待つ | 手数料が低く、長く滞留 | 手数料を上げて置き換えるか、同じ番号の空取引を送る |
| 格納 | ブロックに入り、実行される | 実行失敗でも手数料が引かれる | 取り消せない。原因を調べて再送 |
| 承認 | 後ろにさらにブロックがつながる | ブロック再編でメンプールへ戻る | 待つ、または追加承認を待つ |
| ファイナリティ | もう覆らなくなる | —— | ここで完了 |
実際の損失が集中する三つの段階を、個別に説明します。
署名の段階。 全体で唯一、まだ「いいえ」と言える時点です。ここを過ぎると、あなたの意思は効かなくなり、チェーンは署名だけを見ます。第5章で説明したように、署名は1回の送金だけでなく、ある種類の資産を将来移す権限全体を与えることがあります。理解できなければ拒否する。それが最も安く済む安全対策です。
メンプールの段階。 意外に知られていませんが、メンプールは公開されています。取引が有効になる前から、金額、送付先、交換するトークン、許容するスリッページを世界中に見られます。
ここを監視する人もいます。価格を押し上げる大口取引を見つけると、あなたより先に買い、あなたの取引で価格が上がったら売れます。あなたが余計に払った差額がその人の利益になり、すべてルールの範囲内で起こります。 第18章と第24章で詳しく分解します。
格納の段階。 ブロックに入ることと成功は別です。ブロックエクスプローラーでは、成功した取引と失敗した取引が同じブロックに並び、状態の印だけが異なります。失敗の典型的な原因は、資源の予算不足、コントラクトの拒否条件への抵触、設定した許容幅を超える価格変動です。
最後に、送金のたびに使える実用的な物差しです。
金額が大きく、相手を知らず、取り戻せる可能性が小さいほど、右側の段階まで長く待ちましょう。
反対に、少額決済のたびにファイナリティまで待つ必要はありません。費用をかける場所を間違えています。
何と呼ぶか
名前を付けましょう。
秘密鍵を使い、特定の取引内容に対する承認を生成することです。
二つの性質を覚えてください。内容と厳密に結び付くので1バイト変えると無効になり、撤回できない意思表示なので、署名後にあなたの意向が再確認されることはありません。
全体で、あなたが決める唯一の段階です。 その後はすべてネットワークが決めます。
同じアドレスが送る取引の番号です。0から順に増えます。
同じ取引の重複実行を防ぎ、同じアドレスの取引が番号順に有効になるようにします。
二つ目には実用的な帰結があります。8番目が止まると、9番目の手数料をいくら上げても進めません。 解消するには、8番目の手数料を上げるか、同じ番号で手数料の高い空取引を送り、置き換えます。
これが「取引が止まったらどうするか」への完全な答えです。
署名した取引をノードへ送り、そこから他のノードへ広めることです。
注意してください。ウォレットが誰かに資産を「送っている」わけではありません。署名付きファイルをネットワークへ渡すだけです。資産の移動は、その後ブロックへ格納される段階で起こります。
各ノードが持つ、まだブロックに入っていない取引の候補領域です。あのかごに当たります。
必ず覚えるべき性質は三つです。公開されているので誰でも内容を見られます。ノードごとに異なり得るので、世界共通の一つのプールではありません。中の取引にはまだ効力がないので、置き換え、破棄、永遠に格納されないこともあります。
最初の性質は、オンチェーン取引の環境で最も過小評価されている点です。
複数の取引をまとめ、確定した順序で並べ、前のブロックにつないだものです。
ブロックは順序付けの最小単位です。同じブロック内でも取引の順番は決まっています。その順番を決めるのはブロックを作る人であり、経済的な影響は非常に大きいのです。
取引をまとめ、ブロックを生成する参加者です。
プルーフ・オブ・ワークのチェーンでは、計算力の競争で資格を得ます。第4章のマイナーです。他の設計では、資産を預けて資格を得ます。
どちらでも、ルールに明示されていない権力を持っています。どの取引を受け入れ、どの順に並べるかを決める権力です。 それにいくらの価値があるかが、第18章のテーマです。
あなたの取引が入ったブロックの後ろに、いくつブロックがつながったかです。
これはリスクの尺度であり、状態そのものではありません。承認が増えるほど、覆すための費用が上がります。
どこでも通用する承認数はありません。 この金額なら、相手はいくらかけて覆す価値があるか、と考えるのが合理的です。
ネットワークが、もっと長い、または重みの大きい別のブロック列を採用し、元の列の一部の取引がメンプールに戻ることです。
攻撃ではなく、通常の動作の一部です。二人がほぼ同時にブロックを作ると起こり、通常は1、2ブロックだけに影響します。
多数のブロックに影響する深い再編は、通常、意図的な攻撃を意味します。小規模チェーンで実際に起きた事例を第4章で扱いました。
取引がもう覆らない状態です。
大きく異なる二つの形があります。
確率的ファイナリティ:後ろのブロックが増えるほど覆る確率は下がりますが、厳密には決してゼロになりません。第4章のチェーンはこれに当たります。
確定的ファイナリティ:明確な時点で取引群が固定され、覆すには十分な数の参加者が同時に保証金をすべて没収される必要があります。
画面では両方とも「完了」ですが、意味は全く違います。 チェーンが何を保証するか判断する際に見るのは、この点です。
一文にまとめます。
ファイナリティは一瞬ではなく、徐々に強くなる確率です。
したがって「届いたか」には必ず続きがあります。どの程度まで届き、その確度が金額に見合っているか。
実践
このLabはすべてテストネットで行います。 第5章のテストネット用ウォレットを使い、本物の資産には触れないでください。メインネットと動作が完全に同じではありませんが、七段階の構造は共通です。それを観察します。
ストップウォッチか、スマートフォンのタイマーを用意してください。
二つのアドレスを用意します。 同じウォレットに二つ目のアカウントを作り、一つ目から二つ目へ送ります。
ブロックエクスプローラーで一つ目のアドレスを検索します。このページを開いたままにしてください。後で繰り返し更新します。
送金を始めますが、まだ確定しません。
金額を入力し、最後の確認画面まで進みます。ここで止まり、画面全体を読んでください。
受取アドレス(先頭4文字と末尾4文字を一文字ずつ照合)、金額、手数料、予想時間を探して記録します。
この画面がモデルの「署名」の段階です。 全体で唯一、まだ考えを変えられます。ここで3秒止まる習慣は、将来少なくとも一度はあなたを助けます。
確認ボタンと同時にストップウォッチを押します。
数分間、10秒おきにエクスプローラーを更新し、三つの時刻を記録します。
T1:「送信済み」と表示された時刻 T2:エクスプローラーで取引が見つかり、処理待ちになった時刻 T3:格納済みに変わり、ブロック高が表示された時刻
T1からT3まで、お金はあなたの側にも相手の側にもありません。かごの中にあります。
取引の詳細ページを開き、各項目を書き写します。
少なくとも、取引ハッシュ、状態、ブロック高、送信者、受信者、金額、手数料、番号、タイムスタンプを記録してください。
意味がまだ分からない項目も、まず書き写します。次のAI Labで使います。
承認数を5分間観察します。
更新し、1から増えていく様子を見ます。1増えるのに何秒ほどかかるか記録してください。
間隔が均等ではないことに気付くはずです。第4章のLabと同じく、平均は安定しても、個々の時間はランダムです。
「だいたいN分待つ」という表現自体が、確率的な説明なのです。
比較実験として、手数料を最低にしてもう一度送ります。
ウォレットで手数料を指定できる場合は、最低に設定して再送します。「詳細設定」にある場合もあります。
メンプールにどれだけ滞在するか観察します。止まったら、同じ番号で、もっと高い手数料の取引を送ってみてください。前の取引を置き換えられるか確かめます。
これが「取引が止まった」場合の標準的な解決方法です。メインネットで焦って初めて学ぶより、テストネットで一度練習する方がよいでしょう。
この表を完成させ、ステージの成果物にします。
| 段階 | 発生時刻 | 前の段階からの時間 | 失敗したら何が見えるか |
|---|---|---|---|
| 署名 | |||
| ブロードキャスト | |||
| メンプールに入る | |||
| ブロックに格納 | |||
| 1承認 | |||
| 5承認 |
最後に三つの文を書きます。どの段階で本当に安心したか。なぜそこなのか。大口取引ならどこまで待つか。
AI Lab
前のLabで送ったテストネット取引を使います。
第1段階、項目ごとに説明させます。
これはテストネットのオンチェーン取引の詳細です。各項目を説明してください。
(書き写した項目をここに貼る)
各項目について三つ説明してください。
1. 何を記録しているか
2. 誰が決めるか。送信者、ネットワーク、このブロックを作る人のどれか
3. 値が正しくない場合、どのような症状になるか
最後に、この取引の現在の状態と、まだ覆る可能性があるかを別途答えてください。第2段階、間違えやすい四つの問いを尋ねます。
上の取引に基づいて答えてください。
一、「ブロックに格納済み」と「実行成功」は同じですか? 格納されても実行に失敗した場合、
手数料は引かれますか? なぜですか?
二、今この取引を取り消す方法はありますか? まだメンプールにある場合はどうですか?
すでにブロックに格納された場合はどうですか?
三、大口送金を受け取るなら、何承認待つべきですか? 数字をすぐに答えず、
その数字がどの変数で決まるか、先に説明してください。
四、このチェーンのファイナリティは確率的ですか、確定的ですか? 根拠は何ですか?第3段階が最も重要です。回答を持ってエクスプローラーへ戻り、各項目を照合します。
右側のチェックリストで一つずつ確認します。不一致は、AIの説明、実際の内容、なぜそう答えたのかを記録してください。
注意が二つあります。
第1に、三つ目への正しい答え方は、あなたに質問し返すことです。 「12承認待てば安全」と即答するモデルは、定型回答を当てはめています。正しい回答には、この金額を覆すためにいくら使う価値があるか、チェーンの現在の安全予算はいくらか、最悪の事態を引き受けられるかが必要です。
第2の注意は内容とは別ですが、もっと重要です。 取引ハッシュやアドレスは公開情報なので、モデルに貼ること自体に問題はありません。ただし、自分のアドレスをすべて一度に貼らないでください。第三者サービスへ資産分布全体を自ら渡すことになります。複数のアドレスを関連付けると何が推測できるかは、第23章で説明します。
テストネットのアドレスは自由に貼れます。メインネットでは上のルールに従ってください。
AI の回答後、自分で必ず検証すること
- 状態:格納済みと実行成功を同じ意味にしていないか。エクスプローラーでは別の印なので、混同していたら誤り
- 手数料:計算した実費がエクスプローラーの数字と合うか。予算と実際の消費が別項目だと説明しているか
- 番号:同じアドレスの取引が番号順に有効になることと、止まった際の対処を説明しているか
- タイムスタンプ:ブロックの時刻か、送信した時刻か。大きくずれる場合があり、AIは区別しないことが多い
- 承認数:万能の承認数を示していないか。示したら根拠を尋ねる。正しい回答は金額とチェーンの具体的状況に結び付く
- ファイナリティ:確率的か確定的かを説明しているか。答えられなければ定型回答を当てはめている
- 具体的な数字(ブロック時間、手数料率、承認時間)はすべてエクスプローラーで照合し、不一致に印を付ける
実例
プルーフ・オブ・ワークを採用した小規模なパブリックチェーンで、数か月の間に深い再編が繰り返されました。攻撃者が十分な計算力を確保し、数十ブロック承認された履歴を覆して二重払いを実現しました。
本章への意味は明確です。それらの取引は、当時エクスプローラーで「承認済み」と表示され、承認数も少なくありませんでした。
その後、複数の取引所が、その資産の入金に必要な承認数を大幅に増やしました。この対応がすべてを示しています。承認数は技術的な定数ではなく、安全予算に応じて変えるリスクのパラメーターです。
第4章で学んだ経済的な論理、すなわち覆す費用と覆して得る利益の差が、待つべき承認数を決めます。
大規模な資産発行、集中する清算、急に人気が出たアプリなど、オンチェーンで注目される出来事があると、メンプールは数分でいっぱいになります。
影響は連鎖します。競争で手数料が普段の数十倍になり、安い取引は数時間から数日止まります。最も厄介なのは、時間制限のある操作です。たとえば価格が一定水準を割る前に担保を追加したい場合です。取引がかごにあっても、清算は待ちません。
ここから本章の核心が分かります。メンプールは待合室ではなく、リアルタイムの入札市場です。 限られた資源を使う優先順位を買っています。
第7章全体がこの市場を扱い、第16章では清算が待ってくれない理由を説明します。
メンプールの公開性は、一つの産業を生みました。
典型例はこうです。ある価格を大きく上げる取引を出すと、かごで誰かが見つけます。その人はあなたより先に買い、あなたの取引で価格が上がったらすぐ売ります。実際の約定価格が予想より悪くなり、その差額が相手の懐へ入ります。
どの段階もルールに違反していません。秘密鍵を盗まず、署名を偽造せず、システムを攻撃してもいません。あなたが何をするかを先に知り、順番を決める権限を持っているだけです。
第2章の問いが別の姿で再登場します。台帳のページ上の順番を決められる人は、換金できる権力を持っています。 第18章と第24章で詳しく扱います。ここでは、有効になる前の取引は公開されていると覚えてください。
変数を一つ変える
先回りやサンドイッチ攻撃は情報の基盤を失い、一般ユーザーの約定は改善します。
ただし三つの新たな問題が出ます。第1に、ノードはどう同期するのでしょうか? 格納するには取引を伝播させる必要があります。完全な秘密と伝播は矛盾するので、暗号化と段階的な公開で折り合いを付けます。
第2に、送られた内容が有効だと誰が保証しますか? 暗号化した取引を格納後に復号し、無効だと判明すれば、そのブロック領域はすでに無駄になっています。
第3に、最も微妙な点として、秘密にすることで誰に特権を与えますか? 平文を見られる専用の役割へ順序付けを任せると、誰でも見られた権力を一人だけが見られる権力に変えただけです。第2章の王さんと同じです。
この方向は現在、非常に活発な技術分野です。各方式は三つの問題の間で均衡を探っています。第18章で考え方を紹介します。
承認が大幅に速くなり、従来の決済に近い体験になります。多くのチェーンが取り組んでおり、方向自体に問題はありません。
代償は第4章で説明しました。1承認あたりの重みが下がります。 ブロック間隔がネットワークの伝播時間に近づくと、短い分岐が日常化し、従来の数承認と同じ安全性に数十承認が必要になることがあります。
さらに現実的な代償もあります。ノード運用の敷居が上がります。 高速になるほど処理データも必要帯域も増え、最新状態に追い付くのが難しくなります。独立して検証できる人が減れば、第3章の物差しで左へ動きます。チェーンへの信頼の一部が、また「他人から聞く」形へ戻るのです。
速度は無料ではありません。その費用は多くの場合、「誰が自分で検証し続けられるか」の欄に記録されます。 第8章でこの勘定を完成させます。
誰もが費用を予測でき、体験の確実性が上がり、法外な手数料もなくなります。
ただし固定価格は混雑を解消せず、並び方を変えるだけです。需要が供給を超えれば、誰を先にするか決める仕組みが必要です。 価格で決めなければ、先着順で通信速度を競う、抽選で大量送信して当選率を上げる、誰かの意思で決めて王さんに戻る、といった形になります。
さらに深い問題は、固定価格が市場の信号を失わせることです。 第7章で扱うように、手数料の変動自体が重要な情報です。現在の需要の強さを示し、バリデーターに容量を増やすべきか伝えます。
混雑は需要の表れであり、バグではありません。 価格を固定しても混雑は消えず、別の場所で別の形として現れます。
第2章で学んだ通り、取り消し可能性は現実の金融の核心です。誤送金を取り戻し、詐欺を訴え、判決を執行できます。追加すれば使い勝手は大きくよくなります。
ただし、今なら代償の連鎖を導けます。取り消せるなら、取り消す権限を持つ役割が必要です。 組織でも投票でも、第2章の表の第3列が再び埋まります。
承認済みを撤回できると、チェーン上の組み合わせ全体が揺らぎます。 ある取引の結果を別のアプリが入力に使った後で取り消すと、その後に依存する操作もすべて取り消す必要があります。機能を一つ足すのではなく、土台を取り除くことになります。
第3章の2016年の出来事は、実質的に人の手による取り消しでした。大きな論争と最終的な分裂を招いた理由はここにあります。
だから取り消せない方が必ずよい、という意味ではありません。 意味するのは、取り消せないことがチェーン上の組み合わせ能力の前提であり、その代償が誤ったアドレスへ送った後に頼れる窓口がないことです。第9章で、その前提が何をもたらしたか説明します。
持ち帰る問い
18の問いから三つ選び、この章に当てはめます。
この章の答えは明快です。取引を始めた人が、ブロックを作る人へ払います。
もう一段尋ねましょう。何の代金を払うのでしょうか? 成功ではありません。失敗しても払います。ネットワークの処理資源と、先に並ぶ優先順位を買っています。
この区別は今後何度も出てきます。「無料」「手数料ゼロ」の製品を見たら、費用がどこへ移されたか探してください。通常は価格差、補助金、見えない順序付けの権力にあります。
バリデーターが取引を受け入れる理由は手数料です。では、なぜその順番に並べるのでしょうか?
ルール自体は、手数料順を要求していません。収入を最大化しているだけです。順番を変える方が稼げる、たとえばあなたの大口取引の前後に自分の取引を入れると稼げると気付けば、実際にそうします。しかもルール違反ではありません。
明確に制限されていない自由度を持つ役割があれば、常にその自由度の価値を計算してください。 あらゆるプロトコルを分析する上で、非常に鋭い方法です。第18章で徹底的に使います。
七段階のうち、署名は本来人に属する段階です。
唯一、まだ断れる時点であり、ルールの実行だけでなく意図の判断が必要な時点です。他の段階や、その後の処理は自動化できます。しかし署名を渡すと、資産の支配権全体を渡すことになります。理由は第5章で学びました。
したがって自動化ツール、スクリプト、エージェントを判断する問いは常に同じです。それ自身で署名を完了できますか? できるなら、第5章の印を渡しています。できないなら、リスクは一段階下がります。
この境界線は第34章まで続きます。 途中で精巧な設計が登場しますが、いずれも同じことを目指します。自動化の効率を保ちながら、この段階を丸ごと渡さないことです。
章末チェック
送信済み:ウォレットが署名済み取引をノードに渡しました。まだかごの中にあり、置き換えや破棄が可能で、効力はありません。
格納済み:ブロックに書かれました。ただし、成功とは限りません。実行に失敗しても、ブロックの1行を使い、手数料は引かれます。
N回承認済み:取引のブロックの後ろにN個つながりました。リスクの尺度であり、Nが大きいほど覆す費用が上がります。
同じ緑のチェックで示されても、決済の意味は違います。第1章の「入金の表示と決済完了は別」を具体的に分解したものです。
手数料で買うのは結果ではなく、処理資源だからです。
ネットワークは実際に取引を読み、実行し、残高不足や条件不成立を確認し、失敗を記録しました。計算は行われ、ブロックの領域とバリデーターの計算力を消費しています。
別の見方をすると明快です。失敗が無料なら、誰でも失敗する大量の取引でネットワークを無料で埋められます。 課金はそれを防ぐ仕組みの一部です。
正しい理解は、計算の代金を払い、約束を買っているわけではないというものです。第7章で詳しく広げます。
確率的:後ろのブロックが増えるほど覆る確率が下がりますが、ゼロにはなりません。保証の根拠は「高すぎて割に合わない」です。
確定的:明確な時点で取引群が固定されます。覆すには十分な数の参加者が同時に保証金を没収されます。保証は「ルール上禁止され、違反すると損をする」です。
実際の影響は二つあります。
第1に、待ち時間の決め方が違います。確率的なら、金額を覆すためにいくら使う価値があるか尋ねます。確定的なら、明確な時点まで待ちます。
第2に、信頼する対象が違います。確率的なら計算力の費用、確定的なら参加者が十分な割合で結託していないことと、罰則が実際に執行されることです。
画面では両方とも緑のチェックです。自分がどちらを使っているか説明できることが、この章の最も実用的な収穫です。
有効になる前に、あなたの意図が誰にでも知られるからです。金額、相手、交換するもの、許容する価格差が分かります。
別の種類のリスクが生まれます。相手は秘密鍵も署名偽造もシステム攻撃も必要とせず、先に知り、順番を決められるだけでよいのです。
「ウォレットが安全」と「取引が安全」が別である理由でもあります。第5章は前者を解決します。後者には別の方法が必要です。スリッページの制限、大口取引の分割、公開プールを避ける送信経路などです。第18章と第24章で具体策を扱います。
標準の答えはありませんが、四つ確認します。
一、この金額を覆すために、相手はいくら使う価値がありますか? 判断の核心です。攻撃で得られる利益の上限はこの金額なので、攻撃費用より小さくなければなりません。
二、チェーンの現在の安全予算はいくらですか? 全体の計算力やステーク量が再編の費用を決めます。同じ承認数でも、小規模と大規模のチェーンでは桁違いの意味になります。
三、どちらのファイナリティですか? 確定的なら明確な時点を待ち、承認を数える必要はありません。
四、最悪の事態に耐えられますか? 覆った場合、その損失で退場することになりませんか?
金額に触れず固定の数字を答えたら、定型回答を当てはめています。 同じチェーンでも、金額が1,000倍違う二つの送金に同じ待ち時間が合理的とは限りません。サービスごとにルールが違い、随時変わる理由です。
要点
ファイナリティは一瞬で決まるものではなく、時間とともに強まる確率だ。