ビットコインを所有するということはどういう意味ですか?今ではほとんどの人がビットコインについて聞いたことがあるでしょう。つまり、政府によって発行されず、銀行による口座管理や取引の検証を必要としない、完全にデジタルな通貨です。誰がそれを発明したのかは誰も本当に知りません。 しかし、この質問の答えを、少なくとも完全には知らない人が大勢います。 この目標を達成し、この回答の背後にある技術的な詳細が説得力のあるものになるように、独自のバージョンのビットコインを発明する方法を説明します。 まず、公開元帳を使用して友人との支払いを追跡します。そして、友人や世界に対する信頼がどんどん薄れていくにつれて、信頼の必要性を回避するのに役立つ暗号化ツールを導入するほど賢明であれば、最終的に「暗号通貨」と呼ばれるものが生まれます。 ビットコインは暗号通貨の最初の実装例に過ぎず、現在では従来の通貨と交換に取引される暗号通貨は数千種類あります。独自の発明の道を進むことは、ゲームの新しいプレーヤーの一部を理解し、異なるデザインの選択の余地がある場所を認識するための基礎を築くのに役立ちます。 実際、私がこのテーマを選んだ理由の 1 つは、過去 1 年間でこれらの通貨を取り巻く注目、投資、そして誇大宣伝が再び高まったことへの対応でした。現在または将来の為替レートについてはコメントも推測もしませんが、暗号通貨を購入しようとしている人は、実際にそれが何であるかを知っておく必要があることには誰もが同意すると思います。 そして、金採掘との漠然としたつながりのある単なる類推ではなく、仮想通貨の送受信や作成時にコンピューターが何をしているのかを実際に直接説明することを意味します。 ちなみに、強調する価値があることの 1 つは、あなたと私がここで基礎となる詳細に踏み込む予定であり、時間がかかるとしても、これらの詳細を知る必要がないのと同じように、暗号通貨を使用するためにそれらの詳細を実際に知る必要はないということです。クレジットカードをスワイプするときに、舞台裏で何が起こっているのか詳細を知る必要はありません。他のデジタル決済と同様に、これらの通貨を簡単に送受信できるアプリは数多くあります。違いは、その背後にあるバックボーンが取引を検証する銀行ではなく、暗号学におけるいくつかの数学的原理に基づいた分散型の信頼性のない検証の独創的なシステムであるということです。 元帳とデジタル署名まず、暗号通貨の考えを数分間脇に置いておきます。この話は、より実用的なもの、つまり元帳とデジタル署名から始めましょう。 あなたと友達が頻繁に通貨を交換したり、食事代を支払ったりする場合、常に現金を交換するのは不便です。したがって、将来行う予定の支払いの公開台帳を保持しておくとよいでしょう。 アリスはボブに 20 ドルを支払い、ボブはチャーリーに 40 ドルを支払います。この元帳は、誰でもアクセスして新しい行を追加できる Web サイトと同じように、公開され、誰でもアクセスできるようになります。毎月末に、全員が取引リストを確認し、すべてを集計します。受け取った金額より多く使った場合は、その金額を貯金箱に入れます。支出額よりも収入額の方が多い場合は、その額を引き出します。 したがって、このシステムの一部となるプロトコルは次のようになります。誰でも元帳に行を追加でき、毎月末に全員が集まって実際のお金で決済します。このような公開台帳の問題の 1 つは、誰でも行を追加できる場合、ボブがアリスの承認なしに「アリスがボブに 100 ドル支払う」と書き込むのを何が阻止するのかということです。これらすべてのトランザクションが送信者の意図どおりであることをどうやって信頼できるのでしょうか? これは暗号化の最初の部分であるデジタル署名です。ここでの考え方は、手書きの署名と同じように、アリスが取引を確認して承認したことを証明する何かを取引の横に追加できるようにすることです。そして、他人が彼女の署名を偽造することは不可能であるはずです。 一見すると、デジタル署名は不可能に思えます。署名を構成するデータはどのコンピューターでも読み取ったりコピーしたりできるためです。では、偽造を防ぐにはどうすればよいのでしょうか。仕組みとしては、各人が公開鍵/秘密鍵のペアと呼ばれるものを生成します。それぞれの鍵はビットの文字列のように見えます。秘密鍵は「シークレット」鍵とも呼ばれるため、sk と省略し、公開鍵は pk と省略することができます。名前が示すように、キーは秘密にしておくべきものです。 現実の世界では、どんな文書に署名しても同じに見えます。デジタル署名はメッセージに基づいて変更されるため、はるかに強力です。これは 1 と 0 の文字列のように見え、通常は 256 ビット程度ですが、メッセージを少しでも変更すると、そのメッセージの署名の外観が完全に変わります。正式には、署名の生成には、メッセージ自体と秘密鍵の両方に依存する何らかの機能が関係します。 秘密鍵により、署名を生成できるのはあなただけであることが保証されます。また、署名がメッセージに依存しているということは、誰もあなたの署名をコピーして別のメッセージに偽造することができないことを意味します。 これに関連して、署名が有効かどうかを検証する機能があり、ここで公開鍵が役立ちます。これが行うのは、検証に使用した公開キーに関連付けられた秘密キーによって作成された署名であるかどうかを示す true または false を出力することだけです。これらの関数がどのように機能するかについては詳しく説明しません。キーがわからない場合、有効な署名を見つけることはまったく不可能であるという考えに基づいています。 具体的には、有効な署名が見つかるまで、公開鍵を使用してランダムな署名が有効かどうかを推測して確認するよりも優れた戦略はありません。可能な署名は 2²⁵⁶ 256 ビットあり、有効な署名を見つける必要があります。それは馬鹿げたほど大きな数字だ。それを天文学上のスーパースターと呼ぶのは、天文学に過度の信頼を寄せすぎていることになる。 言い換えれば、メッセージと公開鍵が与えられた署名を検証する場合、誰かがその署名を生成できた唯一の方法は、公開鍵に関連付けられた秘密鍵を知っている場合であると確信できます。 ここで小さな問題があります。アリスが「アリスがボブに 100 ドル支払う」などのトランザクションに署名した場合、ボブが新しいメッセージでアリスの署名を偽造できないとしても、メッセージ/署名から始まる同じ行の組み合わせを複数回コピーすることができ、それが機能します。 この問題を解決するには、トランザクションに署名するときに、そのトランザクションに関連付けられた一意の ID がメッセージに含まれている必要があります。この方法では、アリスがボブに 100 ドルを複数回支払う場合、各トランザクションに新しい署名が必要になります。 そうですね、デジタル署名は当初の合意からかなりの信頼を奪います。 元帳は通貨であるしかし、それでも、これは一種の名誉システムに依存しています。つまり、全員が従い、毎月末に現金で決済することを信頼しているということです。しかし、例えばチャーリーが何千ドルもの借金を抱えていて、出席を拒否したらどうなるでしょうか? 現金決済に戻る唯一の本当の理由は、何人かの人々、つまりあなた、チャーリーに多額の金銭が支払われていない場合です。つまり、人々が稼いだ以上の金額を使うことを防ぐ方法があれば、実際に現金で決済する必要はない、という賢いアイデアがあるのかもしれません。 まず、全員に 100 ドルをポットに入金してもらい、元帳の最初の数行に「アリスは 100 ドル、ボブは 100 ドル」などと記入します。次に、誰かが元帳にすでに入金した金額以上の金額を使うと、 たとえば、全員が 100 ドルから始めて、最初の 2 つのトランザクションが「チャーリーがアリスに 50 ドル支払う」と「チャーリーがボブに 50 ドル支払う」だった場合、ボブが「チャーリーがあなたに 20 ドル支払う」を追加しようとすると、署名していないのと同じになるため無効になります。 これは、新しいトランザクションが有効であることを確認するために、トランザクションの完全な履歴を知る必要があることを意味することに注意してください。暗号通貨についても、最適化の余地は多少あるものの、ほぼ同じことが当てはまります。 興味深いことに、このステップにより、元帳と物理的な現金の間の接続がある程度削除されます。理論上、世界中のすべての人がこの元帳を使用すれば、実際のドルに換金することなく、一生この元帳だけでお金を送受信できるようになります。 この点を強調するために、私たちは元帳上の金額を「LedgerDollars」、略して LD と呼ぶようになりました。もちろん、LedgerDollars を実際のドルと引き換えることは自由です。たとえば、アリスがボブに現実世界で 10 ドル札を渡し、ボブが「ボブがアリスに 10 LedgerDollars を支払う」というトランザクションを公開元帳に追加して署名するといったことが考えられます。 しかし、協定ではそのような交換は保証されていない。これは、オープン市場でドルをユーロやその他の通貨に両替する方法に似ていますが、これは別のものです。 ビットコインやその他の暗号通貨について知っておくべき最初の重要なことは、「ビットコインとは何なのか?」ということです。取引の履歴が通貨です。もちろん、人々は現金を使って買い物をしているので、ビットコインの資金は元帳に記録されません。数分後に、新しい資金がどのように元帳に記録されるかを説明します。 それ以前に、現在のLedgerDollarsシステムとの間にはより重要な違いがあります 分散化: 暗号通貨の仕組みこれまで、この元帳は、誰でも新しい行を追加できる Web サイトのような公開された場所であると述べました。しかし、そのためには中央の場所への信頼が必要です。つまり、誰がウェブサイトをホストしているのでしょうか?新しい行を追加するルールを制御するのは誰ですか? この信頼をなくすために、全員に元帳のコピーを保管してもらいます。次に、「アリスがボブに 100 LedgerDollars を支払う」などのトランザクションを実行するには、それを世界中にブロードキャストして、人々がそれを聞いて各自のプライベート Ledger に記録できるようにする必要があります。しかし、私たちがもっと対策を取らなければ、このシステムは信じられないほど悪いものになるでしょう。 正しい元帳が何であるかについて全員の同意を得るにはどうすればよいでしょうか?ボブが「アリスがボブに 10 LedgerDollars を支払う」というトランザクションを受け取ったとき、他の全員が同じトランザクションを受け取って信じていることをどうやって確認できるでしょうか?彼は後でこの 10 LedgerDollars を使ってチャーリーと取引することができます。実際に、トレードの放送を聞いている自分を想像してみてください。他の全員が同じ取引を同じ順序で記録していることをどうやって確認できますか? ここで、興味深い難問にぶつかります。つまり、トランザクションがどのように承認または拒否されるか、またどのような順序で承認または拒否されるかに関するプロトコルを考案し、同じプロトコルに従う世界中の誰もが、自分とまったく同じ個人元帳を持っていると確信できるでしょうか。 これは、オリジナルのビットコイン論文で取り上げられた問題です。 大まかに言えば、ビットコインが提供するソリューションは、最も多くの計算作業が投入された元帳を信頼することです。これが具体的に何を意味するのか、少し説明したいと思います。これには「暗号ハッシュ関数」と呼ばれるものが関係しています。私たちが構築する全体的なアイデアは、計算作業を信頼の基盤として使用すれば、不正な取引や矛盾する元帳には実行不可能な量の計算が必要になるようにすることができるというものです。 繰り返しますが、これはこのような通貨を使用するために誰もが知っておく必要のある知識を超えています。しかし、これは本当に素晴らしいアイデアであり、これを理解すれば、ビットコインやその他の暗号通貨の核心を理解できます。 暗号ハッシュ関数ハッシュ関数は、あらゆる種類のメッセージまたはファイルを受け取り、256 ビットなどの固定長のビット文字列を出力します。この出力はメッセージの「ハッシュ」または「ダイジェスト」と呼ばれ、ランダムに見えます。これはランダムではありません。与えられた入力に対して、常に同じ出力が得られます。しかし、アイデアとしては、入力を少し変更すると、たとえば 1 文字だけ編集すると、生成されるハッシュが完全に変わるというものです。 実際、ここで紹介するハッシュ関数 (SHA256 と呼ばれます) の場合、入力をわずかに変更したときに出力がどのように変化するかは完全に予測不可能です。ご存知のとおり、これは単なるハッシュ関数ではありません。これは暗号化ハッシュ関数です。つまり、逆の計算は実行不可能です。 特定の 1 と 0 の文字列を示し、そのメッセージの SHA256 ハッシュがまさにこのビット文字列を返すような入力メッセージを見つけるように求められた場合、推測して確認する以外に良い方法はないでしょう。 関数がどのように動作するかを詳細に調べれば、必要な入力をリバースエンジニアリングできると思うかもしれませんが、誰もこれを実行する方法を見つけていません。興味深いことに、逆計算が困難であるという証拠はありませんが、現代のセキュリティは暗号ハッシュ関数に大きく依存しています。 現在、ブラウザが YouTube や銀行と確立している安全な接続の背後にあるアルゴリズムを調べてみると、おそらく SHA256 のような名前が見つかるでしょう。 現時点では、私たちの焦点は、特定のトランザクション リストが大量の計算作業に関連付けられていることを、このような関数がどのように証明できるかということにあります。 ビットコインを所有するということはどういう意味ですか?プルーフ・オブ・ワークとブロックチェーン。誰かがトランザクションのリストを見せて、「特別な番号を見つけたので、この番号をトランザクション リストの末尾に配置して、トランザクション全体に SHA256 を適用すると、出力の最初の 30 ビットがすべてゼロになります」と言ったと想像してください。彼らにとってその数字を見つけるのはどれほど難しいと思いますか?ランダムなメッセージの場合、ハッシュが正確に 30 個の連続したゼロで始まる確率は 230 分の 1、つまり約 10 億分の 1 です。 SHA256 は暗号化ハッシュ関数であるため、このような特別な数値を見つける唯一の方法は推測して確認することです。したがって、この特別な数字を見つけるには、ほぼ間違いなく約 10 億の異なる数字を調べる必要があります。この数字がわかれば、ハッシュ値が実際に 30 個のゼロで始まっていることをすぐに確認できます。 言い換えれば、自分自身で同じ作業を行わなくても、彼らがかなりの量の作業を完了したことを確認できます。これは「作業証明」と呼ばれます。 重要なのは、この作業はすべて本質的にそのトランザクション リストに関連付けられているということです。トランザクションの 1 つを少しでも変更すると、ハッシュが完全に変更されるため、変更されたハッシュを可能にする新しい数値である新しい作業証明を見つけるために、さらに 10 億回の推測を行う必要があります。この新しい番号とともにリストされている番号はすべて 30 個のゼロで始まります。 ここで、分散型台帳の状況を思い出してみましょう。誰もがトランザクションをブロードキャストしており、正しい元帳について全員が合意できる方法が必要です。先ほども述べたように、ビットコインのオリジナル論文の背後にある中心的な考え方は、最も多くの労力が投入された元帳を誰もが信頼することです。 仕組みとしては、まず特定の元帳がブロックに編成され、各ブロックはトランザクションのリストと作業証明で構成されます。つまり、ブロック全体のハッシュがゼロの集まりで始まる特別な数値です。 今のところ、60 個のゼロで始まる必要があると仮定しますが、その数字の選択方法については後で説明します。トランザクションは送信者によって署名されている場合にのみ有効とみなされるのと同様に、ブロックは作業証明がある場合にのみ有効とみなされます。さらに、これらのブロックを順序付ける標準的な方法を確保するために、ブロックには必ず前のブロックのハッシュが含まれるように順序付けます。 この方法では、いずれかのブロックを変更したり、2 つのブロックの順序を入れ替えたりすると、その後のブロックが変更され、そのブロックのハッシュが変更され、次のブロックが変更される、というように続きます。これには、すべての作業をやり直し、ブロックごとに新しい一意の番号を見つけて、ハッシュ値が 60 個のゼロで始まるようにする必要があります。 このようにブロックがリンクされているため、元帳ではなく「ブロックチェーン」と呼ばれることがよくあります。 更新されたプロトコルの一環として、世界中の誰もが「ブロック作成者」になれるようになります。つまり、ブロードキャストされるトランザクションをリッスンし、それらをブロックに収集し、そのブロックのハッシュが 60 個のゼロで始まる特別な番号を見つけるために大量の作業を実行し、見つけたブロックをブロードキャストすることになります。 ブロック作成者のこのすべての作業に報いるため、ブロックを作成するときに、作成者が何もないところから 10 LedgerDollars を受け取る特別なトランザクションをブロックの上部に含めることができるようにします。これをブロック報酬と呼びます。これは、取引を受け入れるかどうかに関する当社の通常のルールに対する特別な例外です。誰からのものでもありませんので、署名する必要はありません。 これは、新しいブロックごとに経済における LedgerDollar の総数が増加することも意味します。ブロックの作成は多くの作業を必要とし、経済に新しい通貨を導入するため、「マイニング」と呼ばれることがよくあります。しかし、マイナーについて聞いたり読んだりするときは、マイナーが実際に行っていることはブロックを作成し、そのブロックをブロードキャストし、そのことに対して新しい資金で報酬を得ることであるということを覚えておいてください。 マイナーの観点から見ると、各ブロックはミニチュア宝くじのようなもので、誰もができるだけ早く数字を推測しようとします。そして、幸運な 1 人がブロックのハッシュが多数のゼロで始まる数字を見つけ、その報酬を受け取ります。 現在、システムを使用するユーザーにとって、私たちのプロトコルは、トランザクションをリッスンするのではなく、マイナーによってブロードキャストされる新しいブロックをリッスンして、ブロックチェーンの独自のコピーを更新するという仕組みになっています。 重要な追加点は、競合する取引履歴を持つ 2 つの異なるブロックチェーンについて聞いた場合、最も長いもの、最も多くの作業が行われたものを選択するということです。同点の場合は、同点をさらに長くする追加のブロックがあることが聞こえるまで待ちます。したがって、中央機関が存在せず、誰もがブロックチェーンの独自のコピーを保持している場合でも、最も多くの作業が行われているブロックチェーンを優先することに全員が同意すれば、分散型のコンセンサスを達成する方法が得られます。 二重支出これがなぜ信頼できるシステムなのかを理解し、支払いが正当であると信頼できるタイミングを知るには、このシステムで誰かを騙す方法を知っておくと役立ちます。 アリスが不正なブロックでボブを騙そうとした場合、アリスはボブへの 100 LedgerDollars の支払いを含むブロックをボブに送信しようとするかもしれませんが、そのブロックをネットワークの残りの部分にブロードキャストすることはありません。こうすれば、他の人は彼女がまだ 100 LedgerDollars を所有していると考えるようになります。 これを行うには、他のすべてのマイナー(それぞれが自分のブロックで作業中)よりも先に、有効な作業証明を見つける必要があります。そんなことが起きるかもしれない!おそらくアリスは誰よりも先にこの宝くじに当たったのでしょう。しかし、ボブは他のマイナーからのブロードキャストをまだ聞くことになるので、ボブが不正なブロックを信じるようにするには、アリスはボブのブロックチェーン内の他のマイナーから聞くものとは異なる特別なフォークにブロックを追加し続けるという作業を自分ですべて行う必要があります。 覚えておいてください、プロトコルによれば、ボブは常に自分が知っている最長のチェーンを信頼します。もしアリスがネットワーク上の他のマイナー全員を合わせたよりも早くブロックを見つけることができれば、数ブロックの間この状態を維持できるかもしれません。 ただし、アリスが全マイナーのコンピューティング リソースの 50% 近くを所有していない限り、他のすべてのマイナーが取り組んでいるブロックチェーンは、アリスがボブに提供している単一の不正なブロックチェーンよりも速く成長します。そのため、時間が経つにつれて、ボブはアリスから聞いた内容を拒否し、他の誰かが取り組んでいるより長いチェーンを優先するようになります。 これは、聞いた新しいブロックをすぐに信頼する必要がないことを意味することに注意してください。代わりに、その上にいくつかの新しいブロックが追加されるまで待つ必要があります。より長いブロックチェーンについて聞いたことがない場合でも、このブロックは他のすべての人が使用しているのと同じチェーンの一部であると信頼できます。 ブロックタイム、半減期、取引手数料この時点で、すべての主要なアイデアが実装されました。このプルーフ・オブ・ワークに基づく分散型台帳システムは、ビットコイン プロトコルの動作方法、および他の多くの暗号通貨の動作方法とほぼ同じです。 明確にする必要がある詳細はほんのわずかです。先ほど、作業証明とは、ブロックのハッシュが 60 個のゼロで始まる特別な数字を見つけることである可能性があると述べました。実際のビットコイン プロトコルの動作は、ゼロの数が定期的に変更されるため、ブロックを見つけるのに平均 10 分かかります。 したがって、ネットワークに参加するマイナーが増えるにつれて、このマイクロ宝くじの当選者は 10 分ごとに 1 人程度しか出なくなるまで、チャレンジはますます困難になります。新しい暗号通貨の多くは、ブロックタイムがはるかに短くなっています。 ビットコインのすべてのお金は、最終的には何らかのブロック報酬から生じます。これらの報酬はブロックごとに 50 ビットコインです。 「Block Explorer」という素晴らしいウェブサイトがあり、そこでビットコインのブロックチェーンを見ることができます。チェーンの最初の数ブロックを見ると、マイナーに与えられた 50 ビットコインの報酬以外にトランザクションが含まれていないことがわかります。 210,000 ブロックごとに (約 4 年ごとに) 報酬は半分に削減されます。つまり、現在、各ブロックの報酬は 12.5 ビットコインですが、この報酬は時間の経過とともに指数関数的に減少するため、存在するビットコインの数は 2100 万を超えることはありません。 しかし、これはマイナーがお金を稼ぐのをやめることを意味するものではありません。ブロック報酬に加えて、マイナーは取引手数料も稼ぐことができます。その仕組みは、支払いを行うたびに、その支払いを含むブロックのマイナーに支払われる少額の取引手数料を含めるオプションがあるというものです。 これを行う理由は、マイナーにインセンティブを与えて、ブロードキャストしたトランザクションを次のブロックに実際に含めるようにするためです。 ご存知のように、ビットコインでは各ブロックは約 2,400 件のトランザクションに制限されており、多くの批評家はこれを不必要に制限的であると考えています。比較すると、Visa は平均して 1 秒あたり約 1,700 件のトランザクションを処理し、1 秒あたり 24,000 件を超えるトランザクションを処理できます。ビットコインの処理速度が遅いということは、マイナーが新しいブロックに含めるトランザクションを決定するため、トランザクション手数料が高くなることを意味します。 これは暗号通貨を包括的に網羅したものからは程遠いものです。ここでは触れていないニュアンスや代替設計の選択肢が多数ありますが、さらに読んでさらに枝葉を追加したい人にとって、これが「待って、なぜ」スタイルの安定した理解の幹となることを願っています。 冒頭で述べたように、この記事を書いた動機の 1 つは、大量の資金が暗号通貨に流入し始めており、このゲームに参入する人にとっては、少なくともテクノロジーの基礎を理解しておくことが有益であるということです。 |
<<: 暗号通貨コミュニティの良き市民であるUSDTテザーは今回2億2500万を自主的に凍結した
>>: アルゼンチンの選挙は本当にビットコインにとって良いことなのか?
ブルームバーグ・マーケッツの最新ニュースレター「一日を始める前に知っておくべき5つのこと」の中で、先...
この記事は元々IPFS Force Zoneによって書かれました複雑なFilecoinマイニング プ...
❖ Filecoin のメインネットは昨日正式に開始されましたが、すべてが変わりつつあるようです。...
Antminer S15には、Bitmain初の7nmチップが搭載されています。このチップは業界を...
海外メディアtrustnodes.comによると、ビットコインの価格が史上最高の3,000ドルに上昇...
ブロックチェーンアーキテクチャの観点から見ると、パブリックチェーンはデータ層、決済層、実行層、コンセ...
BCHは最初の半減期ブロックはAntpoolによって採掘された半減後、最初のブロックが採掘された後、...
FX168 ニュース:木曜日 (3 月 24 日) のアジアセッションでは、ほとんどのビットコインの...
ウォーミングアップのラウンドの後、ジャスティン・サンは観客を失望させなかった。バフェットとの昼食の時...
Linux Foundationが主導するHyperledgerブロックチェーンプロジェクトは、イン...
11月16日、分散型取引プロトコルのBancorは流動性マイニング計画を発表したが、現在はコミュニテ...
4月の第3週には、暗号通貨の時価総額ランキングの上位10位のアルトコインに興味深い変化が見られ、いく...
米証券取引委員会(SEC)は水曜日、現在は廃止された仮想通貨取引プラットフォーム「ビットコネクト」の...
各市(州)発展改革委員会、四川省国家電網電力公司、四川省エネルギー投資グループ有限公司、四川省石炭産...
以下は採掘チュートリアルです1. ETH を購入する (すでにお持ちの場合はスキップしてください)ビ...