過去 2 年間、WannaCry、NotPetya、Locky の出現により、ランサムウェアは大量のメディア報道を集めました。2017 年 5 月、WannaCry ランサムウェアは世界中の複数のシステムに急速に広まりました。英国の国民健康サービス、スペインの電話会社 Telefonica、フランスの自動車ブランドルノー(Renault)、アメリカの物流会社フェデックス(FedEx)、日本の会社日立、そして多くの他の大企業を攻撃しました。
ランサムウェアの作者は、ダークウェブホスティングサービスを通じて、誰でもマルウェアを作成・改善できるようにしました。
ダークウェブはインターネットの一部であり、通常の検索エンジンではアクセスできず、特別な匿名ブラウザ Tor を使用してログインする必要があります。言い換えれば、ダークウェブには通常の検索エンジンでは取得できないインデックスされていないデータが含まれています。Tor ブラウザは基本的に一連のプロキシサーバーを通じてユーザー情報をルーティングし、ユーザーの身元を特定できず、追跡できなくします。ダークウェブは通常のウェブサイトに似ていますが、命名構造にはいくつかの違いがあります。ダークウェブには.com、.net、.co のようなトップレベルドメイン(TLD)がありません。代わりに、.onion で終わるドメイン名のウェブサイトのみを使用します。
1. ハッカーの貨幣化
ネットワークセキュリティビジネスレポートによると、2019 年までにランサムウェアによる損失コストは 115 億ドルに達すると予測されています。ランサムウェアビジネスの成長を促進するいくつかの要因が世界中に存在します。より早く利益を得るために、サイバー犯罪者はもはや自分でマルウェアを作成することはなく、ランサムウェアをサービス(RaaS)として利用してニーズを満たしています。このサービスはダークウェブ市場で入手可能です。
これらの市場は、犯罪の専門家がランサムウェアを作成するために必要な労力を減らすだけでなく、非技術的な犯罪者やプログラマーがスクリプトを使用してランサムウェアを操作できるようにします。
攻撃者は事前に設定されたタイマーを使用してランサムウェアプログラムを生成し、締切前に身代金が支払われない場合、データが破壊されます。攻撃者はまた、主にビットコインウォレットを介して取引を行う支払いプログラムを共有しています(デジタル暗号ウォレットは匿名機能を提供します)。
2. WannaCry
WannaCry 攻撃は、2017 年 5 月 12 日に発生した最大規模のランサムウェア攻撃事件です。WannaCry は、Windows オペレーティングシステムの脆弱性を利用しました。この脆弱性は最初に NSA によって発見され、その後 Shadow Brokers によって公開されました。これは、Windows SMBv1 および SMBv2 の脆弱性を探し、ネットワーク内で横方向に拡散することを目的としています。2017 年 5 月 24 日までに、このランサムウェアは 150 か国以上で 20 万台以上のコンピュータシステムに感染しました。
3. NotPetya
NotPetya は、2017 年 6 月に登場した別の攻撃スタイルのランサムウェアです。NotPetya ランサムウェアは、いくつかの点で Petya ウイルスに明らかに似ています。ファイルを暗号化し、ファイルを復元するためにビットコインの支払いを要求するウィンドウを表示します。最初の感染方法は、M.E.Doc のバックエンドプログラムからの埋め込みでした。M.E.Doc ソフトウェアを介してシステムに感染した後、NotPetya は EternalBlue や EternalRomance などのツールを使用してネットワーク内で拡散します。また、Mimi Katz というツールを使用して感染したコンピュータ内で管理資格情報を探そうとします。
4. SimpleLocker
SimpleLocker は、コンピュータシステムに感染しない最初のランサムウェア攻撃ですが、いくつかのスマートモバイルデバイスをターゲットにしました。ハッカーが最初に選んだターゲットモバイルシステムは Android で、このランサムウェアの起源は東欧に追跡されました。トロイの木馬の攻撃対象は、タブレットや携帯電話の SD カードに挿入され、特定のファイルを取得するためにシステム全体を自動的にスキャンし、対応するデータを復号化するために現金を要求します。このウイルスは Google Play ストアを介してデバイスに侵入します。インストール後、ウイルスは影響を受けたデバイスをスキャンしてさまざまなファイルタイプを探し、AES 暗号化アルゴリズムを使用してそれらを暗号化し、ファイル拡張子を.enc に変更します。また、IMEI 番号、デバイスモデル、製造元などのさまざまな他の情報を収集し、ハッカーがリモートで制御するサーバーに送信します。ハッカーはこのウイルスの最新バージョンを利用して、デバイスのカメラにアクセスし、被害者の写真を表示して身代金を支払うように脅迫することさえできます。この種のトロイの木馬の脅威は、今でも私たちの周りに潜んでいます。
5. TeslaCrypt
CryptoLocker の後、1 年以内に新たな脅威が現れました。それが TeslaCrypt です。最初は、多くの人々がそれを CryptoLocker の別の形式だと考えていましたが、その後、新しい名前が付けられました。それは、骨灰級のプレイヤーをターゲットにしたランサムウェアです。TeslaCrypt は、ビデオゲームに関連する補助ファイルをターゲットにし、影響を与えました。これらの補助ファイルには、保存されたゲームファイル、マップ、ゲームに関連するダウンロード可能なコンテンツなどが含まれています。このランサムウェアのユニークな点は、ソフトウェアの作者がトロイの木馬を継続的に改善し、攻撃が続く間にすべての脆弱性を修正することです。
6. CryptoLocker
CryptoLocker は、大規模なランサムウェアで、2013 年 9 月 5 日にインターネットで初めて公開され、電子メールの添付ファイルや Gameover Zeus ボットネットを介して拡散しました。これは、Microsoft Windows システムを実行しているデバイスに影響を与え、悪意のある電子メールの添付ファイルを介して継続的に拡散し、RSA 暗号化アルゴリズムを使用してユーザーのローカルおよびネットワークドライブに保存されている特定の種類のファイルを暗号化します。CryptoLocker は、2014 年 5 月後半に Tovar 操作によって削除され、Gameover Zeus ボットネットを麻痺させました。報告によると、CryptoLocker は被害者から 300 万ドル以上を成功裏に強奪しました。
7. PC Cyborg
1989 年に PC Cyborg というトロイの木馬が登場し、隠しフォルダーと C ドライブ内のファイル名を暗号化する能力を持っていました。これにより、被害者は PC Cyborg 社に 189 ドルを支払わざるを得なくなりました。
Forrester が最初に提案した広く受け入れられているアプローチは、データ中心のものであり、すべてのデータとリソースの継続的な検証を実現するために使用されます。これは、フラットネットワークの問題を解決するために最初に設計され、その後、脅威の行動者が気づかれずに内部ネットワークを横断し、機密情報を盗むのを助けるために使用されました。このアプローチは、セキュリティ専門家がネットワークとアプリケーションの制御を再取得することも可能にします。次に、ゼロトラストアプローチを検討します:
1)敏感なデータを特定し、分類する:データを保護するためには、まずデータを確認し、理解する必要があります。敏感なデータを理解していない場合、感染後の状況はさらに悪化する可能性があります。敏感な情報を特定したら、それを分類する必要があります。
2)データフローダイアグラムを作成する:ネットワーク内のアプリケーションフローを高レベルで理解することが重要です。さらに、ネットワークチーム、アプリケーションチーム、セキュリティエンジニアなどの利害関係者と協力することが良いことです。彼らと一緒に既存のモデルを利用して最終的なデータフローを準備できます。
3)ネットワークアーキテクチャを構築する:ゼロトラストの設計は、複数のネットワーク間の通信フローを示し、ユーザーが外部データにアクセスする方法を説明します。この場合、機関は物理的および仮想的なスイッチ構成を利用してマイクロ境界を確認できます。
4)ポリシーベースを構築する:このアプローチの重要なポイントは、セキュリティ専門家が知識の原則に基づいてユーザーアクセスを制限し、効果的なアクセス制御を実施すべきであるということです。IP ヘッダーフィールドを洞察するだけでなく、セキュリティチームはユーザーの身元とアプリケーションの動作を理解する必要があります。
5)継続的な監視:ネットワーク全体とアプリケーションのログをリアルタイムで収集し、確認する必要があります。これには、外部ネットワークのトラフィックだけでなく、専用ネットワークからのトラフィックも含まれます。内部トラフィックの処理方法は、外部トラフィックの処理方法と同じであるべきです。
ゼロトラストアプローチについては、https://www.forrester.com/search?N=21061+10001sort=3everything=truesource=browse を訪問してください。
・TCP/IP とブロックチェーンについては、https://hbr.org/2017/01/the-truth-about-blockchain を訪問してください。
2009 年、中本聡は「ビットコイン:ピアツーピア電子現金システム」という白書を発表し、金融市場に存在する課題に対処することを目的としました。この白書は、金融機関の仲介なしに一方から他方へのオンライン支払いを許可するプラットフォームの開発に取り組んでいます。ビットコインが解決する主要な問題の 1 つは二重支払いに関するもので、ビットコインの二重消費(デジタル通貨の独特の問題は、ユーザーが特定の価値を使った後にそれを再利用できないようにする方法です)を回避できます。ビットコインはデジタル通貨であるため、デジタルデータを複製して公開することは難しくないため、二重消費の問題が発生します。この状況を防ぐための解決策が登場しました。それがブロックチェーンです。しかし、中本聡の元の論文ではブロックチェーンという言葉は言及されておらず、ビットコインのソースコードのコメントにブロックのチェーン形式で現れています。
ブロックチェーンは分散型データベースであり、すべての取引記録のセキュリティを保証し、追加の方法で記録されます。そのデータベースの分散性により、ブロックチェーンは多くの業界で急速に普及しています。失敗を許容できない組織にとって、ブロックチェーンデータベースは、機密情報がネットワーク犯罪者によって実際に破壊されることが不可能になります。さらに、ブロックチェーンは信頼できる管理者や開発者によって管理されるだけでなく、信頼できるか、知られているか、未知の側からの人々によっても適切に管理されることができます。以下はブロックチェーンネットワークのグラフィカルな表現です:
ネットワークに接続された各コンピュータは、ブロックチェーンノードソフトウェアを持ち、ブロックチェーンエコシステム向けのアプリケーションを実行する必要があります。使用状況に応じて、これらのコンピュータの参加は制限される場合があります。たとえば、ブロックチェーンベースの銀行チェーンエコシステムは、銀行ノードのみが銀行チェーンのクライアントアプリケーションを実行できるようにします。
インターネットは 30 年以上の歴史を持つ技術であり、TCP/IP とオープンシステム相互接続(OSI)モデルスタックを介して情報を共有することを目的としています。インターネットの誕生以来、電子メール、Web、さらには電子商取引に至るまで、すべての新しい技術は既存の技術を覆しました。インターネットは最も強力な技術の 1 つであり、その機能は思想を広め、仮想世界を創造するのに十分強力です。
TCP/IP は、標準化された類似ネットワーク間の通信を構築するための最初のインターネットプロトコルスイートです。OSI モデルは、国際標準化機構(ISO)によって開発され、ベンダー、モデル、または技術を考慮せずに標準化されたシステム間の通信のフレームワークを提供します。クライアント / サーバーネットワークは本質的により信頼性が高く安定しているため、さまざまな組織はクライアント / サーバー通信に基づく 2 つのモデルを好みます。重要なのは、クライアントが使用するデータとそのデータの使用方法をより良く制御する必要があることです。クライアント / サーバーモデルでは、クライアントは自分のローカルリソース(ワークステーションやデバイスのハードウェアおよびソフトウェアコンポーネントなど)を管理し、サーバーは共有リソース(ハードウェア、ネットワーク通信チャネル、データベースなど)を管理する機能システムです。ピアツーピアネットワークには、監視、制御、コマンドの実行を行う中央システムがありません。過去には内部のニーズから小規模企業がこの方法を好んで使用していましたが、大規模な機関は常にピアツーピアネットワークを避けてきました。なぜなら、それを使用することでビジネス操作と管理の制御を失うリスクがあるからです。
しかし、世界全体を接続する過程で、いくつかの瞬間が革新を再定義し、各企業のニーズに対してメディアを提供しました。ブロックチェーンは、独立したノードで構成されたピアツーピアネットワークであり、第三者の参加なしにあらゆる種類の価値を共有できます。コンピュータの進化は最初にメインフレームから始まり、10 年後にインターネットが登場しました。クラウドコンピューティングは 1997 年に Ramnath Chellappa 教授によって定義され、Amazon は 2006 年に Elastic Compute Cloud(EC2)サービスを開始しました。私たちは現在、新しい時代にあり、データの安全な保存方法が絶えず変化しています。
インターネット上で行われるすべてのことは、TCP/IP モデルの IP パケットを介して行われます。IP パケットは、インターネットを介して送信できる最小のデータ単位であり、IP ヘッダーとペイロードの 2 つの部分を持っています。
これらの情報を送信するには、ソース IP アドレスと宛先 IP アドレスが必要です。ブロックはこのプロセスの必須要素であり、リンクされてブロックチェーンを形成します。ブロックはブロックヘッダーとブロックボディで構成されています。任意の種類の値を送信したり、任意の種類の取引を完了したりするために、ソース識別子として自分のデジタル署名と公開鍵を追加します。これは、ピアツーピアネットワーク内の宛先の身元に似ています。
Web アプリケーションは、ユーザーにサービスを提供するためにクライアント / サーバーモデルで広く使用されるネットワークベースのアプリケーションです。しかし、分散型アプリケーション(dApp)は、ピアツーピアコンピュータネットワーク上で実行されるアプリケーションです。
従来の Web アプリケーションは、CSS、HTML、JavaScript を使用してフロントエンドページをレンダリングし、API 呼び出しを介してデータをデータベースから取得します。分散型アプリケーションのフロントエンドは、ページを表示するためにまったく同じ技術を使用しますが、API 呼び出しの代わりにブロックチェーンに接続されたスマートコントラクトを使用します。
ブロックチェーン台帳の動作方法。システムの一般的な形式を理解するために、チェーンの複数の状態を理解し、さらに探求することが重要です。
1)取引の準備:この段階で、A 側は取引を作成し、受取人の公開アドレス、ソースデジタル署名、取引情報を含めます。現在、この取引はブロックチェーン内のすべてのノードが取得できます。
2)取引の検証:ブロックチェーンのノードは、信頼しないモデルで動作し、各ノード(ブロックチェーンクライアントソフトウェアを実行しているマシン)は取引情報を受信し、A 側の公開鍵を使用してデジタル署名を検証します。検証に成功すると、この認証された取引情報は台帳キューに配置され、すべてのノードがその取引を成功裏に検証するまで待機します。
3)ブロック生成:キュー内の取引が一緒に配置され、ネットワーク内のノードがブロックを作成します。ビットコインブロックチェーンでは、ビットコインノード(マイナーとも呼ばれる)がいくつかの複雑な数学的問題を解決することによってブロックを作成すると、ビットコインの報酬が得られます。
4)ブロックの検証:ブロックが正常に生成された後、ネットワーク内のノードは反復検証プロセスを処理し、大多数のノードが合意メカニズムに達する必要があります。一般的に使用される合意アルゴリズムには、プルーフ・オブ・ワーク(PoW)、プルーフ・オブ・ステーク(PoS)、委任プルーフ・オブ・ステーク(DPoS)、実用的拜占庭耐障害性(PBFT)などがあります。ビットコインは PoW を使用して合意に達し、イーサリアムは PoS を使用して合意に達します。このメカニズムは金融分野で大きな役割を果たし、全体の取引操作のセキュリティを確保します。
5)ブロックのリンク:合意が正常に達成された後、ブロックを検証し、ブロックチェーンに追加します。以下の図でブロックチェーンのいくつかの状態を理解できます:
ビットコインの世界状態データは chainstate ディレクトリに保存され、LevelDB によって管理され、現在未使用のすべての取引出力と取引のメタデータ情報を主に保存し、新たに受信した取引とブロックを検証するために使用されます。これらのデータを保存する際には適切な圧縮が行われます。LevelDB は永続的なキー値データベースであり、ディスクの順次書き込み性能がランダム書き込みよりもはるかに大きい特性を利用し、LSM-Tree 構造を採用して、ディスクのランダム書き込みを順次書き込みに変換し、書き込み速度を大幅に向上させます。LSM はツリー構造を大きなツリーと小さなツリーの 2 つに分割し、小さなツリーは常にメモリに常駐し、大きなツリーはディスクに永続化されます。書き込み操作は最初にメモリ内のツリーを操作し、メモリ内のツリーが大きくなると、ディスク内のツリーとのマージ操作がトリガーされ、マージ操作自体は順次書き込みのみです。Bitcoin の LevelDB は、さまざまなデータを保存しており、その中で最も重要なのは Coin データであり、次のように保存されます。Key は CoinEntry タイプで、3 つの部分で構成されています:
1 バイトの大文字の「C」(DB_COIN)、32 バイトの取引 ID 値、4 バイトのシーケンス番号。Value は Coin オブジェクトのシリアライズされた値です。
イーサリアムの世界状態処理#
世界状態は、ネットワーク内のグローバルな未使用取引出力(UTXO)を通じて説明され、イーサリアムはアカウントの概念を使用して状態情報を説明します。アカウント状態には、nonce、balance、storageRoot、codeHash の 4 つの属性が含まれます。イーサリアムは stateObject を使用してアカウント状態を管理し、アカウントは Address で一意に識別され、その情報は関連する取引の実行中に変更されます。すべてのアカウントオブジェクトは、Merkle-PatricaTrie(MPT)構造に逐次挿入され、stateTrie を形成します。ブロックヘッダーデータ構造の Root フィールドには、stateTrie のルート値、すなわち世界状態のハッシュ値が保存されています。
ブロックチェーン技術は、すでに業界全体で広く使用されている既存の技術のセットに基づいて構築されています。ブロックチェーンの各構成要素を理解し、それらがシステム全体に本質的に分散型、不変、信頼できる特性を持たせることを可能にします。
合意メカニズムは、ブロックチェーンシステムの構成要素であり、分散環境で合意プロトコルを達成する責任があります。ブロックチェーン環境のオープン性と信頼しない性質は、ブロックチェーンのコア特性ですが、追加の注意と厳格なプロセスも重要です。誰でも参加して情報を提出できるため、各参加者の目的を評価することが重要であり、すべての人が詐欺の試みを回避するためのポリシーを採用することを保証する必要があります。これにより、合意メカニズムが生まれ、信号処理に似ており、実際の通信が開始される前にすべての問題が考慮されていることを保証します。以下は、ブロックチェーンで合意に達するための 4 つの重要な方法です:
・PoW:ビットコインの創始者中本聡は、ブロックチェーンの合意メカニズムを実現する方法を発明しました。このタイプの合意では、最大の検証可能な計算作業量を完了したノードを信じることによって詐欺を防ぐことができます。ブロック作成者は、デジタル通貨の世界ではマイナーと呼ばれ、強力な計算能力を持つことでより良いハッシュレートを得ることができ、成功裏にマイニングを行い、ビットコインの報酬を得る機会が増えます。新しい取引はネットワーク内のすべてのノードにブロードキャストされ、各ノードはすべての取引を継続的に監視します。ビットコインシステムで報酬を得たいノードはマイナーと呼ばれ、彼らは単に聞いているだけでなく、取引を収集します。マイナーは PoW アルゴリズムを使用していくつかの複雑な数学的問題を解決する必要があります。最初に各問題を解決したマイナーはビットコインの報酬を得ます。最終的に、検証されたブロックは各マイナーのブロックチェーンに追加されます。
この数学的問題は、ハッシュを一連の取引と現在の値(32 ビットのランダム数)に適用して、所望のハッシュ出力結果を実現するプロセスです。出力されたハッシュ値がターゲットハッシュ値よりも小さい場合、マイナーはブロックを獲得し、合意メカニズムを実現します。マイナーがブロックを獲得すると、各ブロックにはいくつかのビットコイン(BTC)が付属し、マイナーは次のように受け取ります:
・2009 年 1 月〜2012 年 11 月:各ブロック 50BTC。
・2012 年 11 月〜2016 年 7 月:各ブロック 25BTC。
2016 年 7 月〜2020 年 2 月:各ブロック 12.5BTC。
・2020 年 2 月 20 日〜2023 年 9 月:各ブロック 6.25BTC。
・PoS:これは、ノード間のブロックチェーンで合意に達し、取引を検証する別の方法です。PoW とは異なり、PoS ブロック生成者はその現在のスタックに基づいて選択されません。このメカニズムでは、ブロックに報酬は与えられず、PoS のマイナーは「ステイカー」と呼ばれます。イーサリアムは PoS を使用しており、その目的は大量の電力消費に伴う環境への圧力を回避することです。2017 年のデジタル経済学者の報告によると、ビットコインネットワーク全体が 1 年間に消費する電力は、アイルランド共和国が 1 年間に消費する電力を上回ると推定されています。ビットコインは PoW メカニズムを使用し、すべてがリソースの強力なマイナーに依存しているため、より多くの電力消費が発生します。PoS メカニズムを使用する場合、ノードはステーキングプールに参加してステイカーとして選ばれる必要があります。Casper はイーサリアムの PoS 合意プロトコルであり、既存の PoW メカニズムを拡張したハイブリッド型合意メカニズムで、イーサリアムが 100 ブロックごとに最後の 1 つを実行するために使用されます。PoS は固定コイン供給量のプラットフォームに非常に適しており、人々はそれを投資ではなくトークン配布に使用できます。
・DPoS:これは別の合意プロトコルであり、より迅速で効率的なモデルと見なされています。DPoS は民主的な方法で合意の問題を解決します。ネットワーク内でブロック生成者を選択し、取引を確認するのに約 1 秒かかります。これにより、合意の問題を解決するだけでなく、不必要な規制の干渉を排除します。
・PBFT:拜占庭障害は、障害検出システムが同時に障害と正常動作の状態を持ち、異なる検出器に異なるパターンを表示することを指します。いくつかのノードメンバーが他のノードに対して取引に関する不一致情報を送信すると、ネットワーク全体にエラーが発生する可能性があります。PBFT は、ネットワークを拜占庭障害から保護するための解決策です。
イーサリアム(Ethereum)は、最も成熟したブロックチェーンの 1 つであり、プラットフォームにカスタマイズされたブロックチェーンシステムを提供する方法を提供します。ビットコインの目的は、独自の合意メカニズムを使用して現在の支払いシステムとオンラインバンキングを崩壊させることですが、イーサリアムは現在、既存のコンピュータシステムを分散化する過程にあります。なぜなら、イーサリアムはクライアント / サーバーモデルでうまく機能するからです。
イーサリアムは、分散型ネットワークでアプリケーションを実行できるプラットフォームです。このアイデアは、ユーザーの個人データやビジネスデータを保存および管理するために単一のエンティティに完全に依存することを避けることです。現在のデータベースシステムでは、一度データがオンラインで保存されると、クライアントはデータがどのように保存され、どのようなセキュリティ対策が講じられ、誰がデータを読み取ることができるかを知ることができません。イーサリアムは、分散型アプリケーションを構築するためのプラットフォームを提供し、これらのアプリケーションは各スタックの所有者または特定の当事者に直接接続され、より良い透明性とゼロ依存性を実現します。ビットコインとイーサリアムの間には基本的な類似点がありますが、用途と機能には顕著な違いがあります。イーサリアムの使用により、任意の集中型サービスをその独自のプログラミング能力を通じて分散型サービスに変換できます。
イーサリアムは主に 3 層で構成されています —— イーサリアム仮想マシン(EVM)、暗号通貨、ガス(イーサとガス料金またはエネルギー)。
スマートコントラクトは、その作成者によって特定のタスクを実行するために書かれたプログラムです。契約は任意のブロックチェーンバージョンでコーディングできますが、イーサリアムはスケーラブルな処理能力を提供するため、最も人気があります。
イーサリアムは、開発者が自分のスマートコントラクトをコーディングすることを許可します。スマートコントラクトは次のように使用できます:
・特定のイベントが発生したときに、自動的に請求をトリガーして請求決済プロセスを簡素化します。
・ユーザー間のプロトコルを管理します。
・アプリケーションに関する情報を保存します(健康記録や KYC 情報など)。
イーサリアムでは、各契約にはそれを一意に識別するためのアドレスがあります。このアドレスは、ハッシュ作成者のアドレスと実行された取引の数によって計算されます。
公共のブロックチェーン環境にスマートコントラクトをデプロイすると、スマートコントラクトのアドレスが得られます。現在、特定のインスタンスのスマートコントラクトと対話するためのコードを書くことができます。契約にはいくつかの標準があり、ERC20 標準のように、その実装に必要なメソッドも重要です。
最初のスマートコントラクトを作成してみましょう。Solidity 言語を使用してスマートコントラクトを記述します。プログラミング言語 Solidity は JavaScript に似ています。このプロセスを開始するには、まず Ganache パッケージを使用して環境を設定する必要があります。このパッケージはプライベートブロックチェーンを作成するために使用されます。MyEtherWallet にオンラインでアクセスする必要があります。これは、https://github.com/kvhnuke/etherwallet/releases で見つけることができます。
ソフトウェアパッケージをインストールしたら、https://remix.ethereum.org/ のリンクにアクセスしてイーサリアム IDE に入ります。以下のスクリーンショットはイーサリアム IDE を示しています:
Remix は、スマートコントラクトコードを書くための Solidity のオンラインコンパイラです。このコードは、公式にユーザーにテスト用として提供されています。以下のスクリーンショットで見るように、変数と 2 つの関数があります。変数 c は整数型の変数であり、プライベートであるため、契約の外部からはアクセスできません。最初の関数は plusbyone () で、c の値を増加させることによって変更し、2 番目の関数は getC () で、c にアクセスし、その値を関数の呼び出し者に返します。
カウンターコードが Remix に貼り付けられると、以下のスクリーンショットのようになります:
Ganache を開くと、次のようなものが表示されます。画面の上部には、RPC SERVER と表示されています:
次に、ブラウザで MyEtherWallet にアクセスして、これを行った結果を見てみましょう。右上隅には、MyEtherWallet がイーサリアムに接続されていることを示すドロップダウンメニューがあります。デフォルトでは、イーサリアムのメインネットに接続されています。このオプションを変更するには、ドロップダウンメニューをクリックする必要があります。Add Custom Network/Node オプションをクリックしてください。以下のスクリーンショットのように:
これで、Ganache が準備した RPC サーバー情報を入力できます。ノードを次のように命名できます:
MyEtherWallet は Ganache を介して私たちの自己ホストされたブロックチェーンに接続されました。MyEtherWallet にスマートコントラクトをアップロードします。これを実行するには、MyEtherWallet のナビゲーションバーの上部にある Contract タブをクリックし、Deploy Contract オプションを選択します:
ご覧のように、MyEtherWallet は契約のバイトコードを提供するように求めます。
それを見つけるために、Remix IDE に戻り、Details ボタンをクリックします:
今、カウンタースマートコントラクトに関する情報を含むダイアログボックスが表示されます。バイトコードをコピーするには、BYTECODE セクションの隣にあるクリップボードアイコンをクリックします:
MyEtherWallet に戻り、バイトコードを Byte Code テキストエリアに貼り付けます:
次に、下にスクロールして、契約をアップロードするためのアカウントアドレスをインポートします。デフォルトでは、Ganache には 5 つのアドレスが表示され、これらを使用してプライベートチェーンと対話できます。Ganache に戻り、鍵アイコンをクリックして、任意のアドレスにアクセスします:
今、アカウントにバインドされた秘密鍵が表示されます:
この秘密鍵をコピーして MyEtherWallet に貼り付ける必要があります:
Unlock ボタンをクリックすると、MyEtherWallet は取引に署名して契約をデプロイするかどうかを尋ねます:
最後に、以下のスクリーンショットのように成功のメッセージが表示されます:
取引が成功すると、Ganache は CURRENT BLOCK 値を増加させ、契約をデプロイするために使用したアカウントの取引数も増加します:
スマートコントラクトは現在ブロックチェーンにアップロードされました。カウンターを増加および減少させるためにそれと対話するには、MyEtherWallet に戻り、Interact with Contract オプションを選択する必要があります:
MyEtherWallet は、現在デプロイされたスマートコントラクトのアドレスと、契約のアプリケーションバイナリインターフェース(ABI)を提供するように求めます。取引ログを次のように表示できます:
ご覧のように、Ganache は契約をデプロイするために使用されたアドレスを教えてくれます。取引をクリックして作成された契約アドレスをコピーし、MyEtherWallet に貼り付けます:
以下のスクリーンショットは、MyEtherWallet が私たちの契約と対話する方法を知っていることを示しています。Remix に戻り、ABI の横にあるクリップボードアイコンをクリックしてそれをコピーします:
次に、MyEtherWallet に戻り、ABI をそのテキストボックスに貼り付け、Access ボタンをクリックする必要があります。Select a function のドロップダウンメニューをクリックして契約と対話できます:
私たちのコードでは、カウント cs の初期値を 0 に設定します。スマートコントラクトが正常に機能しているか確認するには、getC () 関数を呼び出す必要があります:
契約が返されるのが見えますが、他の関数 plusbyone () も実行しました。これをテストするために plusbyone () を呼び出します。function ドロップダウンメニューを再度選択し、plusbyone を選択して新しい取引を作成します:
これにより、c の値が増加しました。次に、getcount () を再度呼び出して値が変更されたか確認できます:
EVM は、スマートコントラクトを構築および管理するための分散型実行環境です。イーサリアムでは、各プログラムは数千台のコンピュータからなるネットワークによって処理されます。
スマートコントラクトはバイトコードにコンパイルされ、EVM というコンポーネントがバイトコードを読み取り、実行します。すべてのノードはそれぞれの EVM を使用してこの契約を実行します。基本的な定義に従えば、ネットワーク内の各ノードは取引のコピーとスマートコントラクトのネットワーク履歴を持っています。EVM は、開発者が事前に書いたルールに従って契約を実行します。EVM はスタックベースのバイトコードを計算し、開発者は高級言語(Solidity や Serpent など)を使用してスマートコントラクトを記述します。
ガス#
イーサリアムネットワーク内の各ノードがスマートコントラクトを実行すると、大量のエネルギー(ガス)が消費されます。なぜなら、より多くのエネルギーを消費することは、より多くのお金を費やすことを意味し、これはスマートコントラクトプログラミングのレベルにも依存します。言い換えれば、EVM 内の各低レベル操作コードは、その期待される出力を実行するために一定量のガスを消費する必要があります。
ガスは、計算を実行するコストを示し、開発者がスマートコントラクトコードのエネルギー消費を理解するのに役立ちます。ビットコイン市場と同様に、ガスの価値は市場によって決定されます。より高いガス価格が支払われた場合、ノードは利益を得るためにこれらの取引を優先します。
dApp#
dApp は、暗号トークンや内部合意メカニズムなどのインセンティブメカニズムを採用しています。分散型アプリケーションは、そのすべての状態を保存する必要はありません。しかし、イーサリアムに基づく分散型アプリケーションは、その信頼できる状態を保存しており、最終ユーザーに経済的な解決策を提供します。
イーサリアムブロックチェーンのクライアントインターフェースに加えて、dApp クライアントはフロントエンドをプログラミングする必要があります。クライアントは通常 JavaScript で記述され、Web ブラウザで実行できるため、私たちのほとんどはこのブラウザを持っています。
dApp ブラウザは、dApp クライアント(通常は JavaScript で記述)を使用してイーサリアムノードと対話し、その後スマートコントラクトと通信します。dApp はイーサリアムノードとの接続を保証し、接続を変更する簡単なプロセスを提供します。また、ユーザーがこれらの dApp と簡単に対話できるように、アカウントインターフェースを提供します。
この基盤の上に、私たちはイーサリアムのいくつかのコアコンポーネントを紹介し、スマートコントラクトが現実世界でどのように機能するかを観察しました。
公共チェーン#
公共チェーンを使用すると、ブロックをリンクするプロセスは常にさまざまなノードを使用し、これらのノードは独立しており、信頼できない場合や未知の場合もあり、合意プロセスに参加してブロックを検証します。公共チェーンでは、誰でもシステムにブロックチェーンノードクライアントをダウンロードし、誰とでも取引を行うことができ、ブロックリソースマネージャーを介して取引を読み取ることもできます。ビットコインとイーサリアムは公共チェーンの主要な例です。
ビットコインは、資金移転を安全かつ信頼性の高い分散プラットフォームで行う最初のものです。しかし、イーサリアムが発明された目的は異なり、誰にでも自分自身の分散型アプリケーションを開発するためのプラットフォームを提供することであり、通貨の移転に限定されず、あらゆる価値の移転を可能にします。イーサリアムは、特定の条件が満たされたときに実行される自己操作プログラムのセットを実現するためにスマートコントラクトを使用します。
プライベートチェーン#
プライベートチェーンを設定する組織は、それを許可されたネットワークとして構成します。これは、より良い取引プライバシーを提供するために設立され、銀行や他の金融機関に適しています。公共チェーンとは異なり、ブロックチェーンノードクライアントをインターネットに接続するだけでは取引を開始するには不十分です。一方、アライアンスチェーンは、特定の事前に検証された人々のみがネットワークにアクセスし、あらゆる種類の価値を送信することを許可します。
このシステムでは、合意メカニズムは事前に選定されたノードグループによって制御および管理されます。したがって、ブロックチェーンが公共ネットワークで機能している場合でも、それは制限されており、特定のノードグループまたは単一のノードによって制御および維持される必要があります。プライベートチェーンは、その制限と制御レベルに応じてアライアンスチェーンとも呼ばれます。
最も人気のある実装の 1 つは Hyperledger Fabric で、Linux 財団がホストする許可されたブロックチェーンフレームワークです。
ブロックチェーンのアーキテクチャと合意モデルを理解するには、https://www.researchgate.net/publication/318131748_An_Overview_of_Blockchain_Technology_Architecture_Consensus_and_Future_Trends を参照してください。
ブロックチェーンはビットコインの基盤であり、最近広く注目を集めています。ブロックチェーンは、取引を分散型の方法で行うことを許可する変更不可能な台帳のようなものです。ブロックチェーンに基づくアプリケーションは、金融サービス、信用システム、IoT などの多くの分野で急増していますが、ブロックチェーン技術にはスケーラビリティやセキュリティなどの多くの課題が残されています。この記事では、ブロックチェーン技術の包括的な概要を提供します。この記事では、まずブロックチェーンアーキテクチャの概要を示し、いくつかの典型的な合意アルゴリズムを比較します。また、技術的な課題や最新の進展についても簡単に列挙します。さらに、ブロックチェーンの将来の発展の可能性についても説明します。
Hyperledger アプリケーションをデモするための実験環境を構築する必要があります。サプライチェーン管理のいくつかの実際の問題を解決するために、リンクhttps://github.com/hyperledger/education.git からソースコードを取得する必要があります。
Hyperledger は、分散台帳技術を通じて業界のコアニーズを満たすことを目的としたオープンソースプロジェクトであり、Linux 財団と情報技術、銀行、物流、輸送、金融、製造、IoT などの多くの業界の巨人によって共同で設立されたプロジェクトです。
今日、暗号通貨は依然として特定の政府や企業機関との信頼を築くことに取り組んでおり、ブロックチェーンはビジネスの安全な運営と管理のための重要な技術です。ビットコインは本質的に硬直しており静的な性質を持っているため、商業アプリケーションには適していません。イーサリアムはそのスマートコントラクトを通じてビジネスアプリケーションのスケーラビリティを向上させる能力を持っていますが、その使用が制限されていないため、金融機関や他の重要なビジネス運営は、イーサリアムブロックチェーンを使用してビジネス運営を試みることに対してためらいを示しています。
Hyperledger は、許可されたブロックチェーンを採用して全体のシステムをより良く制御する必要がある企業のために特別に構築された唯一の分散型台帳技術フレームワークです。Hyperledger は、重要なビジネス問題を解決するためにより多く使用されるため、暗号通貨プラットフォームや関連システムをサポートしていません。
Hyperledger プロジェクトは 2015 年 12 月に設立され、現在ではアクセンチュア、エアバス、アメリカン・エキスプレス、シスコ、富士通、日立、IBM、インテル、SAP、NEC、BBVA、Bitmark、ボッシュ、CA テクノロジーズ、Capgemini、アーンスト・アンド・ヤング、Factom、H3C、NSE、オラクル、プライスウォーターハウスクーパース、Redhat、サムスン、Ripple、Thales、Wipro、クラウドセキュリティアライアンスなどの多くの業界リーダーから称賛と採用を受けています。
Hyperledger プロジェクトは、ブロックチェーン愛好者、ブロックチェーンコミュニティ、企業、非営利団体間の協力を計画しており、分散型台帳アプリケーションを構築するための包括的で統一された標準を提供します。WordPress がウェブサイトの応答方法と起動時間を根本的に変えたように、Hyperledger は分散型台帳アプリケーションの開発コストと全体の時間を削減することに取り組んでいます。
Hyperledger プロジェクトは、プラットフォーム協力のための業界横断的フレームワークの先駆者として広く称賛されています。金融業界は、発展のトレンドに追いつくために Hyperledger プラットフォームとの協力に最も積極的です。Hyperledger のプロジェクト目標を振り返り、その発展の道筋をさらに理解しましょう:
・コミュニティ主導のインフラストラクチャ:Hyperledger プロジェクトは、いくつかの民間および政府機関の支援を受けており、高効率でオープンなコミュニティ主導の環境を提供します。
企業向けフレームワーク:暗号通貨ブロックチェーンとは異なり、Hyperledger の開発は、企業が分散型台帳ネットワークを介して安全で信頼性の高い取引やトランザクション処理を実行できるようにすることを目的としています。
・技術コミュニティの構築:このプロジェクトは、ブロックチェーンスマートコントラクトやその他の関連コードを革新し開発するために、より大規模で効果的な技術コミュニティを構築することを目指しています。
・ブロックチェーンの認識を広める:これは、企業や他の機関にブロックチェーン技術の認識とそのビジネスアプリケーションの考え方を広める良い方法です。
Hyperledger は、企業が分散型台帳技術に基づいて企業向けソリューションを構築できるようにするオープンソースフレームワークです。このフレームワークには以下のコンポーネントが含まれます:
・共有台帳:内容が追加のみ可能な台帳で、時間順にデータブロックを保存します。
・合意アルゴリズム:分散型台帳の内容の変更に対して合意を達成するプロトコルメソッドです。
・プライバシー:Hyperledger を構築する主な目的は、重要な業務環境で安全で信頼性のある取引を実現する許可ネットワークを構築することです。
・スマートコントラクト:これは、ユーザーが取引リクエストを計画し処理するための小さなプログラムプロセスです。
Hyperledger アーキテクチャを理解しましょう:
・合意層:事前に定義されたルールに基づいて各注文のプロトコルを生成し、取引を検証する責任があります。
・スマートコントラクト層:取引リクエストとアプリケーションビジネスロジックを担当します。
・通信層:ノード間のピアツーピア通信を支援するプラットフォームです。
・データストレージ抽象:他のモジュールがさまざまなデータソースを使用できるようにします。
・暗号化抽象:他のモジュールに影響を与えずに異なる暗号化アルゴリズムを使用できるようにします。
・アイデンティティサービス:ブロックチェーン設定中に追加のアイデンティティ認証と承認を使用できるようにします。
・ルールサービス:合意ルール、背書ルール、グループ管理ルールなどの複数のルールを管理する責任があります。
API:クライアントとアプリケーションがブロックチェーンモジュールと通信できるようにします。
・相互運用性:異なるブロックチェーンインスタンス間の相互運用性を提供します。
Hyperledger フレームワークの構造は以下のようになります:
・Iroha:Hyperledger Iroha は、Soramitsu、Hitachi、NTT DATA、Colu が提供するブロックチェーンフレームワークです。Android および iOS ソフトウェアパッケージのモバイルアプリケーション開発者向けに設計されており、シンプルな設計で C++ プログラミングパッケージと YAC コンセンサスアルゴリズムを含みます。
・Sawtooth:インテルが提供し、ネットワークの規模に応じてさまざまな合意アルゴリズムを選択できます。デフォルトでは、Hyperledger Sawtooth は消失時間量証明(PoET)を使用してノード間の一貫性を実現します。これは多機能性を実現し、許可された実装と非許可の実装の両方をサポートします。
・Indy:Hyperledger Indy は、分散型アイデンティティのビジネスソリューションを実現するための分散型台帳であり、複数の分散型台帳技術(DLT)をサポートする相互運用性を提供します。これは、ノード間および全取引のプライバシーを実現することを目的としています。
・Burrow:Hyperledger Burrow は、権限ベースのスマートコントラクトシステムであり、モジュール化されたブロックチェーンクライアントに対してイーサリアム仮想マシン(EVM)を使用して構築された分権管理のスマートコントラクトインタープリターを提供します。
ネットワークの複数のノード間で通信を確立し維持することは非常に重要です:
・ノード(node):Hyperledger ネットワークには次の 3 つの役割があります:
・クライアント(client):クライアントはネットワーク上で取引リクエストを提出します。ブロックチェーンに参加するには、ピアノードに接続する必要があります。クライアントは、必要なピアノードをネットワークに接続する権限を持っています。
・ピアノード(peer):ピアノードは台帳の更新をブロードキャストし、コピーを保持します。その性質に応じて、ピアノードは 2 つのタイプに分けることができます:
・背書ノード(endorsing peer):クライアントからの取引提案を検査し、背書する責任があります。
・確認ノード(committing peer):提出者がネットワーク内の取引を提出する前に、取引を確認します。
・順序サービス(ordering service):順序サービスは、背書された取引を受け取り、それらを順序付けてブロックに格納し、最終的に確認ノードに配信します。順序サービスは、クライアントノードとピアノードに共有および安全な通信チャネルを提供します。これは取引をブロードキャストするメディアとして機能し、ユーザーがそれをピアノードに配信するのを助けます。
・台帳(ledger):ビットコインやイーサリアムと同様に、Hyperledger 台帳はシステム全体のすべての有効および無効な取引の検証リストを提供します。これは順序サービスによって作成され、ネットワーク内のすべてのピアノードと一致します。
・チャネル(channel):Hyperledger Fabric 内のチャネルは、ノードが機密取引を行うための制限された通信メディアです。チャネルはメンバー特有で、共有台帳、チェーンコードアプリケーション、および注文サービスノードを持っています。
チャネルの各ピアノードは、メンバーサービスプロバイダー(MSP)によって承認される必要があります。この承認サービスプロバイダーは、各ピアノードをその各自のチャネルピアノードおよび関連サービスに対して検証します。
・世界状態(the world state):これは、ネットワーク内のすべての資産に関する現在のデータ状態を反映しています。データは次の形式で安全に保存されます:
・LevelDB:Hyperledger Fabric のデフォルトデータベースで、キー値ペアのみを保存します。
・CouchDB:Web およびローカルアプリケーションに最適で、基本的に JSON です。これは、バイナリをサポートしてすべてのデータストレージニーズを満たします。
・チェーンコード(chaincode):チェーンコードは、ネットワークメンバーによって合意され、ビジネスロジックを実行するために作成されたものです。これは、GO または Node.js で書かれたプログラムである可能性があります:
・LevelDB:デフォルトのプログラミング言語で、安全な Docker コンテナ内で実行され、台帳状態を管理します。
・CouchDB:JSON オブジェクトを保存するための別のデータベースプログラミング言語です。これは、キー値範囲クエリ、複雑なクエリ、および完全なデータクエリをサポートします。
・合意(consensus):合意とは、台帳に追加される取引のセットに対して合意を達成するプロセスです。Hyperledger Fabric では、次の 3 つのステップで合意が実現されます:
・取引の背書。
・順序付け。
・検証と確認。
これで、これらの合意コンポーネントが Hyperledger およびその取引処理方法とどのように連携して機能するかを理解しましょう。
Hyperledger の作業と取引処理プロセスは次のように説明できます:
1)取引の提出:Hyperledger Fabric では、全プロセスはクライアントアプリケーションが取引を提出することから始まります:
各クライアントアプリケーションは、背書ピアノードに取引を提出してシミュレーション処理と背書プロセスを行うことができます。
2)背書者が RW セットをクライアントに送信:各背書ピアノードは提案された取引をシミュレートし、RW データセットと呼ばれる読み書きデータセットを保存します。これらのデータセットは、署名された背書ピアノードによって署名され、クライアントアプリケーションに返されます:
取引の背書:これは、シミュレーション取引によって生成された署名応答です。スマートコントラクトのように、取引の背書を定義するためにさまざまな方法があることができます。取引の背書ポリシーは、定義されたチェーンコードに似ています。
3)クライアントアプリケーションサービス:クライアントアプリケーションが RW セットと承認された取引を受け取ると、それらの取引を順序サービスに提出する必要があります。他のクライアントアプリケーションが取引の背書と RW セットを確認しているかどうかに関係なく、この方法は機能し続けます:
4)順序者がブロック内の取引を確認中のピアノードに送信:順序サービスは RW セットとすでに背書された取引を受け取り、それらをブロックに並べて確認中のピアノードに転送します:
順序サービスはすべての取引を整理し、それらを台帳に提出します。デフォルトでは、Hyperledger Fabric の順序サービスは Kafka であり、Apache Software Foundation(ASF)によって開発されたオープンソースのストリームトランザクション処理プラットフォームです。
次に、順序サービスの動作原理をより詳細に理解しましょう。これをいくつかのコア部分に分けることが重要です:
・順序サービスの第 1 部分:指定された時間範囲内に一定数の取引が準備されると、ブロックが作成され、これらの取引が時間順に提出されます。ビットコインブロックチェーンとは異なり、Hyperledger Fabric は、企業が精緻で柔軟かつスケーラブルな分散ネットワークシステムを設計するのに役立つ最適な順序メカニズムを提供します。
・順序サービスの第 2 部分:Hyperledger Fabric は、3 つの順序サービスメカニズムをサポートしています ——SOLO、Kafka、簡略化された拜占庭耐障害性(Simplified Byzantine Fault Tolerance, SBFT):
・SOLO:これはソフトウェア開発者が研究とテストを行うのに最適で、順序ノードが 1 つだけです。
・Kafka:これは生産に適用できる Hyperledger Fabric の別の注文メカニズムです。これは ASF によって開発され、リアルタイムソースを処理するための統一された、高効率、低遅延のソフトウェアプラットフォームを提供します。Hyperledger Fabric 内で、Kafka は RW セットと背書取引を処理します。
・SBFT:これはビットコインブロックチェーンの PoW 合意メカニズムに似ています。この解決策は、拜占庭障害を克服することを目的としています。ネットワーク内に悪意のあるノードや悪意のあるノードのグループが存在しても、システムは正常に機能します。
5)確認ピアノードがブロック内の各取引を検証:確認ピアノードは、RW セットが現在の世界状態と一致することを確認するために取引を検証します。確認ピアノードが取引を検証すると、その取引は台帳に更新され、世界状態はデフォルトで RW セットからの書き込みデータを使用して更新されます:
最後に、確認ピアノードはクライアントアプリケーションに取引の成功または失敗を通知する必要があります。
6)認証:取引プロセスの各ステップで、背書からバージョンチェックまで、認証は継続的なプロセスです。
ビットコイン、イーサリアム、Hyperledger#
ブロックチェーンプラットフォームの特徴を比較して、人気のあるブロックチェーンプラットフォーム間の違いを理解できるようにします:
・権限制限:取引処理者が既存の台帳を作成またはブロックする資格を定義します。この文脈では、次の 2 つのタイプがあります:
・許可されたブロックチェーン(permissioned blockchain):このモデルでは、取引処理は事前に選択されたユーザーによってのみ実行されます。Hyperledger Fabric はこのカテゴリに属します。
・非許可ブロックチェーン(permissionless blockchain):このモデルでは、取引処理者が新しいブロックを作成または追加することを制限しません。イーサリアムとビットコインは、現在最も人気のある非許可ブロックチェーンです。
・制限されたデータアクセス:ブロックチェーンネットワークの読み取り権限を指定します。次の 2 つのタイプがあります:
・公共ブロックチェーン:進行中の取引情報を読み取る際に制限はありません。誰でもブロックチェーンノードクライアントを使用して更新されたブロックチェーン台帳をダウンロードできます。
・プライベートブロックチェーン:このタイプのブロックチェーンでは、ブロックチェーン台帳へのアクセスは事前に選択されたユーザーのみに制限されます。
・合意メカニズム:分散ネットワーク内で信頼しないネットワークを実現し、すべての取引の合意を確定することが重要です。これにより、有効で合法的な取引のみがブロックチェーンに追加されることが保証されます。一般的な合意アルゴリズムには、PoW、PoS、PBFT があります。
・スケーラビリティ:スケーラビリティは、ノードとパフォーマンスの 2 つの要因に依存します。ノードのスケーラビリティは、全体のパフォーマンスに影響を与えずにブロックチェーンネットワークにノードを追加できることを指し、スケーラビリティは 1 秒あたりの取引数に依存します。
・匿名性:ブロックチェーン内で公開または隠されたユーザーの身元を指します。
・ガバナンス:ブロックチェーンコミュニティ内での意思決定権の配分。ブロックチェーンプラットフォームは、コア開発チームまたは他の利害関係者によって維持される必要があります。
・ネイティブ通貨:ブロックチェーン内で有効な通貨、たとえばビットコインブロックチェーン内のビットコインです。
スクリプト:分散型アプリケーション(dApp)がサポートするプログラミングレベル:
ブロックチェーンと CIA セキュリティトリプレットモデルの詳細については:
・ブロックチェーンの機密性については、https://ethereum.stackexchange.com/questions/25270/confidentiality-in-blockchain を訪問してください。
・プライベートチェーン内のデータ機密性については、https://gdr-securite.irisa.fr/redocs/download/redocs17-gemalto.pdf を訪問してください。
PKI 簡析#
インターネットは誰でも他の人と接続できるようにし、現実の世界とは異なり、地理的または物理的な障害が存在しません。これにより、インターネット上で人を正しく識別し、さらなる信頼できるコミュニケーションを確立することが非常に困難になります。以下の図では、アリスがインターネットを介してボブと会話しようとしていますが、ボブはアリ