ビットコむン分散型電子マネヌシステム

䞭本S氏によるオリゞナル蚘事「ビットコむンピアツヌピア電子キャッシュシステム」の 無料翻蚳をコミュニティの泚目を集めおいたす。



翻蚳者から

私はプロの翻蚳者ではなく、暗号技術も埗意ではありたせんが、最近ビットコむンテクノロゞヌに興味を持ち、基瀎から勉匷を始めたいず思いたした。 簡単なむンタヌネット怜玢では、䞭本Sの創立蚘事の翻蚳は埗られなかったので、自分で翻蚳しおみるこずにしたした。

翻蚳が開始されお間もなく、私は英語が蚘事の著者の母囜語ではない可胜性が高いこずに気付きたした。 しかし、ほずんどの困難は克服され、私はこの最終補品を公開するこずにしたした。





たもなく。

    電子決枈の完党分散バヌゞョン
    財政なしで盎接オンラむン支払いを蚱可したす
    組織。 デゞタル眲名は゜リュヌションの䞀郚に過ぎず、すべおの利点がありたす
    あなたはただ信頌が必芁であるずいう事実のために倱われたす
    同じ資金を䜿うこずができないようにセンタヌ
    数回再利甚可胜な問題。 私たちは
    再利甚の問題に察する解決策を提䟛する
    分散ネットワヌク技術を䜿甚したす。 そのような決定
    トランザクションをネットワヌクタむムスタンプずずもにに送信しおいたす
    レコヌドを圢成する困難なハッシュチェヌンの圢で
    ハッシュチェヌンを蚈算せずに倉曎するこずはできたせん。 最長 
    チェヌンは最も信頌できる蚌拠です 
    その䜜成時の事実によるむベントのシヌケンス
    最も倚くの蚈算胜力を費やしたした。 以来
    䞻な凊理胜力はノヌドによっお制埡されたす
    䟵入者に関連しないネットワヌク、これらのノヌドは
    攻撃者よりも速く、長いチェヌンを生成したす。 圌女自身
    ネットワヌク自䜓には最小限の構造が必芁です。 最高の
    パフォヌマンスメッセヌゞがブロヌドキャストされる、
    ノヌドはネットワヌクを離れお再び参加し、受け入れ、
    生成された最長のハッシュチェヌンを蚘録しながら
    ノヌドがない堎合。






1.はじめに



むンタヌネット䞊の電子決枈は、支払いを行うための信頌できる第䞉者である金融機関にほが完党に䟝存しおいたす。 このシステムはほずんどのトランザクションでうたく機胜したすが、先倩的な欠陥、぀たり信頌ベヌスのモデルに悩たされおいたす。



金融機関は仲介業者ずの玛争を避けるこずができないため、完党に返金䞍可の支払いは䞍可胜です。 仲介業者に関連する費甚は取匕費甚を増加させ、これは最小取匕芏暡の制限に぀ながり、毎日の小額の支払いを䞍適切にしたす。 さらに、取消䞍胜なサヌビスを提䟛するサヌビスに察しお取消䞍胜な支払いを行うこずができないため、䟡栌が䞊昇したす。 戻る胜力には信頌できる仲介者が必芁です。 売り手は顧客に泚意を払わざるを埗ず、取り消せない支払いの可胜性がある堎合に必芁ずされるよりも倚くの情報を顧客に芁求したす。 リタヌンの䞀定の割合は避けられないず想定されたす。 買い手が普通のお金を䜿甚すれば、これらのコストず疑念を避けるこずができたすが、信頌できる仲介者なしでむンタヌネット䞊で支払いを行うメカニズムはありたせん。



そのため、信頌ではなく暗号の耇雑さに基づいお、2぀の圓事者が信頌できる仲介者なしで盞互に転送できるようにする電子決枈システムが必芁です。 取り消すこずがほずんど䞍可胜な取匕は、売り手を詐欺垫から保護し、定期的な゚スクロヌメカニズムを簡単に実装しお、買い手を保護できたす。 この蚘事では、耇雑なトランザクションを時系列で生成する分散型タむムスタンプサヌバヌを䜿甚しお、資金の再利甚の問題に察する゜リュヌションを提案したす。 フレンドリヌノヌドが攻撃者のどのグルヌプよりも倚くのコンピュヌティングパワヌを同時に制埡しおいる限り、システムは安党です。



2.トランザクション



デゞタル眲名のチェヌンを電子コむンず呌びたす。 各所有者はコむンを次のコむンに送信し、前のトランザクションのハッシュをデゞタル眲名し、チェヌンの最埌に公開キヌを远加したす。 受取人は、所有者のチェヌンを確認するこずで眲名コむンを確認できたす。

翻蚳者から
オリゞナル 各所有者は、前のトランザクションのハッシュず次の所有者の公開キヌにデゞタル眲名し、これらをコむンの末尟に远加するこずにより、コむンを次のコむンに転送したす。 次の蚘事に出くわすたで、3日間、次の写真ず曞かれた内容を盞関させようずしたした。前のもの、぀たり珟圚のもの。」






もちろん、問題は、以前の所有者の誰かが同じお金を2回䜿ったかどうかを受取人が知るこずができないこずです。 通垞、この問題は、信頌できる䞀元化された組織、぀たり各トランザクションの二重支出をチェックする仲介者を䜿甚するこずで解決されたす。 各トランザクションの埌、コむンは叀いコむンの代わりに新しいコむンを発行する仲介者に戻らなければならず、仲介者によっお発行されたコむンのみが2回䜿甚されないこずが保蚌されたす。

このアプロヌチの問題は、金融システム党䜓の運呜が仲介䌚瀟に䟝存しおいるこずです。なぜなら、すべおの取匕は銀行を介しお行われるためです。



したがっお、受取人が送信者が他の誰かに同じコむンを支払っおいないこずを知る方法が必芁です。 私たちの堎合、以前の取匕履歎のみが重芁であり、コむンを二重に䜿甚しようずする次の詊みは気にしたせん。 トランザクションが存圚しないこずを確認する唯䞀の方法は、すべおのトランザクションを知るこずです。 仲介者を含むモデルでは、仲介者はすべおのトランザクションずその順序を知っおいたす。 信頌できる仲介者なしでこれを達成するには、すべおのトランザクションが党員に知られおいる必芁がありたす。 すべおの支払いの単䞀の履歎に぀いお参加者が同意するシステムが必芁です。 受取人は、取匕䞭に、ほずんどの参加者が初めお受領したこずに同意するこずを確認する必芁がありたす。



3.タむムスタンプサヌバヌ



圓瀟が提䟛する゜リュヌションは、タむムスタンプサヌバヌに基づいおいたす。 タむムスタンプサヌバヌの操䜜は、レコヌドのブロックをハッシュし、時間を蚘憶し、ハッシュを公開するこずです。 タむムスタンプは、デヌタがその時点で存圚し、ハッシュのために到着した順序で存圚したこずの蚌拠ずしお機胜したす。 各タむムスタンプのハッシュには前のタむムスタンプが含たれ、埌続の各タむムスタンプが前のタむムスタンプを確認するチェヌンを圢成したす。





4.耇雑な蚈算。



分散ネットワヌクに基づいおタむムスタンプサヌバヌを実装するには、Hashcashなどの耇雑な蚈算アルゎリズムを䜿甚する必芁がありたす。 耇雑な蚈算には、SHA-256アルゎリズムでハッシュされたずきに、倚数のれロビットで始たるハッシュを䞎える倀を芋぀けるこずが含たれたす。 平均蚈算時間は、れロビットの数が増えるず指数関数的に増加し、単䞀のハッシュを蚈算するこずで結果を怜蚌できたす。



タむムスタンプサヌバヌでは、ブロック内の特別な倉数nonceによっお単䜍を増やしお、垌望する数のれロビットのハッシュが芋぀かるたで、耇雑な蚈算を実装したす。 耇雑な蚈算を実行する時間が費やされるず、ブロックを倉曎するには、蚈算をやり盎す必芁がありたす。 次のブロックはチェヌンを圢成するため、ブロックを倉曎する䜜業には、その埌のすべおのブロックを倉曎する䜜業が含たれたす。





怜蚌可胜な耇雑な蚈算は、ほずんどの参加者から確認を取埗する問題も解決したす。 「1぀のIPアドレス-1぀の投祚」の原則に基づく確認は、倚くのIPアドレスを管理しおいる人なら誰でも信甚を倱う可胜性がありたす。 チェックコンピュヌティングは基本的に「1プロセッサ-1祚」です。 倧倚数からの確認は最長のチェヌンであり、その䜜成には最倧の蚈算胜力が費やされたした。 コアコンピュヌティングパワヌが正盎な参加者によっお制埡されおいる堎合、正盎なチェヌンは悪意のある参加者のチェヌンよりも速く成長したす。 ブロックを倉曎するには、攻撃者はこのブロックに関連付けられた耇雑な蚈算を実行する必芁がありたす。その埌のすべおのブロックず同様に、正盎なブロックビルダヌに远い぀いお远い越す必芁がありたす。 さらに、遅い攻撃者では、新しいブロックが远加されるず、远い぀く胜力が指数関数的に枛少するこずを瀺したす。



5.ネットワヌク



次の手順では、ネットワヌクの動䜜に぀いお説明したす。

1新しいトランザクションがすべおのノヌドにブロヌドキャストされたす

2各ノヌドは新しいトランザクションをブロックに入れたす

3各ノヌドは耇雑な蚈算を実行しおブロックを芋぀けたす

4ノヌドがそのブロックの゜リュヌションを芋぀けるず、このブロックをすべおのノヌドにブロヌドキャストしたす。

5ノヌドは、ブロック内のすべおのトランザクションが正しく期限切れでない堎合にのみブロックを受け入れたす。

6ブロックを受け入れるノヌドの同意は、受信したブロックのハッシュを前のハッシュずしお䜿甚しお、ノヌドがチェヌン内の次のブロックの䜜成䜜業を開始するずいう事実で衚されたす。



ノヌドは垞に最も長いチェヌンを正しいず認識し、それを増やすこずに取り組んでいたす。 2぀のノヌドが次のブロックの異なるバヌゞョンを同時にブロヌドキャストする堎合、ノヌドは異なるバヌゞョンで各バヌゞョンを受信できたす。 この堎合、ノヌドは以前に受信したブロックで䜜業を開始したすが、埌でより長いチェヌンになる堎合に備えお別のバヌゞョンを保存する必芁がありたす。 蚈算の次の段階が完了し、分岐の1぀が他の分岐より長くなるず、分岐は無芖できたす。 他のブランチず連携するノヌドは、最も長いノヌドに切り替わりたす。



新しいトランザクションのブロヌドキャストは、すべおのノヌドに到達する必芁はありたせん。 倚くのノヌドに到達するずすぐにナニットに含たれたす。 ブロックブロヌドキャストがすべおの人に届かない堎合もありたす。 ノヌドがブロックを受信しお​​いない堎合、チェヌン内の欠萜しおいるリンクを埋めるために次のブロックを受信したずきにノヌドが芁求したす。



6.むンセンティブ



ブロック内の最初のトランザクションは、ブロックの䜜成者に属する新しいコむンを開始する特別なトランザクションになるこずに同意したす。 これにより、ノヌドにネットワヌクを維持するむンセンティブが远加され、コむンを発行する䞭心的な暩限がないため、最初にコむンを流通させる方法が提䟛されたす。 新しいコむンの絶え間ない远加は、埪環に金を远加するためにリ゜ヌスが消費されるずきの金採掘のようなものです。 この堎合、プロセッサの時間ず電力が消費されたす。



むンセンティブもトランザクションに存圚する堎合がありたす。 トランザクションの出力の倀が入力の倀よりも小さい堎合、この差はトランザクションを含むブロックのむンセンティブ倀に加算されたす。 所定の数のコむンが発行されるず、取匕を通じおのみ刺激が実行されたす。぀たり、むンフレは完党になくなりたす。



むンセンティブは、ノヌドが正盎でいるこずを奚励したす。 貪欲な攻撃者がすべおの正盎なノヌドよりも倚くのコンピュヌティングパワヌを集めるこずができる堎合、圌は遞択を迫られたす。コむンを盗むこずで人を欺くか、自分で新しいコむンを生成するかです。 圌は、ルヌル、他のどの組み合わせよりも倚くのコむンを手に入れるこずができ、システムを損なうこずのないルヌル、そしおそれ自身の状態でプレヌする方が有益だず思うでしょう。



7.ディスク容量の䜿甚



最近のトランザクションはブロックに曞き蟌たれたすが、拒吊されたトランザクションもディスク領域を占有したす。 ブロックハッシュを倉曎せずにこれを修正するために、トランザクションはマヌクルツリヌでハッシュ化され、ルヌトのみがブロックハッシュに含たれたす。 叀いブロックは、朚の枝をトリミングするこずでパックできたす。 内郚ハッシュは保存できたせん。





非トランザクションブロックヘッダヌは玄80バむトかかりたす。 ブロックが10分ごずに生成される堎合、80バむト* 6 * 24 * 365 = 4.2MB /幎。 2008幎、コンピュヌタヌは䞻に2GBのRAMで販売され、ムヌアの法則により幎間1.2GBの増加が予枬されおいるため、ブロックヘッダヌがメモリに保存されおいおもディスク領域は問題になりたせん。



8.簡単な支払い確認



ノヌドには、ネットワヌク党䜓に関する情報がない堎合でも、支払いを確認する機胜がありたす。 ナヌザヌは、最長のチェヌンのブロックヘッダヌのコピヌを持っおいるだけで十分です。これは、最長のチェヌンを受信したず刀断するたで、ネットワヌクノヌドに問い合わせるこずによっお取埗できたす。 その埌、ナヌザヌはMerklブランチを受け取り、トランザクションを、トランザクションず同じタむムスタンプを持぀ブロックず照合したす。 トランザクション自䜓を怜蚌するこずはできたせんが、チェヌン内の堎所ず比范するこずで、ノヌドがそれを受け入れたこず、およびネットワヌクがこのトランザクションを受け入れたこずを確認した埌に远加されたブロックを確認できたす。





もちろん、ネットワヌク内のほずんどのノヌドが正盎であれば、このようなチェックは可胜ですが、ネットワヌクが攻撃者によっお制埡されおいる堎合は脆匱です。 ホストは互いのトランザクションを怜蚌できたすが、攻撃者がネットワヌクを制埡しおいる堎合、攻撃者は簡単な方法を䜿甚しおトランザクションを停造できたす。 これを防ぐ1぀の方法は、ホストが間違ったブロックを怜出したずきに、ホストからのメッセヌゞを凊理するこずです。 メッセヌゞを受信するず、ナヌザヌプログラムはブロック党䜓ず疑わしいトランザクションをロヌドしお、通垞の方法で怜蚌できたす。 支払いが頻繁に行われるビゞネスの堎合、最善の解決策は、トランザクションのより安党で高速な怜蚌のための本栌的なネットワヌクノヌドを持぀こずです。



9.金額を組み合わせお共有する



コむンを個別に転送するこずはできたすが、転送されるセントごずに個別のトランザクションを䜜成するのは面倒です。 金額を分割および結合できるようにするために、トランザクションには倚くの入力ず出力が含たれたす。 通垞、それらには、以前の倧きなトランザクションからの1぀の入力、たたは少量を組み合わせた倚くの入力、および少なくずも2぀の出力がありたす。1぀は支払い甚で、もう1぀は倉曎がある堎合は送信者に返送したす。





すべおのトランザクションの履歎を埩元する必芁がないので、耇数のトランザクションに䟝存するトランザクションのファンは、ここでは問題にならないこずに泚意しおください。



10.守秘矩務



埓来の銀行モデルでは、関係するすべおの関係者の情報ぞのアクセスを制限するこずにより、機密性が実珟されたす。 すべおのトランザクションを公衚する必芁があるため、このアプロヌチは䞍芁になりたすが、公開キヌの匿名性により、機密性を維持できたす。 誰もが誰かが特定の金額を誰かに送金したこずを芋るこずができたすが、この情報を特定の人ず比范するこずはできたせん。 これは、取匕の時間ず芏暡は誰にも知られおいるが、取匕の圓事者は明らかにされおいない取匕所取匕のようなものです。





远加のセキュリティシヌルドずしお、共通の所有者にマッピングできないトランザクションごずに新しいキヌペアを䜿甚する必芁がありたす。 すべおの入力は同じ所有者に属するず芋なされるため、倚くの入力があるトランザクションでは、䟝然ずしおいく぀かの比范は避けられたせん。 リスクは、キヌの所有者が特定されるず、所有者の他のトランザクションを芋぀けるこずが可胜になるこずです。



11.蚈算



攻撃者が正盎なノヌドよりも速く代替チェヌンを生成しようずするシナリオを考えおみおください。 これが成功しおも、圌はシステムを倉曎するこずはできたせん。たずえば、空からコむンを䜜成したり、誰にも転送されおいないコむンを受け取ったりするこずはできたせん。 ノヌドは間違ったトランザクションを支払いずしお受け入れず、正盎なノヌドは間違ったトランザクションのブロックを受け入れたせん。 攻撃者は、最近行った支払いを自分自身に戻すこずによっお、自分のトランザクションの1぀のみを倉曎できたす。



正盎なチェヌンず攻撃者のチェヌンの間の競争は、二項ランダムりォヌクの芳点から説明できたす。 成功したむベントずは、タヌゲットに+1で近づくず正盎なチェヌンが1ブロック増加するこずであり、倱敗したむベントずは、攻撃者のチェヌンで1ブロック増加し、リヌドが-1枛少するこずです。



制玄された環境で攻撃する攻撃者の胜力は、ギャンブラヌの砎滅問題ギャンブラヌの胞像の説明に䌌おいたす。 クレゞットが無制限のギャンブラヌが制玄条件の䞋でゲヌムを開始し、無制限の数のゲヌムを保持しお勝ち取ろうずするずしたす。 偶然の確率、たたは攻撃者が正盎なチェヌンビルダヌを远い抜く確率を蚈算できたす。



p =正盎なホストが次のブロックを芋぀ける確率

q =攻撃者が次のブロックを芋぀ける確率

q z =攻撃者がzブロック遅れおいる堎合にレヌスに勝぀確率







p> qずするず、攻撃者が遅れおいるブロックの数が増えるず、確率は指数関数的に枛少したす。 したがっお、もし圌が最初の段階で前進するこずができなければ、将来勝぀可胜性はほずんどなくなりたす。



次に、送信者がトランザクションを倉曎できないこずを確認するために、受取人が埅機する時間を怜蚎したす。 送信者が攻撃者であり、受信者に支払いが行われたず信じおもらいたいが、しばらくしお支払いを自分に戻すず仮定したす。 これが発生するず受信者に通知されたすが、送信者は手遅れになるこずを望んでいたす。



受信者は新しいキヌペアを生成し、眲名埌すぐに送信者に公開キヌを枡したす。 これにより、送信者は、ブロックチェヌンを事前に準備しお、その時点でトランザクションを完了するためにスケゞュヌルよりも前に䜜業するこずはできたせん。 䞍正な送信者は、トランザクションが送信されたずきにのみ、このトランザクションの代替バヌゞョンを含む䞊列チェヌンで密かに䜜業を開始できたす。



受信者は、トランザクションがブロックに远加され、その埌Zブロックが远加されるたで埅機したす。 圌は、攻撃者がどのような構築段階にあるかを知りたせんが、正盎なブロックがブロックごずに同じ平均時間で構築されたず仮定するず、攻撃者の進捗の期埅倀はポア゜ン分垃から芋぀けるこずができたす





攻撃者がただ前進できる確率を埗るために、攻撃者の進行状況の各倀のポア゜ン分垃の密床に、攻撃者がこのポむントから前進する確率を掛けたす。





たたは再グルヌプ化埌





Cコヌドで倉換

#include <math.h> double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; }
      
      







このプログラムを実行するず、確率がzずずもに指数関数的に枛少するこずを簡単に怜蚌できたす。

q = 0.1

z = 0 P = 1.0000000

z = 1 P = 0.2045873

z = 2 P = 0.0509779

z = 3 P = 0.0131722

z = 4 P = 0.0034552

z = 5 P = 0.0009137

z = 6 P = 0.0002428

z = 7 P = 0.0000647

z = 8 P = 0.0000173

z = 9 P = 0.0000046

z = 10 P = 0.0000012

q = 0.3

z = 0 P = 1.0000000

z = 5 P = 0.1773523

z = 10 P = 0.0416605

z = 15 P = 0.0101008

z = 20 P = 0.0024804

z = 25 P = 0.0006132

z = 30 P = 0.0001522

z = 35 P = 0.0000379

z = 40 P = 0.0000095

z = 45 P = 0.0000024

z = 50 P = 0.0000006



P <0.001の゜リュヌション



P <0.001

q = 0.10 z = 5

q = 0.15 z = 8

q = 0.20 z = 11

q = 0.25 z = 15

q = 0.30 z = 24

q = 0.35 z = 41

q = 0.40 z = 89

q = 0.45 z = 340



12.結論



信頌できる仲介者のいない電子決枈システムを提案したした。 これは、デゞタル眲名で構成されるコむンを䜿甚するずいう原則に基づいおいたす。コむンは、信頌性の高い制埡を提䟛したすが、二重䜿甚の問題を防ぐこずはできたせん。 解決策は、耇雑な蚈算を䜿甚する分散ネットワヌクを䜿甚しお公開トランザクション履歎を蚘録するこずです。正盎なノヌドが蚈算胜力の倧郚分を制埡しおいる堎合、攻撃者はすぐに倉曎できなくなりたす。 構造化されおいないシンプルなネットワヌクの信頌性。 各ノヌドは最小限の調敎で独立しお動䜜したす。 メッセヌゞは特定のルヌトを通るのではなく、最速のパスを通るので、ノヌドは自身を識別する必芁はありたせん。 ノヌドはネットワヌクを離れお再参加し、過去に䜜成されたチェヌンを受け入れお新しいトランザクションを怜蚌できたす。 ノヌドは蚈算時間で投祚し、さらなる䜜業のためにチェヌンに接続するか、間違ったブロックを無芖するこずにより、ブロックの正確性に同意したす。 このような同意メカニズムにより、必芁なルヌルずむンセンティブを実装できたす。



All Articles