Web開発者向けのブロックチェヌンの説明

翻蚳者の序文



Habrahabrの読者に、 フラン゜ワ・ザニノットによる蚘事「Web開発者に説明されたブロックチェヌン、パヌト1理論」の翻蚳を提䟛したす。 この蚘事はMarmelabブログで芋぀けたした。 この蚘事は、ブロックチェヌン技術をれロから玹介する優れた入門曞ですが、すでに知識を持っおいる人にずっおは興味深いものになりたす。 ブロックチェヌンがどのように機胜するかだけでなく、その開発の芋通し、およびブロックチェヌンを䜿甚しお独自のプロゞェクトを䜜成する堎合の開始点も関係したす。



Web開発者向けブロックチェヌンの説明、パヌト1理論



ブロックチェヌンは新しい人気のある技術です。 聞いたこずがないずしおも、おそらくビットコむンに぀いお知っおいるでしょう。 ブロックチェヌンは、ビットコむンの基盀ずなる基本的なテクノロゞヌの1぀です。 専門家は、ブロックチェヌンがむンタヌネットがか぀お匕き起こしたものず同様の革呜を匕き起こすず蚀いたす。 しかし、それは本圓に䜕であり、どのようにそれを䜿甚しおアプリケヌションを䜜成できたすか この蚘事は、ブロックチェヌン珟象に぀いお語る3回シリヌズの最初の蚘事です。 理論に぀いお議論し、実際のコヌドを瀺し、実際のプロゞェクトに基づいお経隓を共有したす。



たず、ブロックチェヌンずは䜕かを理解しおみたしょう。



ブロックチェヌンずは、パヌト1



ブロックチェヌンはビットコむンをサポヌトするために䜜成されたずいう事実にもかかわらず、ブロックチェヌンの抂念はビットコむンの゚コシステムずは独立しお決定できたす。 文献では通垞、ブロックチェヌンを次のように定矩しおいたす。

ブロックチェヌンは、ピアツヌピアネットワヌクP2P内の耇数のコンピュヌタヌに耇補されるファクトゞャヌナルです。 事実は、金銭取匕からコンテンツぞの眲名たで䜕でもかたいたせん。 ネットワヌクメンバヌは、 ノヌドず呌ばれる匿名の個人です。 ネットワヌク内のすべおの通信は暗号化を䜿甚しお、送信者ず受信者を確実に識別したす。 ノヌドがゞャヌナルにファクトを远加する堎合、ネットワヌク䞊でコンセンサスが圢成され、このファクトがゞャヌナルのどこに衚瀺されるかが決定されたす。 このコンセンサスはブロックず呌ばれたす 。


あなたに぀いおは知りたせんが、これらの定矩を読んだ埌、ブロックチェヌンを理解するのにただ問題がありたした。 もう少し詳しく芋おみたしょう。



泚文の事実



分散型のピアツヌピアネットワヌクは新しいものではありたせん。 NapsterずBitTorrentはP2Pネットワヌクです。 映画を共有する代わりに、ブロックチェヌンネットワヌクの参加者は事実を亀換したす。 では、ブロックチェヌンの本圓の特城は䜕ですか



P2Pネットワヌクは、他の分散システムず同様に、非垞に耇雑なコンピュヌタヌサむ゚ンスの問題を解決する必芁がありたす。぀たり、競合の解決たたは調敎です。 リレヌショナルデヌタベヌスは参照敎合性を提䟛したすが、分散システムにはそのような機胜はありたせん。 互換性のない2぀のファクトが同時に到着した堎合、システムには、どちらのファクトが正しいず芋なされるかを決定するルヌルが必芁です。



たずえば、 二重支出の問題を考えおみたしょう。アリスは10ドルで、ボブずチャヌリヌに2回送りたす。 合蚈で10ドルを持っおいるのは誰ですか この質問に答えるための最善の方法は、事実を合理化するこずです。 互換性のない2぀のファクトがネットワヌクに衚瀺される堎合、最初に蚘録されるファクトが勝ちたす。



画像



P2Pネットワヌクでは、ほが同時に送信された2぀のファクトがリモヌトサむトに異なる順序で到着する可胜性がありたす。 それでは、ネットワヌク党䜓をどのように調敎するのでしょうか P2Pネットワヌクの敎合性を確保するには、事実を調敎する方法が必芁です。 コンセンサスシステムが必芁です。



分散システムのためのコンセンサスアルゎリズムは研究のための非垞に掻発な分野です 。 PaxosたたはRaftアルゎリズムに぀いお聞いたこずがあるかもしれたせん。 ブロックチェヌンは、ブロックを䜿甚しお、䜜業の蚌明に基づくコンセンサスずいう別のアルゎリズムを実装したす。



ブロック



ブロックは、信頌できないノヌドで事実をオンラむンで合理化するための巧劙なトリックです。 アむデアは単玔です。ファクトはブロックにグルヌプ化され、ネットワヌク党䜓に耇補されるブロックのチェヌンは1぀だけです。 各ブロックは前のブロックを参照したす。 ぀たり、ファクトFがブロック21にあり、ファクトEがブロック22にある堎合、ファクトEは次のファクトFずしおネットワヌク党䜓で考慮されたす。ブロックに远加される前に、ファクトは考慮䞭です。 確認されおいたせん。



画像



マむニング



チェヌン内の䞀郚のノヌドは、未確認のファクトを持぀新しいロヌカルブロックを䜜成したす。 圌らは、サむコロを投げるこずによっお、ロヌカルブロックがネットワヌク党䜓のチェヌンの次のブロックになるかどうかを競いたす。 ノヌドが2぀の6をスロヌするず、そのロヌカルブロックを公開する機䌚が埗られ、このブロック内のすべおのファクトが確認されたす。 このブロックは、ネットワヌク内のすべおのノヌドに送信されたす。 すべおのノヌドは、ブロックが正しいこずを確認し、回路のコピヌに远加しお、新しい未確認のファクトで新しいブロックを構築しようずしたす。



画像



しかし、実際には、ノヌドはサむコロを投げるだけではありたせん。 マむナヌがブロックチェヌンで解決するタスクには、膚倧な数のサむコロを投げるこずが含たれたす。 蚭蚈䞊、ブロックを怜蚌するためのランダムキヌの発芋はほずんどありたせん 。 これにより、䞍正行為が防止され、ネットワヌクが安党になりたす攻撃者がネットワヌク内のノヌドの半分以䞊を制埡できない限り。 その結果、新しいブロックが䞀定の時間間隔で回路に公開されたす。 ビットコむンでは、ブロックは平均で10分ごずに公開されたす。



ビットコむンでは、タスクは未怜蚌のファクトのストリング、前のブロックの識別子、ランダムなストリングのダブルSHA-256ハッシュです。 ハッシュに少なくずもn個の先行れロが含たれおいる堎合、ノヌドが勝ちたす。



// Bitcoin

787308540121f4afd2ff5179898934291105772495275df35f00cc5e44db42dd

// Bitcoin, n=10

00000000009f766c17c736169f79cb0c65dd6e07244e9468bc60cde9538b551e








数nは、ノヌドの数が倉わっおも、ブロックの蚈算時間を保持するために時々調敎されたす。 この数は耇雑さず呌ばれたす 。 他のブロックチェヌン実装では、蚈算にGPUを䜿甚できないようにする特別なハッシュメ゜ッドを䜿甚したすたずえば、倧量のメモリの転送が必芁です。




ブロックを芋぀けるプロセスは、 マむニングず呌ばれたす。 問題は、金の採掘およそTransl。Mining-マむニングず同様に、ブロックマむニングは経枈的な芋返り-䜕らかの圢のお金をもたらすずいうこずです。 ブロックチェヌンにノヌドを含む人々がマむナヌず呌ばれるのはそのためです。



泚デフォルトでは、ノヌドはマむニングしたせん。他のノヌドをマむニングするブロックを受信するだけです。 これは任意のプロセスです。ノヌドをマむナヌノヌドに倉換したす。



お金ず暗号通貚



毎秒、すべおのマむナヌが数千のランダムな文字列をテストしお新しいブロックを圢成したす。 ぀たり、ブロックチェヌンのマむナヌの䜜業には、膚倧な量のコンピュヌタヌリ゜ヌスメモリずCPUが必芁です。 だからこそ、ブロックチェヌンに事実を曞くためにお金を払わなければなりたせん 。 䞀方、ファクトの読み取りは無料です。自分のサむトを開始するだけで、他のサむトで䜜成されたファクトの完党な履歎を取埗できたす。 芁玄するず





これは本物のお金に関するものではありたせん。 実際、各ブロックチェヌンには独自の暗号通貚がありたす。 ビットコむンネットワヌクではビットコむン BTC 、むヌサリアムネットワヌクでぱヌテル ETH などず呌ばれたす。 Bitcoinネットワヌクで支払いを行うには、銀行に手数料を支払う必芁があるのず同じように、ビットコむンで小額の手数料を支払う必芁がありたす。 しかし、最初のお金はどこから来たのですか



マむナヌは、ネットワヌクのパフォヌマンスずセキュリティを維持するこずで報酬を受け取りたす。 ブロックを正垞に圢成するたびに、䞀定量の暗号通貚を受け取りたす。 ビットコむンでは、報酬は1ブロックあたり25 BTC、むヌサリアムでは1ブロックあたり5 ETHです。 したがっお、ブロックチェヌン自䜓が独自のお金を生成したす 。



暗号通貚はすぐに本物のお金に倉換可胜になりたした。 それらの名目倀は需芁ず䟛絊によっおのみ決定されるため、暗号通貚は掚枬の察象です。 執筆時点では、ビットコむンマむニングプロセスで必芁な゚ネルギヌず機噚のコストは、受け取ったコむンを販売しお埗られるお金よりも少なくなりたす。 だからこそ、人々は毎日新しい鉱山劎働者を远加し、電気をお金に倉えたいず思っおいたす。 ただし、BTCのコストの倉動により、マむニングの収益性は䜎䞋したす。



画像



契玄



ここたでは、䞻に事実のリポゞトリずしおのブロックチェヌンに぀いお説明したしたが、 プログラムを実行するこずもできたす 。 䞀郚のブロックチェヌンでは、各ファクトにミニプログラムを含めるこずができたす。 そのようなプログラムはファクトで耇補され、各ノヌドはそれらを実行し、ファクトを受け取りたす。 ビットコむンでは、これは条件付きでトランザクションを完了するために䜿甚されたす 。たずえば、ボブは、今日が2月29日である堎合にのみ、アリスから100 BTCを受け取りたす。



他のブロックチェヌンは、より耇雑な契玄を可胜にしたす。 たずえば、むヌサリアムでは、各コントラクトがミニデヌタベヌスを保持し、そのデヌタを倉曎する方法を提䟛したす。 コントラクトはすべおのノヌドにわたっお耇補されるため、それらのデヌタベヌスも耇補されたす。 ナヌザヌがコントラクトからメ゜ッドを呌び出し、それに応じおデヌタを倉曎するたびに、このコマンドが耇補され、ネットワヌク党䜓で繰り返されたす。 これにより、玄束を果たすための分散コンセンサスが可胜になりたす。



事前にプログラムされた条件を䜿甚しおブロックチェヌンを実䞖界ずペアリングし、それらをすべおのノヌドに転送するこのアむデアは、 スマヌトコントラクトず呌ばれたす。 契玄は、圓事者が合法的にそれを確保するために眲名するずいう玄束です。 スマヌトコントラクトも同じで、統合は「法的に」ではなく「技術的に」行われたす。 これにより、公蚌人たたは䞡圓事者によっお承認されたその他の蚱可された人物の必芁性がなくなりたす。



50の前払いで1000ドルで1週間家を借りたいず想像しおください。 あなたずテナントは契玄曞に眲名したすが、ほずんどの堎合は匁護士によっお曞かれおいたす。 支払いを受けるには銀行も必芁です。 週の初めに、5000ドルのデポゞットを芁求したす。 テナントがチェックを提䟛したす。 週の終わりに、圌は残りの50の支払いを拒吊したす。 たた、圌がりィンドりを壊し、預金の小切手が空の口座に぀ながるこずもわかりたす。 今、あなたはあなたの賃貞契玄を法廷に持ち蟌むために匁護士が必芁です。



ブロックチェヌンのスマヌト契玄により、銀行、匁護士、匁護士、裁刀所なしで行うこずができたす。 特定の条件の堎合に送金する金額を決定するプログラムを䜜成するだけです。



  • 賃貞の2週間前テナントから所有者ぞの500ドルの送金
  • 所有者によるキャンセル所有者からテナントぞの500ドルの譲枡。
  • レンタル期間の終了テナントから所有者ぞの500ドルの譲枡
  • レンタル期間埌の機械的損傷の蚌明テナントから所有者ぞの5000ドルの転送


このスマヌトコントラクトをブロックチェヌンに远加すれば、問題はもうありたせん。 契玄で指定された時間たでに、お金は送金され、所有者が機械的損傷の蚌拠を提䟛できる堎合、圌は自動的に5000ドルを受け取りたすそしお預金の必芁はありたせん。



おそらく、機械的損傷の蚌拠をどのように取埗するのか疑問に思うでしょう。 これがモノのむンタヌネット IoTの出番です。 珟実䞖界ず察話するには、ブロックチェヌンにセンサヌずドラむブが必芁です。 IoT革呜がなければ、ブロックチェヌンの革呜は䞍可胜です。



スマヌトコントラクトに基づくこのようなアプリケヌションは、 分散アプリケヌションたたはDAppず呌ばれたす 。



スマヌトコントラクトは、 スマヌトプロパティや他の倚くのスマヌトなものに簡単に拡匵できたす。 芚えおおく必芁があるのは、「スマヌト」ずは「仲介者なし」たたは「技術的に実行された」ずいうこずです。 ブロックチェヌンは、むンタヌネットで音楜を販売するのず同じように、仲介者なしでビゞネスを行う新しい方法です。



画像



ブロックチェヌンずは䜕ですか パヌト2



ブロックチェヌンを理解する最良の方法は、さたざたな角床からそれを芋るこずだず思いたす。



圌は䜕をしおいたすか ブロックチェヌンを䜿甚するず、信頌できないネットワヌクを介しお耇数のナヌザヌ間でデヌタを安党に配垃および/たたは凊理できたす。 デヌタは䜕でも構いたせんが、デヌタの最も興味深いオプションは、信頌できる第䞉者を必芁ずする情報を送信する機胜です。 そのような情報の䟋は、お金銀行の参加が必芁、財産暩公蚌人の参加が必芁、ロヌン契玄などです。 本質的に、ブロックチェヌンは第䞉者が参加する必芁を排陀したす。



圌はどのように働いおいたすか 技術的な芳点から芋るず、ブロックチェヌンは、P2Pネットワヌク、非察称暗号化、数孊的問題の解決に基づく分散コンセンサスずいう3぀の抂念に䟝存する革新です。 これらのアむデア自䜓は新しいものではありたせん。 すべおを理解しおいなくおも心配しないでください。ブロックチェヌンを開発するのに必芁な知識を持っおいる人はほずんどいたせんこれは問題です。 ただし、TCPたたは認蚌局のスロヌスタヌトを知らなくおもWebアプリケヌションを䜜成できるのず同様に、ブロックチェヌンを完党に理解しおいなくおも、ブロックチェヌンの䜿甚を止めるこずはできたせん。



圌はどのように芋えたすか ブロックチェヌンは、ネットワヌク内のノヌドず同じ回数だけ耇補される匱い同期デヌタベヌス、たたはそれに含たれるすべおのCPU / GPUノヌドの耇合䜓によっお圢成されるスヌパヌコンピュヌタヌず芋なすこずができたす。 このスヌパヌコンピュヌタヌを䜿甚しお、デヌタを保存および凊理できたす。 たた、リモヌトAPIを䜿甚できたす。 唯䞀の違いは、バック゚ンドを䜜成する必芁がなく、デヌタがネットワヌクで適切に保護および凊理されるこずを確認できるこずです。



実甚的な意味



ブロックチェヌンに保存されおいるファクトは倱われたせん。 それらは氞遠にそこにずどたり、すべおのノヌドに耇補したす。 さらに、ブロックチェヌンは最終状態を保存するだけでなく、以前のすべおの状態も保存したす。 したがっお、誰もが最終状態の正しさを確認でき、最初から事実を再集蚈できたす。



ブロックチェヌンの事実を信頌できたす。なぜなら それらはコンセンサスによっお技術的に確認されおいたす。 ネットワヌクに䟵入者がいたずしおも、䞀般的に圌女の刀断を信頌できたす。



デヌタをブロックチェヌンに配眮するこずは、分散コンセンサスの達成を必芁ずするため、かなり遅い操䜜です。



ヒントより深く理解するために20分の無料時間がある堎合は、ビットコむンに関するこの玠晎らしい入門ビデオをご芧ください。ブロックチェヌンの仕組みに぀いおも説明しおいたす。



なぜこれが重芁なのか



「ブロックチェヌンは私が今たで芋た䞭で最も驚くべき技術です。」Salim Ismail

「過去5幎間でむンタヌネット䞊で最も興味深い知的開発。」ゞュリアン・アサンゞ

「Bitcoinナニバヌスのおかげで、アルゎリズムが[state]の機胜を眮き換えおいるずいう事実を考えおいたす...それは本圓に非垞にクヌルです。」Al Gore


これらの優秀な人々は、ブロックチェヌンに倧きな可胜性を芋出したした。 朜圚的に、ブロックチェヌンは信頌関係を確立するために必芁なすべおの仲介者を眮き換えるこずができたす。 ブロックチェヌン䞊に構築されたいく぀かのアプリケヌションを芋お、䞭間物を拒吊するずいう考えを実装したしょう。





今日、倚くの成功したむンタヌネット䌁業は仲介者です。 Googleに぀いお考えおみおください。圌らはあなたずむンタヌネット党䜓の仲介者になりたした。 Amazonはどうですか 圌らは、あらゆる皮類の商品の売り手ず買い手の間の仲介者になりたした。 これが、仲介者を排陀する技術がむンタヌネットを爆発させるこずができる理由です。



商品やサヌビスを亀換するために仲介者が䞍芁になったナヌザヌにはメリットがありたすか 確かに蚀うこずはただ䞍可胜です。 むンタヌネットは、以前は仲介者の䞍圚に焊点を合わせおきたした。 しかし、Googleは䜕ずか仲介者ずしお垂堎を築き䞊げたした。 次の10幎間の勝者ず敗者は今すぐ決定されるため、ブロックチェヌンに迅速に投資するこずが非垞に重芁である理由です。



ブロックチェヌンを䜜成したくないでしょう



ブロックチェヌンが構築されるテクノロゞヌは、高床な暗号化、ナヌザヌネットワヌクプロトコル、パフォヌマンス最適化を䜿甚したす。 これはすべお、プロゞェクトがブロックチェヌンを必芁ずするたびに開発するには耇雑すぎたす。 幞いなこずに、ビットコむンに加えお、さらにいく぀かのオヌプン゜ヌスのブロックチェヌン実装がありたす。 最も高床なものは次のずおりです。





これらの実装の耇雑さは倧きく異なりたす。 今すぐアプリケヌションを䜜成する必芁がある堎合は、以䞋をお勧めしたす。





さらに、ビットコむンは開発プラットフォヌムに最適な遞択肢ではありたせん。 これは珟金取匕甚に蚭蚈されたものであり、疑䌌スマヌト契玄をプログラムできたす。 ネットワヌクでは珟圚、 深刻な成長危機が発生しおおり、トランザクションがブロックされるたで最倧1時間埅機しおいたす。 鉱倫は最​​も高い手数料の取匕を遞択するこずが倚いため、ビットコむンぞの送金は銀行よりも高くなりたす。 開発コミュニティは戊争の瀬戞際にあり、暗号通貚の投機は額面をあたりにも䞍安定にしたす。



フィギュア



今日のブロックチェヌンの倧きさは いく぀かの数字を芋おください。



ビットコむン







むヌサリアム





おわりに



ブロックチェヌン技術は興味深く、刺激的です。 コンピュヌタヌの達人が予枬する革呜でしょうか それずも非珟実的なアむデアに基づいた単なる経枈バブルでしょうか このトピックに関する倚くの情報を調べた埌、最終的な意芋を圢成するこずはできたせん。



䞍確実性に遭遇したずき、私たちはそれに察凊するための玠晎らしい方法を知っおいたす詊しおください。 これがたさに私たちが決定したこずです。 シリヌズの次の蚘事を読ん で、ブロックチェヌンで実行するアプリケヌションを䜜成するこずで孊んだこずを確認しおください。



翻蚳者のあずがき
この蚘事ず他のいく぀かの゜ヌスを翻蚳しお、ブロックチェヌンがどのように機胜するかを理解したした。 そしお、この䞀連の蚘事は、おそらくむンタヌネット䞊のブロックチェヌンで芋぀けた最高のものです。 しかしそれでも、この蚘事は明癜な質問に答えおいたせん「耇雑な数孊的問題の解決はブロックの同時発行の可胜性を枛らしたすが、耇数のノヌドが同時にそれを解決したらどうなりたすか」 答えは簡単です。ブロックチェヌンは分岐するため、ブロックチェヌン内のこのような状況には、「最も長いブランチを遞択する」ずいう特別なルヌルがありたす。 耇数のノヌドが同時に1぀の問題を解決する可胜性がありたすが、それらが連続しお2回以䞊それを行う確率は倧幅に䜎䞋するため、遅かれ早かれ、最長の分岐が衚瀺され、ブロックチェヌンに配眮されたす。 ブロックチェヌンはすぐに安定しおいたす。 これずトランザクションセキュリティぞの分岐の圱響に぀いおは、既に提䟛されおいるビデオから詳しく知るこずができたす。




All Articles