ブロックチェーンに基づく分散ストレージシステム開発論文研究

ブロックチェーンに基づく分散ストレージシステム開発論文研究(1)

論文1「ブロックチェーンに基づくアプリケーションシステム開発手法に関する研究」 - Cai Weide

引用論文: [1] Cai Weide, Yu Lian, Wang Rong, Liu Na, Deng Enyan. ブロックチェーンに基づくアプリケーション システム開発手法の研究 [J]. Journal of Software, 2017, 28(06): 1474-1487.

1. ブロックチェーンの概要

  ブロックチェーンは、複数の独立したノードが関与する分散型データ システムであり、分散台帳技術 (DLT) としても理解され、これらのノードによって共同で維持され、改ざんが困難、偽造が困難、追跡可能であるという特徴がありますブロックチェーンはすべての取引情報を記録し、プロセスは透過的で、データは非常に安全です。ブロックチェーン技術は、正義、公平性、誠実さが求められるあらゆる応用分野で使用できます。
ブロックチェーンでは、具体的にはデータを複数のブロックに分割し、各ブロックは特定の情報によって前のブロックの後ろにリンクされ、順番に接続されて完全なデータのセットを表します。各ブロックのブロックヘッダには、前ブロックのブロックヘッダのハッシュ関数を計算して得られる、前ブロックのハッシュ値(前ブロックハッシュ)が含まれる。簡単に言えば、ブロックチェーンは通常のポインターをハッシュ ポインターに置き換える「リンク リスト」です。以下に示すように。
ここに画像の説明を挿入します

  ブロックチェーンでは、具体的にはデータを複数のブロックに分割し、各ブロックは特定の情報によって前のブロックの後ろにリンクされ、順番に接続されて完全なデータのセットを表します。各ブロックのブロックヘッダには、前ブロックのブロックヘッダのハッシュ関数を計算して得られる、前ブロックのハッシュ値(前ブロックハッシュ)が含まれる。簡単に言えば、ブロックチェーンは通常のポインターをハッシュ ポインターに置き換える「リンク リスト」です。以下に示すように。
技術的な観点から見ると、ブロックチェーンの中核要素には次の 3 つの側面が含まれます:
(1) ブロック チェーン構造: 各ブロックは前のブロックのハッシュ暗号化情報を使用して各トランザクションを検証します;
(2) 複数の独立したコピー ストレージ: 各ノードが保存します(3) ビザンチンフォールトトレランス: 悪意のある不正行為やハッカー
による攻撃を許容するノードは 3 分の 1 未満であり、システムが確実に機能することを保証します。まだ正常に機能します。
  要素 (1) はブロックチェーンが「帳簿」であることを指摘し、要素 (2) はブロックチェーンが「分散型帳簿」であること、特に「同じ権利を享受する」ことがブロックチェーンにとって重要であることを指摘しています。これは保証できず、ブロックチェーンとは言えません。また、ブロックチェーン分散台帳は、既存の分散保管方式とは異なり、一つの台帳を作成した後に複数のバックアップを作成するのではなく、同期的に実行されるため、要素(3)はブロックチェーンが「一貫性のある同期型分散台帳」であることを指摘している。 。
  ブロックチェーンのもう 1 つの重要なコンポーネントはコンセンサス アルゴリズムです。ビットコイン ブロックチェーンに代表される第一世代のブロックチェーンでは、PoW (投票の 51%) が使用されます。第2世代ブロックチェーンの代表であるイーサリアムのプライベートチェーンはPBFTを採用し、第3世代ブロックチェーンの代表である北航チェーンはパフォーマンスが向上したCBFTを採用しています。
Byzantine Generals モデルには、シリアルとパラレルの 2 つのコンセンサス アルゴリズムがあります。
  (1) ビザンチン コンセンサス プロトコル PBFT (実用的なビザンチン フォールト トレランス): トランザクションと投票はシリアルであり、ブロック構築プロセスには 3 つの投票が必要です; (2) 同時ビザンチン コンセンサス プロトコル CBFT (同時ビザンチン フォールト トレランス): トランザクションと投票は並行して実行されます
  。 。
アプリケーションレベルでは、ブロックチェーンには次のような特徴があります。
  (1) 改ざんが非常に困難。データがブロックチェーンに入ると、システム内の作業者であってもブロックチェーンに変更を加えることができなくなります。これはブロックチェーン自体のメカニズムに由来します。変更にはコンセンサス アルゴリズムを通過する必要があり、悪意のある改ざんはチェーン内の善良なユーザーによって拒否されます (チェーン内のユーザーの大多数は悪意がないことが前提です)。
  (2) オンチェーンコード。ブロックチェーン上にロードされた契約書や法的文書は実行可能であり、条件が満たされると法的事項が自動生成され、イーサリアム上で「スマートコントラクト」となる (3) 活動に参加する全員が完全なデータを持っている
  。誰もが自分のデータに基づいて意思決定を行うことができます;
  (4) 誰もが完全な過去のデータを持っているため、だまされにくい。ブロックチェーンは、誰もが完全なデータを持っており、誰もが自分のデータを信頼し、自分のデータにコンセンサスがあることを知っているため、お互いを信頼していない人々のための信頼ネットワークを構築できます;
(5) ブロックチェーン アーキテクチャは共有され、分散され、反復的であり、ローカル資料に基づいており、
さまざまな応用分野の特性に応じてさまざまなタイプのブロックチェーンを選択でき、一般にパブリックチェーンとパーミッションチェーンに分けられます。
  (1) パブリックチェーン: すべてのノードは中立かつオープンであり、投票、アカウントの保持、ブロックの構築が可能ですが、ネットワーク全体で投票する必要があるため、速度は非常に遅くなります。
  (2) 許可型チェーン: ライセンスを取得したノードのみが投票、会計、およびブロック構築に参加できます (プライベート チェーン、アライアンス チェーン、エンタープライズ チェーンなどのすべての非共有チェーンが含まれます)。記事は、許可型チェーンが商用チェーンの主流になると予測しています。アプリケーション。

2 ブロックチェーンアプリケーションシステムの要件とアーキテクチャ設計

2.1 ブロックチェーンアプリケーションシステムの要件
2.1.1 一貫性要件

  分散環境では、データは一貫性を確保するために一貫性プロトコルを使用する必要があります。パブリック チェーンは主に PoW (Proof of Work) メカニズムと PoS (Proof of Stake) メカニズムを使用し、パーミッション チェーンは主に PBFT と CBFT を使用します。一般的に言えば、ブロックチェーン システムの情報が多ければ多いほど良いのですが、コンセンサスには費用がかかり、多くのコンピューティング能力とノード通信がコンセンサス メカニズムに費やされます。たとえば、PBFT では 3 ラウンドの投票が必要です。各ラウンドではブロードキャスト通信が使用されます。各通信では署名と署名解除が必要です。また、各トランザクションでは署名と署名解除が必要です。そのため、コンピューティング パワーの 80% がコンセンサス処理に費やされます。優れています。PoW は速度とスケーラビリティの問題に直面していますが、PBFT は同時実行の問題に直面しています。PoW はコンセンサスを完了するためにノードの計算能力に依存していますが、PBFT はそうではありません。

2.1.2 ソフトウェア設計要件

  ブロックチェーン技術をシステム開発に適用すると、多くの中間リンクを排除してプロセスを簡素化できますが、ブロックチェーンアプリケーションシステムの設計では、機能がアプリケーションシステム上に配置される場合とブロックチェーン上に配置される可能性があるという新たな問題が生じます。オンチェーンコードを使用します。ただし、これには大量の計算能力が消費されるため、ほとんどの機能をアプリケーション システムに含めることをお勧めします。

2.1.3 スケーラビリティ要件

  現在のソリューションの中には、トランザクション速度を上げるためにブロックチェーンの複数のコピーの必要性を放棄するなど、ブロックチェーンの定義を放棄することでスケーラビリティのニーズに対処しているものもあります。
Beihang Chain のスケーラビリティは 3 つのステップに分かれていることは注目に値します: (1) ビルディング ブロックの速度を上げるための投票に CBFT 並列アルゴリズムを使用する; (2) プライバシーと並列コンピューティングを保護するための ABC および TBC デュアル チェーン アーキテクチャ、コンピューティング能力を節約し、アプリケーションアーキテクチャを簡素化します; (3) ダブルチェーンの特性を利用して、実行時に 1 つのチェーンを 2 つのチェーンに分割することができ、2 つの異なるハードウェアセットが 2 つのチェーンを別々に実行して速度を向上させます。このようにして、高い可視性と拡張性を維持しながら、ブロックチェーンの元の定義を使用できます。
Beihang Chain はプライベート チェーンのリファレンスとして使用できます。

2.1.4 データベース要件

  ブロックチェーンは分散データベースとなっていますが、従来のデータベースとはまったく異なります。高速ブロックチェーンは低速ブロックチェーンとも異なります。低速環境ではトランザクションがシリアルに処理されるため、低速環境では一貫性の問題は簡単に解決できます。高速環境では、トランザクションとブロック構築は 1 回で実行されます。したがって、一貫性が新たな問題となります。
  従来のデータベースは個別のトランザクションを使用しますが、ブロックチェーンは一貫性を維持するためにブロックを使用します。大きな違いは、従来のデータベースでは最大でも 1 つの書き込み操作しか許可されないのに対し、ブロックチェーンの要件ではブロック内の同じデータに対して同時に数千の書き込み操作が許可されることです。

2.1.5 オンチェーンコードの要件

  チェーン上のコードとブロック構築プロセスは相互に作用しており、チェーン上のコードとブロック構築プロセスの間の競合をどのように解決するかが重要な問題となります。

2.2 北京チェーンのシステムアーキテクチャ

  北杭チェーンは北杭大学と北京大学が共同開発した許可型チェーンで、その当初の設計は国民の信頼と財政に奉仕することであり、P2Pネットワークとマイニングメカニズムを放棄し、スケーラビリティを第一の目標とし、速度の最適化に注意を払っています。システムのセキュリティを確保するために、北航チェーンはノード クレジット システムを追加しました。不正行為ノードの特定に評判システムが使用されるのはこれが初めてです。ノードの不正行為が発見されると、そのノードは直ちに投票ノードから除外されます。 。図 2 は、北航チェーンのアーキテクチャ図です。
北杭チェーンは北杭大学と北京大学が共同開発した許可型チェーンで、その当初の設計は国民の信頼と財政に奉仕することであり、P2Pネットワークとマイニングメカニズムを放棄し、スケーラビリティを第一の目標とし、速度の最適化に注意を払っています。システムのセキュリティを確保するために、北航チェーンはノード クレジット システムを追加しました。不正行為ノードの特定に評判システムが使用されるのはこれが初めてです。ノードの不正行為が発見されると、そのノードは直ちに投票ノードから除外されます。 。図 2 は、北航チェーンのアーキテクチャ図です。
ここに画像の説明を挿入します

  • ストレージ層: ストレージ層には、オペレーティング システムとデータベース サービスが含まれます。
  • 基本的なブロックチェーン層: トランスポート サービスは、キャッシュ内のトランザクションをバケットに配置します。ブロック サービスは、各バケット内のトランザクションのビットマップを作成します。ラウンド ロビンは、ラウンド ロビン方式を使用してスレッドを選択し、ブロックを作成して他のすべてのノードに送信し、さらに実行します。レピュテーションの計算。シンクロナイザーローカル ブロックチェーンの長さをブロードキャストし、欠落しているブロックを受信し、受信したブロックを保存します。ABC (アカウント ブロックチェーン) はブロックチェーンを同期して、さまざまなノード間で一貫したステータスを確保し、アカウント インデックスを作成してクエリを高速化し、アカウントの公開キーと秘密キーのサービスを提供します。オンチェーン コード トランザクションの場合、TBC (トランザクション ブロックチェーン) は最初にオンチェーン コードを実行し、その結果をバケットに入れます。非オンチェーン コード トランザクションの場合は、直接バケットに入れられ、作成の準備が行われます。ブロック。
  • キャッシュ層: ユーザーから受け取った新しいトランザクションやオンチェーン コード、まだディスクに転送されていないブロックなどの一時情報をメモリにキャッシュし、システム操作のための一時データ ストレージをサポートするために使用されます。
  • API 層: 外部および内部 API インターフェイスを提供します。内部 API は、投票やブロックのブロードキャストなど、ノード間の内部通信に使用されます。外部 API は、新しいトランザクションやクエリ操作の受け入れなど、外部ユーザーに使用されます。
  • オンチェーン コード レイヤー: 契約関連のサービスを提供します。オンチェーン コードはドメイン固有の要件に従って記述され、すべての利害関係者によって法的正しさが検証され、ブロックチェーン システムで実行するために展開されます。このレイヤーには 3 つの機能があります。ユーザー操作 (編集)、プロセス実行エンジン、およびアカウント管理をサポートする契約サービス、状態の保存とトランザクションの送信。
  • アプリケーション層: この層には、銀行システム、計算法的システム、信用証明システム、サプライ チェーン システムなどのアプリケーションがあります。ブロックチェーンを設計する場合、ノードが多いほどシステムの安全性は高まりますが、コンセンサスは遅くなります。消費する時間も長くなり、コンピューティング能力も向上します。
2.3 ブロックチェーンインターフェースの設計

  OBCC (オープン ブロックチェーン コネクタ) は、ブロックチェーンへのユーザー データの保存やユーザーが必要とする情報のクエリなど、大学によるブロックチェーン機能の使用を容易にするアプリケーションを提供するブロックチェーン用の統合インターフェイスのセットです。図 3 に示すように。
ここに画像の説明を挿入します

ブロックチェーンに書き込むためのインターフェイスは put(action,data) として定義されます。

  • パラメータ アクションは、作成、挿入、更新、削除などのユーザーのデータ処理の意図を示します。注: ブロックチェーンは、ブロックチェーンに保存されているデータを変更できません。ここでの更新と削除は、次のようなデータの更新や削除ではありませんデータベースは削除されますが、ブロックチェーン上のデータに対して行われた操作は記録されます、つまり、新しいトランザクションとして記録されます。
  • パラメータ データはユーザーのデータです。フォーマットと内容はアプリケーション フィールドによって異なります。
    ブロックチェーン クエリ インターフェイスは get(condition) として定義され、パラメータ条件はユーザーのクエリ条件を示します。これは、次のハッシュ値にすることができます。ブロックまたはトランザクション ハッシュ値は、アプリケーションに関連するキーワードにすることもできます 転置インデックスとビッグ データ分析テクノロジの使用により、ユーザーは貴重なクエリ結果を迅速かつ効率的に取得できます OBCC は、アプリケーションに直接インポートできるツールキットを提供し
    ます独自のソフトウェア プロジェクトでは、プログラミングや開発を行うときに、ローカル関数やメソッドを呼び出すのと同じようにブロックチェーンの関数インターフェイスを使用します。図 4 に示すように。
    ここに画像の説明を挿入します

  この記事では、ブロックチェーン コネクタの Java バージョン - JBCC を実装しています。JBCC は、CCTV マイクロムービー管理プラットフォーム、大学生ステータスおよびファイル管理システム、金融多国籍決済システム、銀行クレジット カード消費など、複数のブロックチェーン アプリケーション システムの開発をサポートしています。管理システム、業界横断ポイント追跡管理システム OBCCブロックチェーンに基づくアプリケーションシステム開発は、開発サイクルが短く、拡張性が高く、実行速度が速いという特徴があります。

ブロックチェーンアプリケーション開発手法の研究

3.1 ブロックチェーンの二重チェーン設計に関する研究

  現在、ほとんどのブロックチェーン アプリケーションには通常 1 つのブロックチェーンしかなく、すべてのアカウント、契約、トランザクションなどがこのブロックチェーン上に配置されます。たとえば、欧州連合銀行はユニバーサル チェーン コンセプトを提案しました。このようにして、すべての参加機関は他の参加機関と内部情報を共有する必要があります。すべての参加機関は、口座の一貫性を維持するためにチェーン上のノードとして投票します。この設計ではスケーラビリティが低く、スループットが低くなります。ビジネスが増加するにつれて、レイテンシーは増加し、パフォーマンスは低下します。
この記事で提案されている新しいアーキテクチャは、すべての参加機関がメタデータとプロトコルを共有するが、データは共有しない(データはアカウントである)というもので、すべての参加機関はプライバシーを確​​保しながら他の機関と取引できるというものです。この概念によれば、少なくとも図 5 に示すように、次の 2 種類のブロックチェーンがあります。
この記事で提案されている新しいアーキテクチャは、すべての参加機関がメタデータとプロトコルを共有するが、データは共有しない(データはアカウントである)というもので、すべての参加機関はプライバシーを確​​保しながら他の機関と取引できるというものです。この概念によれば、少なくとも図 5 に示すように、次の 2 種類のブロックチェーンがあります。
(1) ABC アカウントブロックチェーン (アカウントブロックチェーン): ABC はアカウント情報と取引後の情報を保存するだけで、取引は実行しない (2)
TBC トランザクションブロックチェーン (取引ブロックチェーン): TBC は取引に役立つ情報のみを保存し、関連する取引を実行するABC
  は、口座の照会、保存、ブロックの構築を担当します。たとえば、ABC は金融機関や家族の口座情報を保管します。チェーン内の口座情報は共有されるため、口座情報の改ざんは困難です。同時に、ABC はまた、つまり、ブロックチェーンの処理サイズが制限を超えると、ブロックチェーンを複数のサブ ABC に分割し、異なるマシン上でホストしてバランスの取れたワークロードを維持できます。ブロックチェーン (チェーン 1) (図 6、ブロック 1 を参照) . ブロック 2、ブロック 3) は 2 つのブロックチェーンに分割できます。最初の (チェーン 2) はブロック 1、ブロック 2、ブロック 3、およびブロック 4A であり、2 番目 (チェーン 3) はブロック 1、ブロック 2、およびブロックです4A. ブロック 3 とブロック 4B、およびこれら 2 つのブロックチェーンはブロックチェーンの定義を満たしています。
  ABC は、口座の照会、保存、ブロックの構築を担当します。たとえば、ABC は金融機関や家族の口座情報を保管します。チェーン内の口座情報は共有されるため、口座情報の改ざんは困難になります。同時に、ABC は口座情報の改ざんを困難にします。ブロックチェーンの処理サイズが制限を超えると、ブロックチェーンを複数のサブ ABC に分割し、異なるマシン上でホストしてバランスの取れたワークロードを維持できます。ブロックチェーン (チェーン 1) (図 6 に示すように、ブロック1、ブロック 2、ブロック 3) は 2 つのブロックチェーンに分割できます。最初のブロックチェーン (チェーン 2) はブロック 1、ブロック 2、ブロック 3、ブロック 4A で、2 番目 (チェーン 3) はブロック 1、ブロック 2、ブロックです。 3 およびブロック 4B であり、両方のブロックチェーンがブロックチェーンの定義を満たしています。

3.2 法に基づくブロックチェーンアプリケーション開発技術

  従来のアプリケーション要件の分析とモデリングには通常、機能、パフォーマンス、セキュリティ、インターフェイスなどが含まれますが、ブロックチェーン アプリケーションの多くは法律に関連しているため、ブロックチェーン アプリケーションの要件分析とモデリングには法律も考慮する必要があります。中国で電子証拠を保管するには、次の 3 つの条件を満たす必要があります
(1) 適時性: データをタイムリーに収集する必要がある;
(2) プロセス: プロセスデータを記録する必要がある;
(3) 不変性: 収集および保管されたデータは次の 3 つの条件を満たす必要がある改ざんされていないことが証明される

3.3 オンチェーンコード設計の研究

  ブロックチェーン システムで使用されるスマート コントラクトは、人間による改ざんや操作が不可能なコード コントラクトのアップグレード バージョンを確立することを目的としています。従来の信頼できるデータベース管理システム (DBMS) では、トランザクションは 4 つの特性
ACID (ISO/IEC) を持つ必要があります。 10026-1:1992): 原子性、一貫性、分離性、
  および耐久性。CAP 理論は、分散コンピューティング システムが一貫性 (一貫性、可用性、および分割耐性 (パーティション)) を同時に保証することは不可能であると指摘しています。データベースでは、ACID 原則は適用されません。ブロックチェーンは分散台帳を使用してデータの一貫性を確保し、ブロックを構築することで一貫性を維持します。各ブロックには多くのトランザクションが含まれます。ブロックチェーンのトランザクション方法は、従来のデータベース トランザクション方法とは異なります。を参照してください。表 2.

4 まとめ

  本稿では、主にブロックチェーンのさまざまな特徴を踏まえたアプリケーションシステム開発について検討しますが、その概要は次のとおりです。次に、ブロックチェーンにおける重要なメカニズムであるコンセンサスメカニズムが紹介されました。コンセンサス メカニズムについては、いくつかの既存のソリューションが分析されています。PoW は比較的非効率です。ビザンチン コンセンサス手法は、最初は直列で機能します。この記事で提案する並列ビザンチン手法は、この欠点を補います。
2 番目の部分では、アプリケーション システム開発の観点から比較的合理的な北京チェーン アーキテクチャを示します。3番目の部分は、北杭チェーンにおけるデュアルチェーンモデルの主導的地位を決定します(このセクションは記事で事例とともに紹介されています。興味がある場合は、自分で確認してください)。

5 つの考え

  次の開発タスクでは、二重チェーン モデルに近づけることができるのではないかと感じています。プライベート チェーンの属性はアプリケーション システムにより適しており、ダブル チェーンの設計により、チェーンに参加する機関のプライバシーをより確実に確保できます。
  この記事には比較的広範な内容が多く含まれています。たとえば、スマート コントラクト/オンチェーン コードの分野は比較的表面的なものですが、研究が深まるにつれて議論することができます。

6 この記事はあくまで個人的な勉強記録ですので、アドバイスをお願いします!

おすすめ

転載: blog.csdn.net/qq_41247688/article/details/129289858