
ブロックチェーン技術について当初興味深かったのは、銀行や仲介業者を介さずに、世界中の誰にでもデジタル通貨をピアツーピアで転送できるということでした。今日、このピアツーピア機能が、資産、証書、音楽、アートワーク、企業間の契約など、他の非暗号通貨タイプの取引にも適用できるという認識によって、その興奮はさらに高まるでしょう。
副題
ビットコインからブロックチェーンへ
副題
実際のブロックチェーンを探索する
図 1 の右側の Tx (トランザクション) は、参加者の 2 つのアカウント (From と To) 間のメッセージを表します。これらのトランザクションの詳細はブロックチェーンに記録されます。
副題
ブロックチェーンとは何ですか?
ブロックチェーンは、分散型トランザクション システムの参加者全員の間で合意を達成するために使用されるテクノロジーです。ブロックチェーンの目的は、開始者によって提案されたトランザクションを検証および実行し、参加者全員の合意の下でこれらのトランザクション情報を記録することです。
図 2 に示すように、ブロックチェーンのインフラストラクチャは、特定の目的、つまりピア間の信頼の仲介となるソフトウェアを含む分散システム内に存在します。図 2 の左側は、操作を実行する分散 (クライアント/サーバー) システムです。システムはブロックチェーン上のデータ情報を検証および記録できます。
ブロックチェーン プログラミングでは、既存のシステムを置き換えるのではなく、コードを検証することでコンセンサスを強化します。ブロックチェーン プログラミングをさらに理解するために、ビットコインとイーサリアムのブロックチェーン スタックを見てみましょう。
画像の説明
図 3
図 3 には、プログラミングの 3 つのレベルも示されています。
プロトコル レベルのプログラミング - この層には、今日のコンピューターのオペレーティング システム ソフトウェアと同様に、ブロックチェーン自体の展開と運用に必要なソフトウェアが含まれます。
スマート コントラクト レベルのプログラミング - このレベルでは、検証ルールを設計およびプログラムし、基礎となるブロックチェーンに記録されるデータとメッセージを指定できます。スマート コントラクトは、ユーザー アプリケーションに代わってブロックチェーンを駆動するエンジンです。
アプリケーション レベルのプログラミング - このレベルには、Web アプリケーション フレームワークとブロックチェーン プロトコルの外側のユーザー インターフェイス設計概念を使用したプログラミングが含まれます。
Dapp は、基盤となるブロックチェーン技術から派生したさまざまな分散アプリケーションであり、ブロックチェーンの世界でのサービス提供の形式です。 Dapp には、重要なコード要素であるスマート コントラクトが埋め込まれています。特定のスマート コントラクトについては、そのコードの正確なコピーが特別なトランザクションで送信され、ブロックチェーン ネットワークのノードに展開されます。
副題
ブロックチェーンプログラミング
シーケンシャル プログラミングから構造化プログラミング、関数型プログラミング、オブジェクト指向プログラミング (OOP)、Web およびデータベース プログラミング、ビッグ データ プログラミングへの進化の過程で、プログラマーは方法論、成果物、アーキテクチャの変化を経験します。同様に、ブロックチェーン プログラミングも別のパラダイム シフトです。ブロックチェーン プログラミングでは 4 つの基本概念が重要な役割を果たします。
分散型インフラストラクチャ - ブロックチェーン プロトコル、スマート コントラクト、アプリケーション (Dapps) をサポートする特別なコンピューティング ハードウェアとソフトウェア スタック。このインフラストラクチャの主なコンポーネントは、ブロックチェーンを接続するノードとネットワークです。
分散型台帳テクノロジー - インフラストラクチャの最上部には台帳があり、トランザクションとデータがすべての利害関係者の台帳に同時に記録されます。これは、すべての利害関係者が同じ事実を記録する分散型台帳です。各ブロックは前のブロックの署名にリンクされており、改ざん防止が行われているため、これは不変です。
中抜きプロトコル - 分散システムの参加者は、同じブロックチェーン プロトコルに従って接続し、相互に通信および取引できるようになります。プロトコルは、すべての参加者が遵守する義務がある一連のルールです。
分散型インフラストラクチャ
分散型インフラストラクチャ
ブロックチェーン インフラストラクチャは本質的に分散型であり、都市をつなぐ鉄道や道路と同じように、Dapp を電車や車と考えることができます。分散型システムとは何ですか?分散システムは、次の特徴を持つ分散システムです。
1. 参加者はポイントツーポイントで通信し、デジタルか非デジタルかに関係なく資産の所有権を持ちます。
2. 参加者は自らの意思でシステムに参加または脱退することができます。
3. 参加者は、従来の信頼境界の外側に独自のネットワークを展開できます。
4. 決定権は中央当局ではなく、すべての参加者によって決定されます。
5. ブロックチェーン自動化ソフトウェアを使用して、信頼の仲介者として機能します。
画像の説明
図4
図 4 は、単一のブロックチェーン ノードの論理アーキテクチャを示しています。分散型ネットワークでは、ノードはネットワークの参加者の ID を表す複数のアカウントをサポートでき、アカウントはトランザクション エンティティの一意の識別子です。
ブロックチェーン ノードは、図 4 のスタックで表される要素をホストします。これはブロックチェーン アプリケーション開発の基礎です。下の 2 つの層は、ほとんどがコンピューティング システムの標準ハードウェアとソフトウェアです。 3 番目の層はブロックチェーン プロトコル層で、ブロックチェーンのコンポーネントが含まれています。 2 番目の層はアプリケーション ロジックをホストし、この層はデータ アクセス、検証、ロギングに対応します。最上位層はユーザー向けインターフェイスで、たとえば HTML や JavaScript 関連のフレームワークを使用して Web プログラミングを行うことができ、これらの要素が Dapp とそのユーザー インターフェイス (UI) 層を構成します。
Dapp は、私たちが通常プレイするハンドル ゲームとは異なり、単一のユーザーのみをサポートします。代わりに、多数の参加者がノードのネットワークを通じて接続され、各ノードは複数のアカウントをホストし、異なる参加者を識別できます。ノードは複数の Dapps をホストすることもできます。たとえば、1 つは分散型管理システム用、もう 1 つは分散型支払いシステム用です。
画像の説明
図5
ネットワーク識別子は、ブロックチェーン ネットワーク内のノードを識別するために使用されます。たとえば、ネットワーク ID #1 は Ethereum パブリック ネットワークで、ネットワーク ID #4 は Rinkeby という別のパブリック ネットワークです。スマート コントラクトをネットワーク上に展開する場合、その識別子を使用してネットワークを指定する必要があります。特定のネットワーク上の参加者は、統合された分散台帳を共有してトランザクションを記録します。
星間観測
星間観測
現在のインターネット技術がここまで進んでいるとは思えないほど、ブロックチェーンの技術は無限です。テクノロジーは常に進歩しており、私たちは常に新しいアイデアやアイデアを与え続ける必要があります。
ブロックチェーンは改ざん不可能な分散データベースとして、ポイントツーポイント伝送や暗号化アルゴリズムなどのテクノロジーを使用することで、信頼コストを大幅に削減し、現在の生産効率を向上させます。同時に、ブロックチェーン技術は、価値インターネットの担い手として、現在の情報インターネット技術を覆す可能性が高く、科学技術は主要な生産力であり、ブロックチェーン産業は国家間競争の重要な分野となるだろう。