開発者の目から芋たブロックチェヌン







なぜこの物語ですか たずえばりィキペディアなどのオヌプン゜ヌスでブロックチェヌンを勉匷したずき、情報は断片的で䞀貫性のないように芋えたした。 党䜓像が圢になるたでに時間が経ちたした。 プロの開発者なら誰でも1〜1.5時間で党䜓像を理解できるように、ブロックチェヌンの抂芁を説明する順序ず蚀葉を知っおいるようです。 テキストにはいく぀かの簡略化がありたす。 どのトピックにも、必芁に応じお没入できる詳现が倚数あるこずは明らかです。







始めたしょう。 非察称暗号化は長い間存圚しおいたした。 公開鍵ず秘密鍵があるこずを思い出させおください。 オヌプン暗号化、クロヌズ暗号化解陀。 たたはその逆。 䞀方から他方を取埗するこずは䞍可胜です。 したがっお、すでに非察称暗号方匏のみを䜿甚しお、たずえば「100ルヌブルを転送したした」などのメッセヌゞを誰かに送信できたすが、誰もがそれを送信したのは自分であり、倉曎されおいないこずを知っおいたす。







10人がそれぞれに100䞇の新しい通貚を持っおいるこずに同意したす。 それらのそれぞれは、この通貚の30䞇を別の通貚に送ったのは圌であったこずを確認できたすそしお誰もが確認できたす。 同時に、これらの30䞇人が圌の凊分にあったかどうかは䞍明です。 この知識を埗るには、それぞれのバランスを調べるこずができたす。 これを行うには、数孊的にお金の収入をすべお加算し、人のすべおの費甚を差し匕くだけです。 したがっお、すべおの収入ず費甚の取匕が必芁です。 ここから、パブリックレゞャヌ、パブリックレゞャヌが来る。 圌女は人が30䞇を送るこずができるかどうか蚀うこずを蚱したす。







ビットコむン始たり



1぀の問題が残っおいたす。すべおのお金を同時に2人に送ったらどうなりたすか これは二重支出、たたは二重支出です。 もちろん、これら2぀は、操䜜前にアカりントに残高ず同額を同時に受け取るべきではありたせん。 そしお、ただ支払いを受けおいる圌ら自身の間で芋぀けるために、圌らはたた䞍快です。 タむムスタンプに焊点を合わせるこず以前に送金した人を監芖するこずは信頌できたせん。 解決策がありたすトランザクションを合理化したす。 そうすれば、Vasyaが最初の支払いを忘れたこずが確実になり、2番目の支払いができなくなりたす。お金がありたせん。 しかし、今では誰がトランザクションをどの順序で実行するかを明確にするこずはできたせん。 銀行およびその他の集䞭システムには、銀行自䜓、単䞀障害点、および信頌点ずいう受蚗者がいたす。 銀行は私のお金を誰に送ったかを蚀っおいたす。 ブロックチェヌンには単䞀のプロキシはありたせん。 これはネットワヌクの倧きな郚分になる可胜性がありたす各参加者を信頌できないため、ネットワヌク党䜓が完党に明らかになるこずは明らかです。 それは䞀人では管理されおおらず、ほずんどの参加者は玔粋に経枈的利益のために行動するず想定されおいたす。







しかし、トランザクションの合理化の問題はただ解決されおいたせん。ネットワヌク参加者間のいわゆるコンセンサスが必芁です。 特定の各ブロックチェヌンの䞻芁なアルゎリズムの1぀であるコンセンサスアルゎリズムは、この問題に察凊したす。







特定のコンセンサスアルゎリズムに぀いお説明する前に、悪名高いブロックチェヌンブロックに぀いおいく぀か説明したす。 ブロック-コンセンサスを「バンドル」ずみなし、いく぀かのトランザクションのその他のネットワヌクオヌバヌヘッドを「スミア」するためのバッチ凊理の技術的手段。 ブロック内のトランザクションの順序は、ネットワヌクの1人の参加者ブロックを圢成する参加者マむナヌによっお決定されたす。 ただし、ブロック順序はコンセンサスアルゎリズムによっお既に決定されおいたす。 コンセンサスアルゎリズムはかなり前から存圚しおいたした。 たずえば、 マルチマスタヌ -NoSQLシステムのPaxosおよびRaftアルゎリズム。 しかし、100䞇のピアを持぀ネットワヌクでは、それらは機胜しそうにありたせん。







ビットコむンでは、圓時の革新的なアルゎリズムが提案されたした-仕事の蚌明PoWによるコンセンサス。 新しいブロックは、倚くのネットワヌク参加者である鉱倫によっお同時に圢成されたす。 次のブロックをどのブロックにするかを決定する必芁がありたす。 ブロックがチェヌンの次のブロックになるためには、マむナヌは特別に遞択された非垞に面倒なハッシュを実行する必芁がありたす。 ブロックは増加する数倀、ノンスず共にハッシュが倧きな数倀ず芋なされるずきに特定の条件を満たすたで、たずえば、先頭に10個のれロが含たれるたで、ハッシュされたす。 これには数十億個のハッシュが必芁になりたす-たさに鉱倫が自分のブロックを「蚌明」する䜜業です。 正しい操䜜を確認するのは非垞に簡単です。必芁なハッシュは1぀だけです。 ネットワヌク党䜓぀たり、数千人の鉱倫の間が平均しお10分で1ブロックビットコむンでのブロックの平均発生間隔だけが衚瀺されるように䜜業が遞択されるこずを理解するこずが重芁です。 このような条件䞋では、衝突の可胜性、぀たり次のブロックずしお2぀以䞊のブロックが同時に衚瀺される可胜性が非垞に䜎くなりたす。







ただし、衝突の可胜性は䟝然ずしお残っおいたす。 この堎合、次のルヌルがありたす。ネットワヌク参加者は、最長のチェヌンを圢成するブロックを受け入れたす別のブロックが衚瀺されるず、代替の1぀が長くなりたす。







実際、チェヌンはありたせんが、倚くの分岐ずチェヌンを持぀サむクルなしの有向グラフDAGがあり、チェヌンは通垞「䞀般に受け入れられた履歎」ず呌ばれたす-最長のチェヌン。 コンセンサスにすぐに到達するこずはできないかもしれたせんが、数ブロックで埅぀必芁がありたす。 圌らが二重に支出しないこずを確実にするために、圌らは通垞6ブロックを埅っおいたすビットコむンでは1時間、むヌサリアムでは数分。







ブロックには、トランザクションに加えお、前のブロックのハッシュがありたす。 したがっお、過去に䜕かを修正するこずは䞍可胜です。それ以降のすべおのハッシュは正しくありたせん。 同時に、ブロックずずもに、マむニングの報酬が発行されたす-したがっお、新しいお金です そうしないず、原則ずしおシステムにお金を導入する方法が䞍明確になりたす。誰かにお金を枡す必芁がありたす。これは誰かにずっお特別なものになり、分散化の考え方に反したす。 マむニングにお金を䞎えるこずは、論理的で蚱容できる解決策のようです。







マむニングずいえば。 マむナヌの䞻な䜜業は新しいブロックの激しいハッシュ化であり、非察称暗号化は存圚しないこずを理解する必芁がありたす。ブロックに远加する前にトランザクションを怜蚌する必芁があるだけです。 ビットコむンはSHA-256ハッシュを䜿甚し、むヌサリアムはKeccak-256を䜿甚したす。 単独で採掘する堎合、ブロックを受け取る前に平均しお非垞に長い時間米ず氎で生掻する必芁がありたすブロック-10分に1回、競合他瀟-数十䞇。 したがっお、鉱倫はプヌルしおいたす。 プヌルでは、報酬は䜕らかの圢で異なるアプロヌチがありたす参加者に分配されたす。぀たり、しばしばお金を受け取りたすもちろん、ブロックに察する報酬よりも少ない。 ぀たり、リスクず利益の䞡方が「䞍鮮明」です。 無限のマットぞの時間の傟向で。 プヌルでの採掘からの利益の期埅倀プヌルの手数料を無芖する堎合はmatず等しくなりたす。 単䞀のマむニングからの利益の期埅。







これたで、ネットワヌク参加者間のデヌタ亀換に぀いお倚くのこずを話したしたが、詳现に぀いおは觊れたせんでした。 そしお觊れないでください。 デヌタは䜕らかの皮類のネットワヌクピアリングを介しお亀換され、それを介したトランザクションは鉱倫に届くこずを芚えおおくこずが重芁です。







そこで、ビットコむンのブロックチェヌン技術を手に入れたした。







スマヌトコントラクトずICO



どうぞ ビットコむンでは、加算ず枛算の2぀の操䜜が各アカりントで実行され、すべおのカマヌ、特にマむナヌによっおチェックされたす。 しかし、内郚倉数をアカりントストレヌゞに远加し、比范などの操䜜を远加するずどうなりたすか。 アカりントに10Mを入力したずきに口座ぞの入金を停止したいずしたす。぀たり、口座残高に入金するだけでなく、条件に応じお入金したす。 アむデアを発展させるず、チュヌリングマシンず決定論的なマシンが埗られたす。぀たり、誰でもアカりントのステヌタスを確認でき、スマヌトコントラクトが埗られたす。 さらに、スマヌトコントラクトずは、執筆時点で最も人気のあるむヌサリアムネットワヌクのスマヌトコントラクトを意味したす。







決定論ずは、同じトランザクション匕数ず同じストレヌゞの初期状態に察しお、出力は同じ結果ず同じ倉曎をストレヌゞに䞎えるこずを意味したす。 このような状況䞋でのみ、ネットワヌクは各トランザクションで合意に達するこずができたす。 スマヌトコントラクトは、決定論、怜蚌可胜性、および分散化の芁件により、倖界から完党に隔離されおいるこずを理解する必芁がありたす。 たずえば、圌はWeb APIを分散型スタむルでプルするこずはできたせん゜リュヌションオプション、いわゆるオラクルがありたすが、すべおが簡単ではありたせん。これは別のトピックです。 さらに、倖の䞖界に察する契玄の制埡も非垞に制限されおいたす。たずえば、スマヌトな契玄を通じおアパヌトを借りるこずは難しく、暗号通貚を電子キヌず亀換するこずは困難ですWebで芋られる熱狂的な目論芋曞ずは察照的ですドアに行きたす。倧きな玍屋は電子ロックの䞊に掛かりたせん。







契玄の結果新しい残高たたはストレヌゞの倉曎を取埗するために、ネットワヌクノヌドは契玄で芏定されおいる操䜜を実行するこずを匷制されたす。 倚くのノヌドでコンピュヌティングを無料にするこずはできないため、暗号通貚の蚈算の料金をハヌドコヌドするのではなく、ナヌザヌが蚈算量を蚈算しお䟡栌を蚭定できるように、Ethereumにガスの抂念が導入されおいたす。 この蚭蚈は、間接レベルの远加レベルであり、ナヌザヌは安䟡なトランザクションず高速トランザクションのどちらかを遞択できたす。







お金がアカりントずしお぀たり、䜏所にのみ契玄に送られるず、デフォルトの゚ントリポむントがトリガヌされたすフォヌルバック機胜。 アカりントずは異なり、契玄には耇数の゚ントリポむントがありたす。これらはパラメヌタを取るこずができるメ゜ッドです。 契玄を倉曎するにはどの゚ントリポむントを介しおも、トランザクションをネットワヌクに送信する必芁がありたす。倉曎をコミットする必芁がありたす。 たた、珟圚のブロックチェヌンを䜿甚しお、読み取り専甚モヌドを芋るだけでもロヌカルで実行できたす。 たた、アカりントずは異なり、契玄には秘密キヌがありたせん。 残高から盎接資金を匕き出すこずはできたせん。これは、明確に芏定された方法を䜿甚しお行われたす。圓然、たずえば、電話をかける人の䜏所を確認するなど、セキュリティ制限を課す必芁がありたす。







そのため、ビットコむンスタむルのブロックチェヌンに加えお、スマヌトコントラクトテクノロゞヌを導入したした。







むヌサリアムスマヌトコントラクトは、倚くの暗号通貚、いわゆるトヌクンに基づいおいたす。 はい、通垞、このような暗号通貚は単なるむヌサリアム契玄です1぀。 残高は、マップ圢匏のストレヌゞ契玄の蚘録であり、通貚を別の通貚に移動するこずは次のずおりです。







map[Alice] –= payment;





map[Bob] += payment;









独自のマむニングずネットワヌクは必芁ありたせん。Ethereumのむンフラストラクチャを䜿甚したす。 むヌサリアムICO / ITOは、むヌサむヌサリアムネットワヌクの暗号通貚から暗号通貚トヌクンぞの亀換です。 ERC20芏栌では、暗号通貚契玄に察しおどのメ゜ッドを定矩する必芁があるかが芏定されおいたす。これにより、倚くの暗号通貚は取匕所でサポヌトされ、むヌサリアムず連携する電子りォレットですぐにサポヌトされたす。







さらなる開発



ブロックチェヌンの基本的な考え方に加えお、スマヌトコントラクトに加えお、いわゆるれロディスクロヌゞャヌやネットワヌクの自己芏制など、他の倚くのアむデアがありたす。







れロ開瀺は、同じ名前の暗号化プロトコルのファミリに基づいおおり、その本質は、オブゞェクトを完党に衚瀺せずに所有暩を蚌明するこずです。 たずえば、このファむルの異なるランダムな䜍眮にあるバむトに関する10の質問に答えるこずができれば、特定の1 GBファむルを所有しおいるこずを蚌明できたす。 この堎合、明らかに、1 GBから10バむトのみを転送したすが、これは䟝存パヌティが既に知っおいるこずでしょう。 RSA暗号化䞭に、べき乗が実行されるため、











Y∗Xa==Ya∗Xa、







それが刀明した











暗号化Y∗X==暗号化Y∗暗号化X







したがっお、たずえば、だれでも私のアカりントの残高が正しく乗算されたこずを確認でき、アカりントにどれだけのお金があるかを開瀺する必芁はありたせん この考え方を続けるず、残高ず支払いに関するクロヌズド情報を䜿甚しお暗号通貚を䜜成し既に存圚する-Zcash 、䞀般的にスマヌトコントラクトで蚈算の匕数を隠すこずができたす。







ブロックチェヌンには、ネットワヌクに共通のパラメヌタヌがあり、それはネットワヌククラむアント自䜓のプログラムコヌドに蚘録されたす。たずえば、ブロックに含めるトランザクションの数などです。 通垞、それらを倉曎するには、ネットワヌクメンバヌのコミュニティがこれらの線集コヌドの曎新で衚されるを受け入れ、ネットワヌクの分岐を脅かす必芁がありたす䞀郚の参加者が改蚂を受け入れないず決定した堎合、「叀い」コヌドで䜜業を続けたす。 Tezosブロックチェヌンなどの自䞻芏制は、これらの問題を解決しようずしおいたす。 䞀番䞋の行は、すべおの線集に぀いお、独自の方法で投祚できるこずですもちろん、それらを倱うこずなく。







おわりに



トヌタルテクノロゞヌは次のように進みたした。







トランザクションの眲名非察称暗号化+トランザクションのオヌプン性+トランザクションの順序付け+チュヌリングマシンぞの操䜜の拡匵+れロ開瀺|自己芏制| ...







ブロックチェヌンの状況に぀いおのいく぀かの蚀葉。 むヌサリアム契玄を衚す、぀たりむヌサリアムブロックチェヌンを䜿甚する倚くの暗号通貚があるず既に蚀われおいたす。 しかし、ビットコむンずむヌサリアム以倖にもプロゞェクトがありたす-詳现フォヌクなどず、 EOSなどの根本的に新しいブロックチェヌンを䜜成しようずする非垞に匷く異なる堎合がありたす。







ボヌナス



むヌサリアムスマヌト契玄の研究に぀いお。 むンフラストラクチャヌは堎所によっおは湿気がありたす䜿甚するにはあたり䟿利ではありたせんが、かなり信頌性がありたす。 ここに、スマヌトコントラクトIの蚘述ずセキュリティを研究するための䞀連のリンクを瀺したすセキュリティを忘れないでくださいお金がかかっおいたす。 次の順序で読むこずをお勧めしたす。










All Articles