パート1.ブロックチェーン上の分散アプリケーションのデータをどこに保存しますか?

現在、ブロックチェーンプロジェクトにブームがあります。 一部のブロックチェーンは非常に強力であるため、アプリケーションを作成するためのプラットフォームです。 アプリケーションは自動的に分散化され、検閲とブロックに耐性があります。 しかし、すべてが本当に素晴らしく、シンプルですか? この記事では、ピンクのメガネを取り除いて、ブロックチェーンをアプリケーションのプラットフォームとして見ようとします。



そして、ブロックチェーンとは何ですか?



ブロックチェーン(ブロックチェーン)は、ブロックのリストで構成される不変のデータ構造であり、後続の各ブロックには前のブロックのハッシュが含まれます。 このようなハッシュの結果、ブロックのチェーンは変更されなくなります。上記のすべてのブロックを再構築せずにチェーンの途中からブロックを変更または削除することはできません。これは、わずかな変更では、変更の上のすべてのブロックの再構築(ハッシュの再計算)が必要になるためです。



各ブロックのハッシュの計算を計算上または経済的に困難にする場合でも、チェーンの途中でデータを変更することは一般的にほとんど不可能になります。 新しいブロックのハッシュを計算する複雑さと、ハッシュの正確性を確認する容易さの組み合わせは、ブロックチェーンに違法な変更に対する深刻な抵抗を与えるだけです。 これは、ビットコインと他のブロックチェーンのセキュリティがかかっている場所です。



ブロックチェーンのこの特性により、プロジェクトは公に分散することができます。 つまり、誰でもブロックチェーンの作業ノードを配置して、新しいブロックを生成できます。 ほとんどのブロックチェーンの実装では、ブロック生成に報酬が与えられます-このプロセスはマイニングと呼ばれます。 マイニングは難しく、結果を簡単に確認できるため、正直に行動することは有益です。 そうしないと、マイニングにリソースを費やし、他のマイナーはブロックを受け入れません-すべての作業が無駄になります。 したがって、個々のノードの完全な分散化と独立性により、ブロックチェーンネットワークは全体として機能します。



しかし、大丈夫、たとえば、ある不正直な鉱山労働者は簡単に計算して無視できます。 しかし、彼らがたくさんいて、彼らが共謀したとしたらどうでしょうか? あなたの周りのすべての人が赤い光は緑だと思うと想像してください。 :)そして、あなたがそうでないと思うなら、彼らはあなたを異常とみなします。 社会実験は、そのような状況のほとんどの人々が疑いを持ち始め、多数意見に参加することを示しています。 しかし、ブロックチェーンでは、大多数のルールが機能します!



あなたの対談者が悪意を持って嘘をつくことができる状況で真実を明らかにする同様の問題は、レスリー・ランポートによって「ビザンチン将軍の問題」と呼ばれ、1980年に2年前に他の著者と一緒に解決されました。 嘘をつき、情報をゆがめることができるn人のスパイによって、参加者間のコンセンサスが参加者の総数3 n +1で達成できることが示されました。 また、スパイが送信するメッセージを歪められないことを保証する場合は、2 n +1で十分です。 ブロックチェーンでは、電子署名により、悪意のあるノードは情報を歪めることができません。したがって、ブロックチェーンに含まれる悪意のあるノードの数が半分未満であれば、ネットワークは安定しています。



悪意のあるノードに対するネットワークの復元力は、ビザンチンフォールトトレランス(BFT)と呼ばれます。 BFTは、任意のノードを自由に追加できるパブリックネットワークシステムにとって非常に重要です。 これらのシステムは、ブロックチェーン上のプロジェクトの大半です。



ブロックチェーンの使用は、暗号通貨の作成に限定されません。 ブロック内のあらゆるものを記録できます。 ビットコインでは、新しいトランザクションのリストがそこに書き込まれ、所有者間で暗号通貨を交換するために使用されます。 NameCoinは、任意のキーと値のペアをブロックに保存し、分散DNSの作成に使用できます。 ブロックチェーンの他の実装では、さらにいくつかのチップが使用されます。 しかし、 イーサリアムはさらに進んだ。 これにより、トランザクションをブロックチェーンに保存できるだけでなく、スマートコントラクトと呼ばれる本格的なチューリング完全プログラムを保存できるため、ブロックチェーンをアプリケーションに合わせて微調整できます。 たとえば、NameCoinは5行のコードでイーサリアムに実装されます



イーサリアムは、ブロックチェーンに基づいた分散プロジェクトを作成するための普遍的なプラットフォームとして考えられていました。 NameCoinの類似物などのいくつかのスマートコントラクトでEthereumに必要なものを実装できる場合、なぜブロックチェーン全体を再実装し、独自のインフラストラクチャを展開するのですか? そのため、最近、イーサリアムは急速に成長しています。 2017年3月以降、わずか2か月でETH(Ethereum暗号通貨)の価格が5倍になり、成長が続いています。 Ethereumで実行されているアプリケーションはすでに数百個あります。たとえば、 AKASHA ソーシャルネットワークEthlanceフリーランサーエクスチェンジワードゲーム 、およびそれらの多くです。



スマートコントラクトブロックチェーンは、アプリケーションにインフラストラクチャ全体を提供します。 アプリケーションには、スマートコントラクトのブロックチェーンコードがあります。 アプリケーションは、ブロックチェーンに任意の情報を保存し、それをデータとしてスマートコントラクトに転送できます。 Ethereumブロックチェーンの状態は実際にはキーバリューデータベースであるため、アプリケーションはブロックチェーンからこの情報を読み取ることができます。



他に何が必要なのでしょうか? アプリケーションは真に分散化され、無検閲であり、禁止されています。 一般的に、ブロックチェーンは確実な利点です! しかし、すべてが非常に良かったら...本当に強力なアプリケーションを作成すると、欠点がすぐに発見されます。



不変性 。 もちろん、不変性は良好です。 ブロックチェーンに宣伝とBFTを与えるのは不変性です。 ただし、コインには裏返しがあります。 アプリケーションがブロックチェーンに書き込むすべてのデータは永遠にそこに残ります。 言葉を再生-ブロックチェーンはこれを覚えていました。 ソーシャルネットワークに情報を配置しました-後でプロファイルを削除した場合でも、ブロックチェーンに永続的に保存されます。 ブロックチェーン上のアプリケーションの数が爆発的に増加すると、ブロックチェーンのサイズが大きく膨らみます。 Ethereumブロックチェーン全体のサイズは既に130GBを超えていますが、2年未満で稼働しています。 ビットコインは、7年以上の堅実な年齢で少なくなっています。



もちろん、一部のイーサリアムの実装にはState Tree Pruningテクノロジーが含まれています。これにより、約1日という限られた履歴で最新のブロックチェーンステータスのみを保存できます。 たとえば、 go-ethereumフルノードはブロックチェーンストレージに130 GBを必要としますが、このテクノロジーをサポートするParityは6 GBのみを必要とします。 ただし、アプリケーションの数の増加が始まったばかりであり、各イーサリアムノードがすべてのアプリケーションのすべてのデータを格納する必要があることを考えると、これは必要であるように見えますが、問題の遅延のみです。 ブロックチェーンのサイズが大きくなると、大量生産のハードドライブには収まりません。大規模な組織のみがそれを購入できるため、危険な集中化につながります。これは、1つの組織内のネットワークの50%以上の制御の集中です。 これにより、BFTが混乱する可能性があります。



トランザクションが遅い 。 ブロックチェーンは、トランザクションの速度に柔軟性をもたらします。 ビットコインには毎秒7トランザクション、イーサリアムには15トランザクションがあります。これは、各ノードが他のノードを完全に複製するため、ネットワーク全体に対するものです。 新しいノードを追加すると、システムの安定性が向上しますが、その動作速度やデータストレージの最大量は増加しません。 つまり、データ変更(およびブロックチェーン内のすべてのデータ変更はトランザクションです)がボトルネックです。 人気のアプリはすぐにこの制限に直面します。



プリミティブデータストレージ 。 ブロックチェーンの状態はすでにキーバリューデータベースであるという事実にもかかわらず、それは非常に原始的です。 検索は主キーによってのみ可能です。保存されるデータの量は非常に限られています。 深刻なアプリケーションの場合、これは明らかに十分ではありません。



したがって、たとえばイーサリアムなどのブロックチェーン上でアプリケーションを開発する場合、データストレージの問題は非常に深刻です。 現在、それを解決する満足のいく方法はありません。



しかし、既存のアプリケーション、たとえばAKASHAは何らかの形でねじれています...次のパートでは、この問題を解決するための既存のアプローチを検討します。



記事の後半

記事の第三部



All Articles