ビットコインは株式投資や通貨の為替、投資信託といった商品とは全く異なる仕組みで管理されていて、難しかったため、解説本を読みながらCopilotと会話してその仕組みをまとめてみました。
まとめた内容と、そのまとめ文書をCopilotに添削してもらったものを載せます。
理解のまとめ
ビットコインには管理者は存在せず、数字だけがネット上にあるだけ。
ビットフライヤーなど販売所、取引所は、入出金や販売、取引をしているだけで、ビットコインそのものの管理はしていない。
マイニング作業をするマイナーが自主監査的な役割を担い、正常な取引管理をしている。
マイナーは、
式: ハッシュ値=SHA-256(トランザクション+ナンス)
という式の解を求める。正解の条件はハッシュ値先頭値のゼロの数≧目標値である。(※文末に補足説明)
取引が開始されたら、10分を目安にこの解を算出し、最も早く回答できたマイナーに報酬(ビットコイン報酬+手数料)が与えられる。
2番手以降の遅い回答者(マイナー)への報酬はない。
不正な取引があった場合は、この計算解は正しく得られず、不正取引の協力者が不正な解を出しても、別の多くのマイナーが不正を暴くため、採用されない。
SHA-256の計算プロセスは以下の通り;
- 初期化: 初期ハッシュ値(IV)を設定します。これは、特定の素数の平方根の小数部分をビット形式で表したものです。
- 前処理: 入力データを512ビットのブロックに分割し、パディングと長さのエンコーディングを行います。
- メッセージスケジュールの作成: 各512ビットブロックから64個の32ビットワードを生成します。
- メインループ: 64回のラウンドを通じて、メッセージスケジュールと現在のハッシュ値を組み合わせて新しいハッシュ値を計算します。
- 最終ハッシュ値: 64ラウンドの後、出力として得られるハッシュ値を初期ハッシュ値に加算します。
マイナーのステップは次の通り;
- 新しい取引データを受け取る。
- その取引データを含む新しいブロックの候補を作成する。
- ブロックのハッシュ値を計算し、ネットワークが定めた難易度の基準を満たすハッシュ値を見つけるために、ナンス(ランダムな数値)を変更しながら何度も計算を繰り返す。
- 条件を満たすハッシュ値が見つかった場合、そのブロックはブロックチェーンに追加され、取引は確定する。
ハッシュ関数を解く意味;
- セキュリティの強化: ハッシュ関数の問題を解くことは計算資源を大量に消費するため、不正な取引を含むブロックを追加することが非常に困難になります。これにより、ネットワークは改ざんから保護されます。
- 分散化の促進: マイニングは多くの参加者によって行われるため、ネットワークの権力が集中することを防ぎます。これにより、どの個人や組織もネットワークを支配することができなくなります。
- 取引の確定: マイナーが問題を解くことで、そのブロックの取引が正式に承認され、ブロックチェーンに追加されます。これにより、取引は不可逆的になり、二重支払いなどの不正行為を防ぐことができます。
- 新規コインの発行: マイニングによって新しいビットコインが生成され、マイナーに報酬として与えられます。これは、ビットコインの経済システムにおける新規コインの流通手段となります。
マイナーのコスト;
- スーパーコンピューターを超えるハッシュ計算専用のASICを搭載したコンピュータの手配
- 演算に要する電力=1,950W(24時間で1,264円)
- この電力量は一般家庭の生活電力にオンできないため、別途電力契約を追加する必要性が高い。
ビットコインの発行数;
- 西暦2141年頃に上限の2,100万コインとなり、それ以降は発行されなくなる。
- 今年、2024年にはすでに1,940万コインが市場に出ている。あと、117年掛けて市場に出ていく。
- 発行数の式は西暦年をX値、発行数をY値とすると、Y=21M*(1-1/(2^((x-2009)/4))である。
マイナーの報酬半減期;
- マイナーは2009年を起源として4年に1回、報酬額の半減期を迎える。2009年では1ブロック当たり50コインであった。
- コインの価額は随時変動するため、通貨に対する利益は半減せず、その時の成り行きで求められる。
- コインの価額がZ倍になった時、何回半減期を迎えたとき、同等の報酬になるのかを求めるには次の通り。
- n=logZ/log2、4年に1回半減期のため、n×4年でZ倍の価額になれば等価の報酬となる。
Copilotの添削
ビットコインに関するあなたのまとめは、基本的な概念を正確に把握しており、ビットコインのシステムとマイニングプロセスについての理解が示されています。以下は、いくつかのポイントに対する補足と訂正です:
- ビットコインは確かに中央管理者がいない分散型のデジタル通貨で、取引所はビットコインの管理を行わず、取引の仲介と入出金のサービスを提供しています。
- マイナーはネットワークのセキュリティを維持し、取引の検証と新しいブロックの追加を行うことで、自主監査的な役割を果たしています。
- マイニングにおけるハッシュ値の計算は、SHA-256ハッシュ関数を用いて行われ、特定の条件を満たすハッシュ値を見つけることが目標です。ただし、新しいブロックのハッシュ値を見つけるための時間制限は厳密に10分とは限らず、平均的なブロック生成時間が約10分です。
- マイナーが報酬を受け取るのは、正しいハッシュ値を見つけてそのブロックがネットワークによって承認された場合のみです。2番手以降のマイナーには報酬はありません。
- 不正な取引を含むブロックは、ネットワークの他のマイナーによって検証され、承認されないため、ブロックチェーンに追加されません。
- SHA-256の計算プロセスの説明は正確ですが、このプロセスは非常に複雑であり、実際の計算は専門的な知識を要します。
- マイナーのコストには、ハードウェアの購入費用、電力消費、冷却、保守などが含まれます。電力消費はマイニングの主要なコストの一つです。
- ビットコインの発行数に関する説明は正確で、発行上限は2,100万コインです。発行数の計算式も適切です。
- マイナーの報酬半減期に関する説明も正確で、4年ごとに報酬が半減します。ただし、ビットコインの価格変動は市場の需要と供給によって決まるため、半減期と価格の関係は直接的ではありません。
全体として、ビットコインの基本的な仕組みについては正しく理解されていると言えます。ただし、ビットコインの価格やマイニングの収益性は市場の変動に大きく影響されるため、これらの点については常に最新の情報を参照することが重要です。
※補足説明
ビットコインのマイニングでは、ハッシュ値が特定の条件を満たすような「ナンス」(任意の数値)を見つけることが目標となります。具体的には、以下のような手順で行われます:
-
トランザクションデータと初期のナンス(通常は0から始まる)を組み合わせて、SHA-256ハッシュ関数を適用します。
-
得られたハッシュ値が特定の条件(「難易度ターゲット」以下)を満たすかどうかを確認します。具体的には、ハッシュ値の先頭が特定の数のゼロで始まるかどうかを確認します。
-
ハッシュ値が条件を満たさない場合、ナンスを1増やして再度ハッシュ関数を適用します。これをハッシュ値が条件を満たすまで繰り返します。
このプロセスは「プルーフ・オブ・ワーク(PoW)」と呼ばれ、ビットコインのマイニングにおける中心的な役割を果たします。マイナー(採掘者)は、このプロセスを通じて新たなブロックを生成し、ブロックチェーンに追加します。