JP7409190B2 - チェーン横断的な相互運用性のためのコンピュータ実装方法 - Google Patents

チェーン横断的な相互運用性のためのコンピュータ実装方法 Download PDF

Info

Publication number
JP7409190B2
JP7409190B2 JP2020052738A JP2020052738A JP7409190B2 JP 7409190 B2 JP7409190 B2 JP 7409190B2 JP 2020052738 A JP2020052738 A JP 2020052738A JP 2020052738 A JP2020052738 A JP 2020052738A JP 7409190 B2 JP7409190 B2 JP 7409190B2
Authority
JP
Japan
Prior art keywords
blockchain network
data
blockchain
file system
hash value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020052738A
Other languages
English (en)
Other versions
JP2021035041A (ja
Inventor
ミュラー・ジョナス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2021035041A publication Critical patent/JP2021035041A/ja
Application granted granted Critical
Publication of JP7409190B2 publication Critical patent/JP7409190B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6236Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database between heterogeneous systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、第2のブロックチェーン・ネットワークからの第1のブロックチェーン・ネットワーク上に記憶されたデータへのアクセスを可能にするコンピュータ実装される方法に関する。これは、既知の利害関係者間の信頼できる環境を提供し、プライバシーおよび秘匿性の機構を備えたデータ処理をサポートする、ハイブリッド式のブロックチェーン解決策に広く適用できる。
一般論として、ブロックチェーン関連の技術、新興企業、プロジェクトの数は増加している。特に、コンソーシアムのニーズに役立つパブリック〔公開〕ブロックチェーンの使用事例のいくつかの例や、プライベートであるまたは許可式のブロックチェーンを、ネットワークに加入しうる者を制約するアクセス制御をもって使用する、プライベート・ブロックチェーン・プロトコル・アプローチに頼る使用事例の他の例が存在する。この区別を超えて、相当数の使用事例は、チェーン横断的なアプローチに頼る。チェーン横断的なアプローチでは、たとえば、ブロックチェーン・トランザクションは、異なるブロックチェーン・ネットワークおよび/または技術および/またはプロトコルを横断してトランザクションを接続することによって処理され、それらの特定の分野内のビジネス価値を得てもよい。したがって、これらの使用事例は、チェーン横断的な相互運用性とともに生じる有意な課題に起因する制限に直面する。チェーン横断的な相互運用可能な処理に頼る使用事例はしばしば、信頼性および透明性を高めるために、必要に応じて、プライベートで秘密のデータに公衆がアクセスできる、ユーザー中心的なアプローチを取る。
プライベート・ブロックチェーン・ネットワークとパブリック・ブロックチェーン・ネットワークとの間の相互運用性アプリケーションの現状では、主に仮想通貨に関する問題が取り組まれ、解決される。
既存のアプローチは、通貨の交換を解決するのを支援するが、ファイルや一般的なデータの交換には対処しない。たとえば、通貨は小さなサイズのデータで表わすことができるが、より大きなファイル・サイズを扱う場合、特に、公共の(許可式でない)ブロックチェーン・ネットワークとの対話という点になると、高いトランザクション手数料がかかることがある。一般に、目的は、「オンチェーン」で、よって前記ネットワークの一部として/分散台帳上に、大きな(または多すぎる)ファイルを保管することではないが、それでも可能な限りの信頼性および透明性を可能にすることである。
本発明の実施形態は、2つ以上のブロックチェーン・ネットワーク間の相互運用性を容易にすることを目的とする。
本発明の第1の側面のある実施形態によれば、第2のブロックチェーン・ネットワークを介して第1のブロックチェーン・ネットワークからのデータ・アクセスを可能にするコンピュータ実装される方法であって:第1のブロックチェーン・ネットワークからデータを取得し、前記データを前記第2のブロックチェーン・ネットワークに関連するファイル・システムに記憶するステップと;前記データのハッシュ値(または略してハッシュ)を取得し、前記ハッシュ値を前記第2のブロックチェーン・ネットワークに記憶するステップと;前記データを取得するために、前記ファイル・システムにおける前記データおよび前記第2のブロックチェーン・ネットワークに記憶された前記ハッシュ値を照会する(前記データを取得するためにデータ同一性を検査する)ステップとを含む、方法が提供される。
本発明者は、第1のブロックチェーンと第2のブロックチェーンとの間の相互運用性を、第2のブロックチェーンに過度に負担をかけずに改善する方法を発見した。この方法は、ユーザーがハッシュ値を使用してデータを取得し、第1のブロックチェーン・ネットワークにもともと記憶されていたデータと、第2のブロックチェーン・ネットワークに記憶されたハッシュに対応するデータとが同一であることを検査することを許容しうる。このようにして、ユーザーは、非意図的な、意図的な、あるいは単に更新による、前記データに対する修正があるかどうかを検査することができる。よって、第1のブロックチェーンからの情報は、ハッシュ値の比較によって、第2のブロックチェーンを使用して、信頼性のある形でアクセスされうる。
ファイル・システムは、データが記憶されるときに別個にハッシュ値を記憶してもよく、あるいは照会されるたびにハッシュ値を再生成してもよく、あるいはその両方であってもよい。
さらなる検査のために、ファイル・システムは、自動的にまたはコマンドにより、第2のブロックチェーン・ネットワークからの前記データでリフレッシュされてもよい。追加的または代替的に、本方法は、第1のブロックチェーン・ネットワーク上に記憶された前記データのハッシュを、ファイル・システム内の前記データのハッシュおよび/または第2のブロックチェーン・ネットワーク上に記憶されたハッシュ値と比較することを含んでいてもよい。もちろん、これは第1のブロックチェーンに記憶されたハッシュ値へのアクセスが承認される場合にのみ可能である。これらの実施形態によれば、ユーザー(第2のブロックチェーンへのアクセスを有する)は、ファイル・システムからアクセスされるべきデータが、現在、ファイル・システムに記憶されているデータと同一であることを改めて保証される。
諸実施形態は、大きなサイズのファイル(または多すぎるファイル)を「オンチェーン」で記憶する必要なしに、その代わりに、暗号学的ハッシュのみを「オンチェーン」で記憶して(該ハッシュは、それが対応するデータよりも何桁も小さいことがありうる)、複数のブロックチェーン・ネットワーク(たとえば、それぞれが分散環境で動作する)の間の相互運用性の改善を許容する。暗号学的ハッシュは、コンテンツ識別子として使用されてもよく、データへのユーザー・アクセスを可能にする。ハッシュのみを「オンチェーン」で記憶することにより、ブロックチェーン・ネットワークが(たとえば、後述するように、イーサリアムのガス(Ethereum Gas)使用量の形で)被る過度の金銭的および計算上のコストに関する問題が、ハッシュが対応する全データが「オンチェーン」で記憶される場合と比較して、緩和される。
いくつかの実施形態において、本方法はさらに、第2のブロックチェーン・ネットワークに関連付けられたファイル・システム(上)に記憶されたデータをさらに取得することができる。この取得は、第2のブロックチェーンに記憶されたハッシュ値が第1のブロックチェーンに記憶されたデータのハッシュ値に対応する場合にのみ実行されてもよく、さもなければユーザーはハッシュが一致しない旨の指示を受け取ってもよい。すなわち、ユーザーは、第1のブロックチェーンに記憶されたデータが、第2のブロックチェーンから取得しようとしているデータと(いかなる途中の修正もなく)一致することを保証されうる。
第2のブロックチェーンに記憶されたハッシュ値が、第1のブロックチェーンに記憶されたデータのハッシュ値に対応しない場合、本方法は、データが操作または修正されたことを示すものであってもよく、それによって、ユーザーにデータの真正性を保証する。
これらの実施形態は、データを「オフチェーン」で(ネットワーク/分散台帳の一部としてではなく)記憶しながら、ブロックチェーン・ネットワーク間のデータ交換を可能にする。しかしながら、データは、任意の好適なデータ記憶(データはファイルとして記憶される可能性が最も高いので、本明細書ではファイル・システムと称される)のハッシュ関数を使用することによって、依然として、信頼性の高いピアツーピア環境に記憶される。ハッシュを使用することにより、修正がユーザーに可視になりえ、データ・サイズが最小限に低減でき、これは、第2のブロックチェーン・ネットワーク上でのトランザクション・コストの大幅な削減につながる可能性がある。
諸実施形態は、ブロックチェーンが異なるプロトコルとともに動作可能である場合、あるブロックチェーン・プロトコルから別のブロックチェーン・プロトコルへのデータ交換を可能にしうる。このようにして、相互運用性手順に関与する2つ(またはそれ以上)のブロックチェーンが同じプロトコルあるいはコンセンサス方式で構築される必要はなくなる。たとえば、第1のブロックチェーン・ネットワークは、作業証明〔プルーフオブワーク〕コンセンサス・アルゴリズム(トランザクションを検証し、新しいブロックを作成するために計算集約的なパズルを解く)に基づいて動作してもよく、一方、第2のブロックチェーン・ネットワークは、関与証明〔プルーフオブステーク〕コンセンサス・アルゴリズム(次のブロックの作成者は、ランダムな選択と富または経過時間〔エイジ〕、すなわち関与〔ステーク〕のさまざまな組み合わせを介して選択される)に基づいて動作してもよい。権威証明〔プルーフオブオーソリティ〕、空間証明〔プルーフオブスペース〕、あるいは実は他の任意のコンセンサス機構を使用するブロックチェーン・ネットワークが、この方法を用いて相互運用可能になりうる。
第1のブロックチェーン・ネットワークは、プライベートな(許可式の、またはコンソーシアムの)ブロックチェーンであってもよい。プライベート・ブロックチェーン・ネットワークは、ハイパーレッジャー(Hyperledger)、R3 Corda、クォーラム(Quorum)、または他の任意の形のプライベート・ブロックチェーン・ネットワークでありうる。このようにして、信頼できるユーザーのみが、第1のブロックチェーン・ネットワーク上でデータを記憶および/またはデータにアクセスすることができる。パフォーマンスの観点からは、トランザクションを処理するために必要とされるノードはわずかであり、それによって処理速度、計算コスト、および電力消費が増加する。さらに、第2のブロックチェーンは、公開(非許可式)ブロックチェーンであってもよい。このように、分散台帳は誰もがオープンにアクセスできる(読み書き可能)。プライベート・ブロックチェーン・ネットワークとパブリック・ブロックチェーン・ネットワークの両方を利用することによって、本方法の実施形態は、パブリック・ブロックチェーン・ネットワーク上に大きなデータ・ファイルを記憶する必要なく、プライベートに記憶されたファイルへのパブリックなデータ・アクセスを可能にすることができる。
いくつかの実施形態では、本方法は、第2のブロックチェーン・ネットワーク上に直接記憶するためには、計算コストが過度に高いサイズのデータ・ファイルを扱うことにのみ適用されてもよい。第2のブロックチェーン・ネットワーク上で「オンチェーン」でデータを記憶する動作のトランザクション・コストは、同じデータを第1のブロックチェーン・ネットワーク上に記憶するトランザクション・コストと比較して考慮されてもよい。たとえば、この方法は、第2のブロックチェーン・ネットワーク上に記憶するために、同じデータを第1のブロックチェーン・ネットワーク上に記憶する場合の少なくとも2倍のトランザクション・コストを要求するデータ・ファイルを扱うことに限定されるのでもよい。他のいかなるコスト比較判定(たとえば、3倍、4倍、10倍など)が使用されてもよい。
追加的および/または代替的に、本方法の実施形態は、ハッシュ・サイズと比較したデータ・サイズに基づいてデータ・ファイルを扱う場合にのみ適用されてもよい。すなわち、第2のブロックチェーン上で「オンチェーン」でデータを記憶する動作のトランザクション・コストは、第2のブロックチェーン上で「オンチェーン」で該データについてのハッシュを記憶する動作のトランザクション・コストを上回る。たとえば、100メガバイトのデータ・ファイルは、150バイトのハッシュを有することがあり、同様に、10バイトのデータ・ファイルは、150バイトのハッシュを有することがあり;本方法の実施形態は、第1のシナリオの場合と同様に、サイズの減少が10(または100、または1000)倍以上である場合にのみ、データを扱うように制限されてもよい。このようにして、不必要な計算費用が削減される可能性がある。
第1のブロックチェーン・ネットワークからのデータは、任意のデータ・フォーマットでありうる。たとえば、データは、キー‐値(key-value)(名前‐値(name-value)または属性‐値(attribute-value))フォーマットに構造化されてもよく、これにより、キー‐値互換性ストアまたはデータベース内で第1のブロックチェーン・ネットワーク上の記憶を可能にする。データへのアクセスは、キー、値、またはキーと値の両方を照会することを通じて可能になってもよい。データは、たとえば、JavaScript(登録商標)オブジェクト記法(JSON)フォーマットであってもよい。本方法は、同一フォーマットのファイルを受け入れるよう制約されなくてもよく、たとえば、I-JSON、OGDL、XML、YAML、CSV、および/または他の任意の好適なファイルが追加的に受け入れまたは処理されてもよい。
第2のブロックチェーン・ネットワークに関連する(によってアクセス可能な)ファイル・システムは、データに対応し該データを一意的に同定するハッシュ値を自動的にまたはコマンドに際して生成しうる任意の適切なシステムでありうる。たとえば、連想記憶システム〔内容アドレッシング記憶システム〕が使用されてもよく、これは、データを単一の位置に永久的に記憶する必要をなくす。代わりに、データ情報内容自体が記憶されてもよく、データ情報内容に一致するピアツーピア・ネットワークに接続された任意のドキュメントが取得可能であってもよい。たとえば、ファイル・システムは、ピアツーピア転送プロトコルでありバージョニングされたファイル・システムであるインタープラネタリー・ファイル・システム(inter-planetary-file system、IPFS)プロトコルに依拠してもよく、これは、ある時間期間にわたる追跡を可能にする能力を有するファイルの記憶および管理を可能にする。IPFSはまた、ネットワーク上のファイルの移動を追跡する能力を可能にし、このことは、IPFSを分散ファイル・システムとして定義する。あるいはまた、ファイル・システムは、文書アドレッシング記憶システム(document-addressable storage system)を含む、他の任意の型の記憶システムであってもよい。
ハッシュ値を第2のブロックチェーン・ネットワーク上に記憶する手段は、スタンドアローンのソフトウェア・モジュールによって、または第2のブロックチェーン・ネットワーク上にインストールまたはインスタンス化されたスマートコントラクト(smart contract)(またはチェーンコード(chaincode))によって、実装または開始されてもよい。たとえば、スマートコントラクトは、ユーザーによって実行されてもよいし、何らかの他のイベント(たとえば、第1のブロックチェーン・ネットワークへの文書のアップロード)の際に自動的に実行されてもよく、第2のブロックチェーン・ネットワークに関連付けられたファイル・システム上にデータを記憶してもよい。スマートコントラクトは、追加的または代替的に、データについてのハッシュを含めるための台帳状態(世界状態)の更新を開始してもよい。スマートコントラクトは、任意の好適なプログラミング言語、たとえばSolidity、Go、またはJava(登録商標)で書かれてもよい。
本方法の実施形態は、データのログ・ファイルをさらに考慮してもよい。本方法は、第1のブロックチェーン・ネットワーク上/からのログ・ファイルの作成および/または取得に関わってもよい。これらのログ・ファイルを第2のブロックチェーン・ネットワーク上に記憶することによって、第1のブロックチェーン・ネットワーク外の者に対する、データの真正性のさらなる証拠が提供されうる。ログ・ファイルは、もとのデータの複製であってもよく、および/または、該データの出自を検証するためのタイムスタンプ(時刻および日付)もしくは他の任意のメタデータを含んでいてもよい。第2のブロックチェーン・ネットワークに記憶されたログ・ファイルは、第2のブロックチェーン・ネットワークに記憶されたハッシュ値に対応するデータのログ・ファイルのようなメタデータ(すなわち、ファイル・システムに記憶された対応するデータのメタデータ)との比較において使用されてもよい。このようにして、相互運用可能なブロックチェーン・ネットワーク間でデータが操作されていないという、さらなる証拠が提供されうる。
いくつかの実施形態では、本方法はさらに、ファイル・システムにも記憶されているログ・ファイルが、第1のブロックチェーン・ネットワーク上のデータのログ・ファイルに対応する場合(たとえば、データのタイムスタンプが一致する場合)にのみ、ファイル・システムに記憶されたデータの取得を可能にしてもよい。このようにして、ブロックチェーン間のデータの真正性がさらに強制される。ファイル・システムからのデータ取得は、(ファイル・システム内の)比較されるデータが、第2のブロックチェーン・ネットワーク上の記憶されたハッシュ値(および潜在的には、第1のブロックチェーン・ネットワーク上の記憶されたハッシュ値がアクセス可能であればその記憶されたハッシュ値)に対応する場合、および、比較されるデータのログ・ファイルが、記憶されたハッシュ値に対応する文書のログ・ファイルに対応する場合にのみ可能であってもよい。
データのログ・ファイルは、第1のブロックチェーン・ネットワークに記憶されてもよい。たとえば、ログ・ファイルは、第1のブロックチェーン・ネットワーク上のデータベースに記憶されてもよく、または、ログ・ファイルは、第1のブロックチェーン・ネットワークの台帳に記憶されてもよい。このようにして、ユーザーは、第1のブロックチェーン・ネットワーク上に記憶されたデータが第2のブロックチェーン・ネットワークからアクセス可能なものであるという、一層大きな保証を与えられうる。第1のブロックチェーン・ネットワークに記憶されたログ・ファイル(およびハッシュ値)は、第1のブロックチェーン・ネットワークの外部のユーザーが、たとえそれに関連付けられているデータ・ファイルにアクセスする許可は与えられていなくても、それにアクセスできるように、許可を与えられていてもよい。
本発明の第2の側面のある実施形態によれば、第1のブロックチェーン・ネットワークと第2のブロックチェーン・ネットワークとの間をインターフェースする相互運用性アプリケーションが提供され、該アプリケーションは:データを取得するように動作可能な第1のブロックチェーン・ネットワークとの第1のインターフェースと;取得されたデータを第2のブロックチェーン・ネットワークに関連するファイル・システムにアップロードおよび/または記憶し、該データのハッシュ値を取得しおよび/または返し、該ハッシュ値を第2のブロックチェーン・ネットワークに記憶するように動作可能な第2のブロックチェーン・ネットワークとの第2のインターフェースと;(前記データを取得するために)第2のブロックチェーン上のハッシュ値を前記ファイル・システム内の対応するデータと比較するように照会〔クエリー〕を送信するように動作可能なユーザー・インターフェースと、を備える。
相互運用性アプリケーションは、ブロックチェーン・ネットワークからのデータを入力および/または取得する機能をユーザーに提供してもよい。該機能は、アプリケーションが、第1のブロックチェーン・ネットワーク上のデータが(そのハッシュ値の形で)第2のブロックチェーン・ネットワーク上のハッシュ(に対応するデータ)と一致することを示す場合にのみ、ユーザーがファイル・システムからデータを取得することを可能にするというものであってもよい。あるいはまた、データは取得可能であるが、データが一致しないまたはデータが修正もしくは操作されたことを示す通知がユーザーに提供されうるというのでもよい。
相互運用性アプリケーションの第1インターフェースは、一つまたは複数の構成要素またはモジュールを有していてもよい。たとえば、第1のインターフェースは、ブロックチェーン・ネットワークへの通信を確立するための通信モジュールを有していてもよい。追加的および/または代替的に、第1のインターフェースは、ソフトウェア開発キット(SDK)および/またはアプリケーション・プログラミング・インターフェース(API)を有していてもよく、たとえば、必要な機能を遂行することによって、他の任意のインターフェースと前記ブロックチェーン・ネットワークとの間の通信を可能にしてもよい。
相互運用性アプリケーションの第2のインターフェースは、多数の構成要素またはモジュールを有していてもよい。たとえば、第2のインターフェースは、ブロックチェーン・ネットワークへの通信を確立するための通信モジュールを有していてもよい。該通信モジュールは、前記アプリケーションと、前記ブロックチェーン・ネットワークに関連するファイル・システムとの間の通信をも確立するまたは有効にすることができる。あるいはまた、互いにインターフェースすることができる複数の相異なる通信モジュールが提供されてもよい。追加的および/または代替的に、第2のインターフェースは、APIを有していてもよく、該APIは、たとえば、必要な機能を遂行すること、および/または必要なスマートコントラクトがあればそれを実行することによって、任意の通信モジュールと、前記ブロックチェーン・ネットワークの任意の部分との間の通信を可能にしてもよい。
本発明の第3の側面のある実施形態によれば、第1のブロックチェーン・ネットワークからのデータ・アクセスを、第2のブロックチェーン・ネットワークを介して可能にする方法を実行するように構成された、メモリとプロセッサとを備えたコンピュータが提供される。本方法は:第1のブロックチェーン・ネットワークからデータを取得し、該データを第2のブロックチェーン・ネットワークに関連付けられたファイル・システムに記憶するステップと;該データのハッシュ値を取得し、該ハッシュ値を第2のブロックチェーン・ネットワークに記憶するステップと;前記ファイル・システム内の前記データと第2のブロックチェーン・ネットワークに記憶されたハッシュ値とを比較して、データの均質性を検査するステップとを含む。コンピュータは、ユーザー入力手段をさらに有していてもよい。メモリは、たとえば、命令、ならびにプロセッサからの入力、中間、および出力データを記憶することができる。プロセッサは、本方法を実行するために前記命令を処理することができる。
本発明の第4の側面のある実施形態によれば、少なくとも一つのコンピュータにロードされると、上記記載の方法定義のいずれかまたはそれらの任意の組み合わせによる前記方法を実行するように前記少なくとも一つのコンピュータを構成するコンピュータ・プログラムが提供される。プログラムは、ローカルデバイスにおいて本アクセス可能化方法を提供するために、ローカルにまたはクラウド上で実行されうる。
本発明の好ましい実施形態による装置(コンピュータまたはコンピュータ・システム)またはコンピュータ・プログラムは、上記の方法側面の任意の組み合わせを含んでいてもよい。さらなる実施形態による方法またはコンピュータ・プログラムは、それらが処理およびメモリ能力を必要とするという点で、コンピュータ実装されると記述されることがある。
好ましい実施形態による装置は、ある種の機能を実行するように構成または配置される、または単に「実行する」と記述される。この構成または配置は、ハードウェア、またはミドルウェア、または他の任意の好適なシステムの使用によるものであってもよい。好ましい実施形態では、構成または配置はソフトウェアによってである。
このように、ある側面によれば、少なくとも一つのコンピュータにロードされると、上記記載の装置定義のいずれかまたはそれらの任意の組み合わせによる装置となるよう該コンピュータを構成するプログラムが提供される。
一般に、コンピュータは、定義された機能を提供するように構成または配置されたものとして列挙された要素を有することがある。たとえば、このコンピュータは、メモリ、処理、およびネットワーク・インターフェース、ならびに入力装置を含んでいてもよい。
本発明は、デジタル電子回路、またはコンピュータ・ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実装されうる。本発明は、コンピュータ・プログラムまたはコンピュータ・プログラム製品、すなわち、一つまたは複数のハードウェア・モジュールによる実行のためまたはその動作を制御するために、非一時的な情報キャリア、たとえば機械読み取り可能な記憶装置に、または伝搬信号において実体的に具現されたコンピュータ・プログラムとして実装されてもよい。
コンピュータ・プログラムは、スタンドアローンのプログラム、コンピュータ・プログラム部分または複数のコンピュータ・プログラムの形であってもよく、コンパイルされるまたはインタープリットされる言語を含む任意の形のプログラミング言語で書かれてもよく、それは、スタンドアローンのプログラムとして、またはデータ処理環境での使用に好適なモジュール、コンポーネント、サブルーチン、または他のユニットとしてであることを含め、任意の形で配備されてもよい。コンピュータ・プログラムは、一つのモジュール上または一つのサイトにある複数のモジュール上で実行されるよう配備されてもよく、あるいは複数のサイトにわたって分散され、通信ネットワークによって相互接続されてもよい。
本発明の方法ステップは、入力データに対して作用し、出力を生成することによって本発明の機能を実行するために、コンピュータ・プログラムを実行する一つまたは複数のプログラマブル・プロセッサによって実行されてもよい。本発明の装置は、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含む、プログラムされたハードウェアとして、または特殊目的の論理回路として実装されてもよい。
コンピュータ・プログラムの実行のために好適なプロセッサは、たとえば、汎用および専用マイクロプロセッサの両方、および任意の種類のデジタル・コンピュータの任意の一つまたは複数のプロセッサを含む。一般に、プロセッサは、読み出し専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受け取る。
コンピュータの必須要素は、命令およびデータを記憶するための一つまたは複数のメモリ・デバイスに結合された、命令を実行するためのプロセッサである。
本発明は、具体的な実施形態に関して説明される。他の実施形態も、下記の特許請求の範囲の範囲内である。たとえば、本発明のステップは、異なる順序で実施され、それでも望ましい結果を達成してもよい。複数のテストスクリプトバージョンが編集され、オブジェクト指向プログラミング技術を使用することなく単位として呼び出されてもよい。たとえば、スクリプト・オブジェクトの要素は、構造化されたデータベースまたはファイル・システム内で組織化されてもよく、スクリプト・オブジェクトによって実行されるものとして記載された動作は、テスト制御プログラムによって実行されてもよい。
本発明の要素は、「プロセッサ」、「インターフェース」などという用語を用いて説明されてきた。当業者は、そのような機能的な用語およびそれらの等価物は、空間的には分離しているが、組み合わさって、定義された機能を果たす、システムの諸部分を指すことがあることを理解するであろう。同じく、システムの同じ物理的な部分が、定義された機能の2つ以上を提供することある。インターフェースは、他のソフトウェア・コンポーネント間に介在するソフトウェア・コンポーネントであってもよい。
たとえば、別々に定義された手段は、適宜、同じメモリおよび/またはプロセッサを使用して実装されてもよい。
ここで本発明の好ましい特徴について、添付図面を参照して、純粋に例として述べる。
従来技術におけるトランザクションの例を示す図である。 従来技術におけるブロックチェーン・ネットワークとのトランザクションの例を示す図である。 パブリックなイーサリアム・ブロックチェーン・ネットワーク上での、増大していくデータ・サイズの諸トランザクションにおけるガス使用量のプロットである。 パブリックなイーサリアム・ブロックチェーン・ネットワーク上での、増大していくデータ・サイズの諸トランザクションにおける、米ドルでのガス・コストのプロットである。 第2のブロックチェーン・ネットワークを介して第1のブロックチェーン・ネットワークからのデータにアクセスするためのコンピュータ実装方法の一般的な実施形態を示すフローチャートである。 相互運用性アプリケーションの概括的な実施形態およびブロックチェーン・ネットワークとのそのインターフェースを示す概略図である。 相互運用性アプリケーションを使用した2つのブロックチェーン・ネットワークとのトランザクションの例を示す図である。 相互運用可能な複数のブロックチェーン・ネットワーク上のデータの記憶およびアクセスを記述するフローチャートである。 ログ・ファイルを含む、相互運用可能な複数のブロックチェーン・ネットワーク上のデータの記憶およびアクセスを記述するフローチャートである。 相互運用可能な複数のブロックチェーン・ネットワークのために好適な一般的なシステム・アーキテクチャーおよびコンポーネントの相互作用を示す図である。 相互運用性アプリケーションの具体的な例と、相互運用可能な複数のブロックチェーン・ネットワークとのそのインターフェースを示す概略図である。 プライベート・ブロックチェーン・ネットワーク上のデータ登録の方法を示す図である。 プライベート・ブロックチェーン・ネットワーク上のデータ照会の方法を示す図である。 パブリック・ブロックチェーン・ネットワーク上のデータ記憶、照会、および表示の方法を示す図である。 相互運用性方法の実施形態を使う場合と使わない場合の、増大していくデータ・サイズをもつ諸トランザクションにおけるガス使用量を比較するプロットである。 発明実施形態の実装のための好適なハードウェアの図である。
ブロックチェーンの例示的な使用事例を詳細に理解するためには、今日のプロセスについての何らかの概要を与えておくことが重要である。例として、図1は、今日の中古車市場販売の概要を描いている。例示的な販売プロセスの中で、自動車の売り手が中古車市場のウェブサイトまたはアプリケーションで自動車を売ることを決定する。したがって、情報は、車両の写真、走行距離、製造年、および以前の所有者数からくる。このデータは、車の売り手によって提供される。つまり、自動車の閲覧が車の買い手によって行なわれるまで、この情報の妥当性に関する他の信頼できるリソースはない。車の買い手が車の技術的側面に関して専門家でない場合、車の売り手によるデータ操作の可能性がある。また、閲覧時にも、専門家でない車の買い手は、実際の車の価値のより正確な再評価につながるはずの技術的な問題を見つけられないことがある。
図2は、例示的な自動車コンソーシアムを示す。これは、OEM、保険供給者、修理工場、自動車運転者から構成されるプライベートなハイパーレッジャー・ファブリック(Hyperledger Fabric)・ブロックチェーンに基づいている。この使用事例では、ブロックチェーンに記憶されるデータは:走行距離(km単位)、エラーコード、事故履歴、およびその車のさまざまな他の一意的な識別情報、たとえば色、車両識別番号(VIN)、モデルなどのデータである。車の品質を推定するために、これらの属性の状態に関する洞察は価値があると考えられる。このデータはプライベート・ブロックチェーン・ネットワークに保存され、頻繁に更新される(たとえば、24時間ごと)。自動車運転者は、中古車市場の自動車の買い手および売り手を対象とするオープンでアクセス可能なウェブサイトを介して、車が売られるだろうと判断しうる。中古車市場は、走行距離計の値の操作による、車の過小評価/過大評価の問題に直面する。基本的な問題は、買い手と売り手のドメイン間の信頼の欠如にある。仲介者なしに信頼を可能にするために、プライベート・ブロックチェーンからパブリック・ブロックチェーンへのデータを処理して、そうして、任意の値の不正な操作を可視化することが望ましい。すなわち、解決策はブロックチェーン・ネットワーク間の相互運用性を必要とする。
相互運用可能なアプローチは、アクセス制御層など、許可によってアクセスが制限されているプライベート・ブロックチェーンを中心としたプライベート・ブロックチェーン・コンソーシアムへのアクセスをもたない一般ユーザーを対象とする。要求に応じてプライベート・ブロックチェーンへのアクセスをユーザーに提供することが望ましいかもしれないが、これは、プライベート・ブロックチェーン・システムのセキュリティ・モデルに準拠しないことが多く、重大なセキュリティ脆弱性につながる可能性がある。パブリック・ブロックチェーンは、トランザクション手数料およびコンセンサス・アルゴリズム設計のような機構を用いてこの問題に取り組んでいる。プライベート・ブロックチェーン・システムとパブリック・ブロックチェーン・システムの間で、処理されたデータへのアクセスおよび認証のためのさらなる相互運用性アプローチが望ましい。
相互運用性は、ブロックチェーン技術の分野における複雑で困難な研究分野と考えられている。プロジェクト、新興企業、異なるブロックチェーン・プロトコルの数が増えるにつれて、チェーン間の相互作用に対する需要が増大している。多くの異なる既存のブロックチェーン・プロトコルが、異なるコンセンサス・プロトコル、トランザクション処理方法、または他の価値ある機構のような、異なる技術的属性を用いてそれらの課題に対処するので、異なるプロトコル間の共通の相互作用を確立することに制限が存在する。
さらに、相互運用可能なブロックチェーン間での、データの真正性の検証が必要とされている。プライベート・ブロックチェーンからのデータがパブリック・ブロックチェーンを介して他のパーティーに公開されるときはいつでも、このデータが真正であり、処理中に操作されないことを保証することが望ましい。
相互運用可能なアプローチの金銭的コストおよび計算コストに懸念がある。一つのパブリック・ブロックチェーン・ネットワーク・プロトコルの例として、イーサリアムを考えてみよう。イーサリアムでは、トランザクション手数料(ガス価格としても定義される)は、トランザクションに添付されるデータのサイズとともに大幅に増加する。ガス価格は、イーサリアム・ブロックチェーン・ネットワークで何らかの仕方で動作するために使用されるガスの量によって計算される。イエローペーパー(イーサリアム・プロトコルの正式な定義)によれば、パブリックなイーサリアム・ブロックチェーンにおけるトランザクション執行コストの計算は、次式で与えられる:
Figure 0007409190000001
ここで、g0は固有ガスであり、T1,Tdはトランザクション内で使用される特定のデータ量を参照する一連のバイトを定義する。Gはスマートコントラクトの特定の運用を指す。図3は、添付されるデータ・サイズに従ってトランザクションで消費されるガス量を示している。データ・サイズが150キロバイトを上回ると、ガス消費量が多いことが観察できる。ASCIIテーブルによれば、このデータ量は、ファイル内容として150,000文字(キャラクタ)に匹敵できる。
図4は、添付されたデータ・サイズに関して同じトランザクションの計算されたガス・コスト(米ドル単位)を示している。現在のイーサ価格でパブリック・イーサリアム・ブロックチェーンに130キロバイトを記憶するトランザクションのコストは、約20USDと見積もることができる(2019年3月20日に計算)。ブロックチェーン上に1メガバイトを記憶するトランザクションの価格は、約179米ドルと計算される。
図3と図4の両方を分析することによって、多くのブロックチェーン使用事例が直面する金銭的制限があることが明らかである。特に、パブリックなイーサリアム・ブロックチェーンにデータを保存する必要がある場合にはそうである。そのような小さなデータ・ファイルの記憶への(少なくとも有意な)制限がないので、プライベート(またはコンソーシアム)・ブロックチェーン・プロトコルは、トランザクション・コストのためパブリック・ブロックチェーンに記憶されるのに好適でないと従来考えられていたデータ・サイズのブロックチェーン使用事例に役立つことができる。パブリック機構とプライベート機構の両方に依拠する使用事例に役立つために、他の技術は主にファイル・サイズの制限に依拠しており、これはデータおよび情報の望ましくない損失を引き起こすことがありうる。
図5は、一般的な実施形態による、第2のブロックチェーン・ネットワークを介して第1のブロックチェーン・ネットワークからのデータにアクセスするための、コンピュータ実装される方法のフローチャートである。この方法では、ユーザーおよび/または自動化されたシステムは、第1のブロックチェーン・ネットワーク上に記憶されたデータを取得する。次いで、この方法は、このデータを第2のブロックチェーン・ネットワークに関連付けられたファイル・システムに記憶する(S2)。この取得および記憶は、定期的な自動更新であってもよく、それは、潜在的に、データのハッシュをも生成する。この方法は、前記ファイル・システムから前記データのこの暗号学的ハッシュ値を取得するか、またはそのようなハッシュ値を生成し、そのハッシュを第2のブロックチェーン・ネットワークに記憶する(S4)。次いで、第2のブロックチェーン・ネットワークに関連付けられたファイル・システムに記憶されたデータと、第2のブロックチェーン・ネットワークに記憶されたハッシュ値との間の比較がなされ、前記データを取得する(そして前記データが同一であることを検査する(S6))。たとえば、前記データについてのハッシュ値は、前記ファイル・システム上にすでに記憶されていてもよく、または再生成されてもよい。次いで、2つのハッシュ値が比較されてもよい。追加的または代替的に、第2のブロックチェーン上のハッシュ値の、第1のブロックチェーン上のデータについてのハッシュ値との比較が、許可される場合には実行されてもよく、あるいは第1のブロックチェーン・ネットワーク上のデータについてのログ・ファイルが、ファイル・システムに記憶されたデータについてのログ・ファイルと比較されてもよい。
図6は、相互運用性アプリケーション(100)の一般的な実施形態の概略図である。これは、たとえばクラウド上でRESTful(Representational State Transfer[代表状態転送])サーバー上で実行され、さまざまなユーザーにとってアクセス可能なソフトウェア製品である。第1のインターフェース(102)は、データを取得するために、相互運用性アプリケーション(100)と第1のブロックチェーン・ネットワーク(108)との間でインターフェースする。第2のインターフェース(104)は、データをファイル・システムに記憶し、ファイル・システムからハッシュ値を取得し、該ハッシュ値を第2のブロックチェーン・ネットワークに記憶するために、相互運用性アプリケーション(100)と第2のブロックチェーン・ネットワーク(110)との間、および相互運用性アプリケーション(100)とファイル・システム(112)との間をインターフェースする。ファイル・システム(112)は、第2のブロックチェーン・ネットワーク(112)内であっても、外部であってもよい(分散ファイル記憶システムであってもよい)。
ユーザー・インターフェース(106)は、第1のインターフェース(102)および第2のインターフェース(104)の両方と接続し、通信することができる。このインターフェースは、たとえば、ユーザーにインストラクションを提示する、および/または、ファイル・システムおよびハッシュを用いて取得されたデータを提示する、ウィンドウの表示を可能にするグラフィカルユーザーインターフェース(GUI)であってもよい。これは、プライベート・ブロックチェーン・ネットワークへのアクセスをもたないユーザーが、第1のブロックチェーン・ネットワークからのアクセスしたいデータを指定し、データ(諸実施形態による、パブリック・ブロックチェーン・ネットワークを使ったその記憶および取得の後の)と、たとえばハッシュが一致するかどうかの結果としてのデータ信頼性に関する任意のメッセージ(たとえば、「検証されたデータ」または「検証されなかったデータ」)とを、閲覧することを可能にする。また、GUIは、日付や出自など、前記データのメタデータを表示してもよい。また、GUIは、プライベート・ブロックチェーン・ネットワークへのアクセスをもつユーザーが、データを記憶し、取得するためにも機能しうる。第1のインターフェース(102)および第2のインターフェース(104)は、直接通信してもよい。
図7は、図2のようにプライベートなハイパーレッジャー・ファブリック・ブロックチェーンに基づく例示的な自動車コンソーシアムを描いている。この例のトランザクションにおいて相互運用性アプリケーションがないとしたら(つまり、図2のシナリオに似た方式の場合)、自動車の買い手と売り手の間に直接には信頼は存在しないであろう。しかしながら、相互運用性アプリケーションは、サンプル車両データが、プライベート・ブロックチェーンにリンクされたIPFSにアップロードされることを可能にし、車両データについての一意的なハッシュの取得を可能にする。その後、この情報はパブリック・ブロックチェーンに送信される。車の買い手が車のデータにアクセスすることを望む場合、中古車市場ウェブサイト/アプリケーションは、相互運用性アプリケーションとインターフェースし、パブリック・ブロックチェーンからハッシュを取得することができる。その後、IPFS上の車両データへのアクセスが可能にされ、車の買い手は車に関する関連情報を閲覧することができる。このようにして、IPFS上の車両サンプル・データのいかなる不正な操作または変更も、(改変不能な)パブリック・ブロックチェーン記憶ハッシュへの更新があることを通じて明らかになる。
図8は、一実施形態による、相互運用可能なブロックチェーン・ネットワーク上のデータの記憶およびアクセスを説明するフローチャートである。プライベート・ブロックチェーン・コンソーシアムとパブリック・ブロックチェーン・ネットワークの間の相互運用性は、よく知られた問題である。これまでは、この問題は、主に、小さなサイズのデータで表現できる仮想通貨を交換する機構を確立することで解決された。だが、大きなファイルが扱われるときは、高いトランザクション手数料が発生する可能性がある。ここで提示したアプローチは、相互運用性問題を克服する機構を確立し、両方のブロックチェーン・プロトコル間でデータを交換する機構を導入することによって、以前のアプローチを向上させる。
最初に、ユーザーは、キー/値フォーマットでデータを入力し(S12)、該データは、呼び出し(invoke)関数によってプライベート・ブロックチェーン(この例ではハイパーレッジャー・ファブリック・ブロックチェーン)に記憶される(S14)。キー/値ペアは、プライベート・ブロックチェーンのCouchDBコンポーネント上にJSONファイルの形で記憶される(S16)。CouchDBから、(プライベート・ブロックチェーン・ネットワーク)ユーザーは、キー、値、またはその両方を照会(query)することにより、データを取得できる(S18)。取得されたJSONファイルは、"ipfs.add"関数によってパブリック・ブロックチェーンに関連付けられたIPFSに記憶され、該関数はさらにファイルのハッシュを返す(S20)。ハッシュは、スマートコントラクト内の"setState"コマンドによってパブリック(イーサリアム)ブロックチェーンに記憶される(S22)。その後、ハッシュは、"getState"関数によってパブリック・ブロックチェーンから取得可能である。
JSONファイル(S24)、IPFSからの関係したハッシュ、およびパブリック・ブロックチェーンからの関係したハッシュを照会することにより、JSONファイルが悪意ある操作によって修正されていないか、または修正されなかったかを検証するための比較を行なうことができる(S26)。このようにして、第1のブロックチェーン・ネットワーク上のデータと第2のブロックチェーン・ネットワークにとってアクセス可能なデータが同一であるという証拠が提供される。IPFSを介してJSONファイルを記憶し、ハッシュをパブリック・ブロックチェーンに記憶するステップにより、パブリック・ブロックチェーン・プロトコルとプライベート・ブロックチェーン・プロトコルの間の相互運用性が保証される。
プライベート・ブロックチェーンとパブリック・ブロックチェーンの間のデータ処理の問題も扱う。つまり、高いトランザクション・コストは、典型的には、パブリック・ブロックチェーンに由来する。初期の発明は仮想通貨の交換を扱っているが、サイズによって測定されるファイルを交換するものではない。データのハッシュのみをパブリック・ブロックチェーン上に記憶することによって、サイズは最小限に制限され、それはトランザクション・コストの低下につながる。詳細には、JSONファイルのIPFSへの記憶はハッシュを返し、該ハッシュが"setState"関数によってパブリック・ブロックチェーンに記憶され、トランザクション・コストの顕著な削減につながる。
図9は、別の実施形態による、相互運用可能なブロックチェーン・ネットワーク上のデータの記憶およびアクセスを説明するフローチャートである。相互運用性へのアプローチは、相互運用可能な諸ネットワークを横断したデータ真正性の欠如に関する問題に悩まされている。最近のアプローチでは、プライベート・ブロックチェーンへのデータ・アクセス制限のため、プライベート・ブロックチェーンからパブリック・ブロックチェーンへのデータ・アクセスを確立することは不可能であった。プライベート・ブロックチェーンからの、処理されたデータに関する証拠を(プライベート・ブロックチェーン外部で)もつことが望ましい。
この問題を克服するために、アクセス・ログであり、データの真正性を証明するためにプライベート・ブロックチェーンにとってもアクセス可能なログ・ファイルを生成し、使用する補足機構が使用される。プライベート・ブロックチェーン・コンソーシアムの外部のユーザーに向けて公開されるデータが真正であることを保証するために、アプリケーション・フローに新しいコンポーネントが追加される。図7で説明した論理と比較して、ステップの多くは、その番号付けのほかは変更されないままであり、よって、ここでは再度説明しない。
追加ステップS128としてログ記録機能を使用することによって、JSONファイルについての履歴証拠が生成される。ログ記録機能は、JSONファイルを複製し、ファイルのコピーおよびタイムスタンプ(時刻および日付)をCouchDBに保存する(S128)。ログ・ファイルは、IPFSにも加えられ(図8のS20を置き換えるS120)、そこで照会され(S24を置き換えるS124)、もとのJSONファイルと比較されることができる(S26を置き換えるS126)。時間を追っていかなる変更も可視であり、このことは、ファイルの真正性に関するさらなる証拠を提供する。
図10は、相互運用可能なブロックチェーン・ネットワークのために好適な一般的なシステム・アーキテクチャーの概略図であり、コンポーネント間の相互作用を記述している。プライベート・ブロックチェーンは左に、パブリック・ブロックチェーンは右に示されている。データを記憶し、表示のためにデータを提供する、RESTfulサーバーを介して実行される新しい相互運用性アプリケーションは、2つのブロックチェーン・ネットワーク間のインターフェースとなり、表示のためでありうるデータの記憶のためにIPFS記憶が提供される。主にJSONフォーマットの形で存在するデータは、プライベート・ブロックチェーン・ネットワークの世界状態データベース(たとえば、CouchDB)から収集される。次のステップでは、JSONフォーマットのデータはIPFSプロトコルを介して処理され、それは該データのハッシュを生成する。スマートコントラクトが、該ハッシュをパブリック・ブロックチェーン・ネットワークに記憶し、もとのJSONデータをIPFSノード上で利用可能に保持する。パブリック・ブロックチェーンからの前記ハッシュまたは前記データ内容の他の識別情報を求めて前記アプリケーションに照会することによって、前記データはいかなる制限もなしに、パブリックに可視になる。修正があれば、該修正は、ハッシュおよびその修正履歴のため、可視である。
この実施形態の重要な側面は、プライベート・ブロックチェーン・ネットワークからパブリック・ブロックチェーン・ネットワークへのデータの処理に関わる。よって、プライベート・ブロックチェーンは、IPFSプロトコルに依拠する一時記憶を使用する相互運用性アプリケーションを介して、パブリック・ブロックチェーンに接続される。相互運用性アプリケーションは、ユーザーがプライベート・ブロックチェーンからパブリック・インスタンスにデータを示すことを可能にする。よって、相互運用性アプリケーションは、ユーザーがIPFSと対話し、データを記憶し、パブリック・ブロックチェーン上のハッシュをトランザクトする(transact)ことを可能にする。相互運用性アプリケーションは、ユーザーがファイルのハッシュや、データを受信するための情報をパブリック・ブロックチェーンから照会することを可能にする。
プライベート・ブロックチェーン・ネットワークは、ハイパーレッジャー・ファブリック・コンソーシアム・ブロックチェーン・プロトコルとして定義され、これは、ソロ・コンセンサス・アルゴリズムまたはKafka zookeeper〔カフカ・ズーキーパー〕アルゴリズムのいずれかで実装されうる。ブロックとその内容に関する現在の情報を定義する、いわゆる「世界状態」は、CouchDBに記憶される。パブリック・ブロックチェーン・ネットワークは、イーサリアム・パブリック・ブロックチェーンとして定義され、これは作業証明コンセンサス・プロトコルに依拠する。
図11は、相互運用性アプリケーションのある実施形態の概略図である。以前のネットワーク・アーキテクチャーも、相互運用性を可能にするために同様のミドルウェア・アプリケーションに依拠するが、相互運用性およびトランザクション・コストに関する前述の問題のため、現実的な実装では動作しない。これらの問題を克服するために、本発明は、ミドルウェア・アプリケーションに依拠するネットワーク・アーキテクチャーを確立する。
いうところの相互運用性アプリケーションであるミドルウェア・アプリケーションは、ブロックチェーン・ネットワークごとに一つで、2つのインターフェース(通信)モジュールをもつ。第一に、プライベート・ブロックチェーン・コンソーシアムへの通信を確立するためのFabricInterface〔ファブリックインターフェース〕(202)(InputFunction〔入力関数〕、RetrieveFunction〔取得関数〕等)と、第二に、イーサリアム・ブロックチェーン(210)およびIPFS(212)へのゲートウェイ(web3Api)への通信を確立するためのEthereumInterface〔イーサリアムインターフェース〕(204)(UploadFunction〔アップロード関数〕、RetrieveFunction〔取得関数〕等)である。ユーザーは、必要な機能(input data〔データを入力〕、retrieve data〔データを取得〕、publish file〔ファイルを公開〕、retrieve file〔ファイルを取得〕、retrieve hash〔ハッシュを取得〕など)を実行することによって、両方のブロックチェーン・プロトコル間の相互運用性を確立するために、両方の通信確立インターフェースとUserInterface〔ユーザー・インターフェース〕(206)を通じて対話する。web3Api(224)は、必要な機能(putState、getHash、ipfs.add、retrieve file〔ファイルの取得〕、retrieve hash〔ハッシュの取得〕など)を実行するスマートコントラクトを実行することによって、EthereumInterface(204)からイーサリアム・ブロックチェーン(210)およびIPFS(212)への通信を可能にする。Fabric-sdk(222)は、必要な機能(invoke data〔データを呼び出し〕、query data〔データを照会〕、query file〔ファイルを照会〕など)を進めることにより、FabricInterface(202)とハイパーレッジャー・ファブリック・ブロックチェーン(208)との間の通信を可能にする。
図12は、相互運用性アプリケーションを使用してプライベート・ブロックチェーン・ネットワーク上にデータを登録する例を示す。前述と同様に、図はRESTfulサーバーを使用してプライベート・ブロックチェーン・ネットワークにアクセスする相互運用性アプリケーションを示す。ユーザー(この場合、プライベート・ブロックチェーン・ネットワークのユーザー)は、相互運用性アプリケーションにデータを入力できる。この例では、該データは、「自動車」(Car)に関係しており、これは車両識別番号(「VIN」)および「Mileage(走行距離)」値をもつ。ユーザーからの入力はStep 1において記述されており、ここで、VIN値「013416」および走行距離値「207548」の入力がされる。これらの値が「Invoke」関数によってプライベート・ブロックチェーンに処理される(Step 2)。「Invoke」関数機構は、前記データをブロックチェーンに記憶し、CouchDB上にファイル「car.json」を作成する(Step 3)。
同じフォーマットで示される図13は、相互運用性アプリケーションを使用してプライベート・ブロックチェーン・ネットワーク上のデータを照会する例を示している。プライベート・ブロックチェーン・ネットワークから、記憶されたデータを照会するために、ユーザーは照会したい関係した「VIN」とともに「Display」コマンドをコールする。期待される戻り値は「VIN」および「Mileage」(Step 1)である。相互運用性アプリケーションからRestServerに、照会される値「013416」とともに「GET」コマンドを送信することにより(Step 2)、ブロックチェーン上の「照会(Query)」関数がその値をもって実行される(Step 3)。データは、JSONフォーマットから、相互運用性アプリケーションにおいて表示される(Step 4)。
図14は、パブリック・ブロックチェーンとの間でデータを記憶し、照会し、表示し、相互運用性問題を解決する例を示す。よって、この図は、IPFSとともに、パブリック・ブロックチェーン・ネットワークを示している。JSONフォーマットをパブリック・ブロックチェーンに記憶するには、ユーザーは、イーサリアム・ブロックチェーン上の"Store Data"〔データを記憶〕コマンドをコールする(Step 1)。もちろん、ここおよび他所において、コマンドはGUIを介してコールされてもよく、ユーザーは、普通の英語で、あるいはフォームによって書いてもよい。ファイル"car.json"は、スマートコントラクトを実行することによって、IPFSにアップロードされる。ハッシュ値が生成され、返される。ハッシュ値は、たとえば、図中でコードによって示されているように、"setValue"関数を介してイーサリアムに記憶される(Step 2)。IPFSおよびイーサリアム・ブロックチェーンからの記憶されたデータを表示するには、――正しさについての証拠を得るために――データは照会され、比較される必要がある(Step 3)。したがって、以前に記憶されたハッシュを取得するために、(たとえばここでコードによって示されるように)"getValue"関数がコールされる。IPFSからハッシュを得る関数がコールされ、返される。両方のハッシュ値が比較される。両者が同じでなければ、エラーがスローされる。この例解される例では、両者は同じで、出力「両方のハッシュ値が一致」(Both hash values match)が生成される。
相互運用性アプリケーションがトランザクション・コストを削減できることを実証するために、以下の例が与えられる。CouchDBからのJSONファイルは、相互運用性アプリケーション層を通じた処理を介してイーサリアム・パブリック・ブロックチェーンに公開される。たとえば、サンプル・キー/値のペアを21個もつファイルのサイズは1010バイトである。Solidityベースのスマートコントラクトは、JSONファイルをIPFS上に保存する。IPFSは、記憶されたファイルからハッシュを作成した後、トランザクションをさらにパブリック・イーサリアム・ブロックチェーンに向けて処理する。
作業例を与えるために、4つのサンプル・ファイルが生成される。サンプル・ファイルはすべてJSONフォーマットで格納され、明示的な内容がCouchDBから取得される。第1のサンプル・ファイルは4096文字からなり、合計ファイル・サイズは4096バイト(4.096キロバイト);第2のファイルは8192文字からなり、合計ファイル・サイズは8192バイト;第3のサンプル・ファイルは16384文字からなり、合計ファイル・サイズは16384バイト;最後のサンプル・ファイルは32768文字からなり、合計ファイル・サイズは32768バイトである。
この量のデータを記憶するための計算されたトランザクション・コストは、図4から取得されてもよく、あるいは前に提示された、トランザクションにおけるガス消費の公式を用いて計算されてもよい。たとえば、第1のサンプルは、次のようになる:
データ・サイズ:4096バイト
ガス使用量:2581000
ガス価格(2Gweiの平均):0.71米ドル
データ入力を処理し、サンプルJSONファイルをIPFSに記憶することにより、次のハッシュが取得され、パブリック・イーサリアム・ブロックチェーンに記憶される:
0x3917bfb73ef4bf4413787fbba351f9e8ca056efe3251880c9ec6d2edf3918181
ハッシュを記憶するためのトランザクション・コストは、次のとおり:
データ・サイズ:66バイト
ガス使用量:36128
ガス価格:0.0097米ドル。
表1は、上記の4つのサンプルからなる作業例を示す。データ・サンプルはJSONファイルとして処理され、正確なデータ・サイズが表にリストされている。相互運用性アプリケーションを使用した場合、どのサイズのデータについても、全体的なガス価格は0.0097USDに制限されたことがわかる(執筆時点でのイーサリアム価格に基づく)。
Figure 0007409190000002
図15は、さまざまなデータ・サイズでのガス使用を示し、相互運用性アプリケーションによる処理前後のサンプルを比較する。片対数スケールに注意。
本発明の実施形態は、ハイパーレッジャー・ファブリックとイーサリアム・プロトコルとの間の相互運用性アプローチを提案する。ブロックチェーンの技術分野全体を考慮すると、他のブロックチェーン・ベースのプロトコル間の相互運用性を同じように保証するために、実施形態の機能を採用することができる。実施形態は、プライベート・ブロックチェーン・ネットワークとパブリック・ブロックチェーン・ネットワークとの間のハイブリッド解決策に依拠する使用事例を可能にする。そのような解決策を使用することにより、プライベート・ブロックチェーン・ネットワークで作成されたデータが公衆向けに処理されることができる。資産価値の信頼性および資産の透明性が主な恩恵である。
発明実施形態は、以下の任意のものを提供しうる:
(1)プライベート・コンソーシアム・ブロックチェーン・ネットワークからパブリック・ブロックチェーン・ネットワークにデータを処理する相互運用性アプリケーションを用いたシステム構築により、相互運用性およびプロセス全体の間の低い通信コストを保証する(図10に示されるシステム構成)。
(2)アプリケーションの相互運用性の内部構築。これは、パブリック・ブロックチェーン・ネットワークとプライベート・チェーン・ネットワークへの2つのインターフェースをもち、パブリック・ブロックチェーン・ネットワークへのインターフェースは、ファイルおよびスマートコントラクトからハッシュ値を生成することにより、IPFSと協調し、相互運用性およびプロセス全体の間の低い通信コストを保証する(図11に示される相互運用性アプリケーションの内部構築)。
(3)プライベート・コンソーシアム・ブロックチェーン・ネットワークからパブリック・ブロックチェーン・ネットワークにデータを処理する相互運用性アプリケーションに基づくソフトウェア・プロセスにより、相互運用性およびプロセス全体の間の低い通信コストを保証する(図8に示されるデータ・プロセス)。
(4)プライベート・コンソーシアム・ブロックチェーン・ネットワークからパブリック・ブロックチェーン・ネットワークにデータを処理する相互運用性アプリケーションに基づくソフトウェア・プロセスで、プロセス全体の間のデータ真正性を保証するためにプライベート・コンソーシアム・ブロックチェーン・ネットワークのログ機能を呼び出しつつ処理を行なう(図9に示されるデータ・プロセス)。
図16は、本発明を具現し、第2のブロックチェーン・ネットワークを介して第1のブロックチェーン・ネットワークからのデータ・アクセスを可能にする実施形態の方法を実施するために使用されうる、データ記憶サーバー(または本明細書に記載のRESTfulサーバー)などのコンピューティング装置のブロック図である。コンピューティング装置は、たとえば図5の方法を実行しうる、プロセッサ993およびメモリ994を備える。任意的に、コンピューティング装置はまた、他のコンピューティング装置、たとえば、発明実施形態の他のコンピューティング装置と通信するためのネットワーク・インターフェース997を含む。
たとえば、ある実施形態は、そのようなコンピューティング装置のネットワークで構成されてもよい。任意的に、コンピューティング装置は、キーボードおよびマウス996のような一つまたは複数の入力機構、および一つまたは複数のモニタ995のようなディスプレイ・ユニットも含む。構成要素は、バス992を介して互いに接続可能である。
メモリ994は、コンピュータ読取可能媒体を含みうる。この用語は、コンピュータ実行可能命令を担持するように、またはその上にデータ構造を記憶するように構成された単一の媒体または複数の媒体(たとえば、中央集中型または分散型のデータベースおよび/または関連するキャッシュおよびサーバー)を指しうる。コンピュータ実行可能命令は、たとえば、汎用コンピュータ、特殊目的コンピュータ、または特殊目的処理装置(たとえば、一つまたは複数のプロセッサ)によってアクセス可能であり、一つまたは複数の機能または動作を実行するための命令およびデータを含んでいてもよい。このように、「コンピュータ読取可能記憶媒体」という用語は、機械による実行のための、機械に本開示の方法の任意の一つまたは複数を実行させる命令の集合を記憶する、エンコードする、または担持することが可能な任意の媒体をも含んでいてもよい。よって、「コンピュータ読取可能記憶媒体」という用語は、固体メモリ、光学式媒体および磁気媒体を含むが、これらに限定されないと解されうる。たとえば、限定するものではないが、そのようなコンピュータ読取可能媒体は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的に消去可能なプログラマブル読み出し専用メモリ(EEPROM)、コンパクトディスク読み出し専用メモリ(CD-ROM)、または他の光ディスク記憶、磁気ディスク記憶、または他の磁気記憶デバイス、フラッシュメモリ・デバイス(たとえば固体メモリ・デバイス)を含む、非一時的コンピュータ読取可能記憶媒体を含んでいてもよい。
プロセッサ993は、コンピューティング装置を制御し、処理動作を実行するように構成され、たとえば、本明細書および特許請求の範囲に記載される第1のインターフェース102、第2のインターフェース104、およびユーザー・インターフェース106のさまざまな異なる機能を実装するために、メモリに記憶されたコードを実行する。メモリ994は、プロセッサ993によって読み書きされるデータを記憶する。本明細書で言及するところでは、プロセッサは、マイクロプロセッサ、中央処理装置などの一つまたは複数の汎用処理装置を含んでいてもよい。プロセッサは、複雑命令セット計算(CISC)マイクロプロセッサ、縮小命令セット計算(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、または他の命令セットを実装するプロセッサまたは命令セットの組み合わせを実装する諸プロセッサを含んでいてもよい。プロセッサは、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサなどの一つまたは複数の特殊目的の処理デバイスを含んでいてもよい。一つまたは複数の実施形態では、プロセッサは、本明細書で議論された動作およびステップを実行するための命令を実行するように構成される。
表示ユニット995は、本明細書に記載するGUIの一部として、コンピューティング装置によって記憶されたデータの表現を表示することができ、また、ユーザーとコンピューティング装置上に記憶されたプログラムおよびデータとの間の対話を可能にするカーソルおよびダイアログボックスおよびスクリーンを表示することもできる。入力機構996は、ユーザーが、たとえば、第1のブロックチェーン・ネットワークからデータを記憶または取得したり、第2のブロックチェーン・ネットワークを介して該データを取得したりするために、データおよび命令をコンピューティング装置に入力することを可能にする。
ネットワーク・インターフェース(ネットワークI/F)997は、インターネットのようなネットワークに接続されてもよく、ネットワークを介して他のこのようなコンピューティング装置に接続可能である。ネットワークI/F 997は、ネットワークを介して他の装置との間のデータ入出力を制御することができる。マイクロフォン、スピーカー、プリンター、電源ユニット、ファン、ケース、スキャナ、トラッカーボール等の他の周辺装置が、コンピューティング装置に含まれてもよい。
本発明を具現する方法は、図16に示されるようなコンピューティング装置上で実行されてもよい。そのようなコンピューティング装置は、図16に示されるすべての構成要素を有する必要はなく、これらの構成要素のサブセットから構成されてもよい。本発明を具現する方法は、ネットワークを介して一つまたは複数のデータ記憶サーバーと通信する単一のコンピューティング装置によって実行されてもよい。コンピューティング装置は、第1のブロックチェーンから第2のブロックチェーン・ネットワークを介してアクセスされるデータを記憶するデータ記憶装置自身であってもよい。
本発明を具現する方法は、互いに協働して動作する複数のコンピューティング装置によって実行されてもよい。複数のコンピューティング装置のうちの一つまたは複数は、第1のブロックチェーンから第2のブロックチェーン・ネットワークを介してアクセスされるデータの少なくとも一部を記憶するデータ記憶サーバーであってもよい。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
第2のブロックチェーン・ネットワークを介して第1のブロックチェーン・ネットワークからのデータのアクセスを可能にするコンピュータ実装される方法であって:
前記第1のブロックチェーン・ネットワークからのデータを取得し、該データを前記第2のブロックチェーン・ネットワークに関連付けられたファイル・システムに記憶する段階と;
前記データのハッシュ値を取得し、前記ハッシュ値を前記第2のブロックチェーン・ネットワークに記憶する段階と;
前記データを取得するために、前記ファイル・システム内の前記データと前記第2のブロックチェーン・ネットワークに記憶された前記ハッシュ値とを照会する段階とを含む、
方法。
(付記2)
前記第1のブロックチェーン・ネットワーク上に記憶された前記データのハッシュを、前記ファイル・システム内の前記データのハッシュおよび/または前記第2のブロックチェーン・ネットワーク上に記憶された前記ハッシュ値と比較する段階をさらに含む、付記1に記載の方法。
(付記3)
前記第1のブロックチェーン・ネットワークおよび前記第2のブロックチェーン・ネットワークが、異なるブロックチェーン・プロトコルを用いて動作する、付記1または2に記載の方法。
(付記4)
前記第1のブロックチェーン・ネットワークはプライベート・ブロックチェーン・ネットワークであり;
前記第2のブロックチェーン・ネットワークはパブリック・ブロックチェーン・ネットワークである、
付記1ないし3のうちいずれか一項に記載の方法。
(付記5)
前記第1のブロックチェーン・ネットワークからの前記データは、キー/値フォーマットである、付記1ないし4のうちいずれか一項に記載の方法。
(付記6)
前記第2のブロックチェーン・ネットワークに関連付けられた前記ファイル・システムは、内容アドレッシング可能な分散ファイル・システム・プロトコルに基づく、付記1ないし5のうちいずれか一項に記載の方法。
(付記7)
前記ハッシュ値の前記記憶を前記第2のブロックチェーンでスマートコントラクトを用いて実装することをさらに含む、付記1ないし6のうちいずれか一項に記載の方法。
(付記8)
前記第1のブロックチェーン・ネットワークから前記データについてのログ・ファイルを取得し、該ログ・ファイルを前記第2のブロックチェーン・ネットワークに関連付けられた前記ファイル・システムに記憶する段階と;
前記ファイル・システム内の前記ログ・ファイルを、前記第2のブロックチェーンに記憶されている前記ハッシュ値についての前記ファイルのメタデータと比較する段階とをさらに含む、
付記1ないし7のうちいずれか一項に記載の方法。
(付記9)
前記ログ・ファイルが、前記第1のブロックチェーン・ネットワーク上にさらに記憶される、付記8に記載の方法。
(付記10)
第1のブロックチェーン・ネットワークと第2のブロックチェーン・ネットワークとの間をインターフェースする相互運用性アプリケーションであって、前記アプリケーションは:
データを取得するように動作可能な、前記第1のブロックチェーン・ネットワークとの第1のインターフェースと;
前記取得されたデータを前記第2のブロックチェーン・ネットワークに関連付けられたファイル・システムにアップロードし、前記データのハッシュ値を返却し、前記ハッシュ値を前記第2のブロックチェーン・ネットワークに記憶するように動作可能な、前記第2のブロックチェーン・ネットワークとの第2のインターフェースと;
前記第2のブロックチェーン・ネットワーク上の前記ハッシュ値を前記ファイル・システム中の対応するデータと比較するためのクエリーを送信するよう動作可能なユーザー・インターフェースとを有する、
アプリケーション。
(付記11)
前記比較されたデータが前記記憶されたハッシュ値と一致する場合、前記ユーザー・インターフェースは、前記ファイル・システムから前記データを取得するようにさらに動作可能である、付記10に記載のアプリケーション。
(付記12)
前記第1のインターフェースは:
前記アプリケーションと前記第1のブロックチェーン・ネットワークとの間の通信を確立する第1の通信モジュール(202)と;
前記第1の通信モジュール(202)と前記第1のブロックチェーン・ネットワーク(108)との間の前記通信のための機能を提供する第1のアプリケーション・プログラミング・インターフェースAPI(222)とを有する、
付記10または11記載のアプリケーション。
(付記13)
前記第2のインターフェースは:
前記アプリケーションと前記第2のブロックチェーン・ネットワーク(110)へのゲートウェイAPI(224)との間および/または前記アプリケーションと前記第2のブロックチェーン・ネットワーク(110)に関連付けられた前記ファイル・システム(112)との間の通信を確立する第2の通信モジュール(204)と;
スマートコントラクトを実装することによって、前記第2の通信モジュール(204)と前記第2のブロックチェーン・ネットワーク(110)との間、および前記第2の通信モジュール(204)と前記第2のブロックチェーン・ネットワーク(110)に関連付けられた前記ファイル・システム(112)との間の通信のための機能を提供する前記ゲートウェイAPI(224)とを有する、
付記10ないし12のうちいずれか一項に記載のアプリケーション。
(付記14)
第2のブロックチェーン・ネットワークを介して第1のブロックチェーン・ネットワークからのデータのアクセスを可能にする方法を実行するように構成されたコンピュータ装置であって、前記コンピュータ装置は:
メモリと;
プロセッサとを有しており、前記プロセッサは:
前記第1のブロックチェーン・ネットワークからデータを取得し、前記データを前記第2のブロックチェーン・ネットワークに関連付けられたファイル・システムに記憶し;
前記データのハッシュ値を取得し、前記ハッシュ値を前記第2のブロックチェーン・ネットワークに記憶し;
前記ファイル・システムにある前記データと前記第2のブロックチェーン・ネットワークに記憶されている前記ハッシュ値とを、データの均質性を検査するために比較するよう構成されている、
コンピュータ装置。
S2 第1のブロックチェーン・ネットワークからデータを取得し、第2のブロックチェーン・ネットワークに関連するファイル・システムに記憶
S4 前記データのハッシュ値を取得し、該ハッシュ値を第2のブロックチェーン・ネットワークに記憶
S6 前記ファイル・システム中の前記データと前記第2のブロックチェーンに記憶されているハッシュ値とを比較してデータを取得するために照会

100 相互運用性アプリケーション
102 第1のインターフェース
104 第2のインターフェース
106 ユーザー・インターフェース
108 第1のブロックチェーン・ネットワーク
110 第2のブロックチェーン・ネットワーク
112 ファイル・システム

Claims (13)

  1. 第2のブロックチェーン・ネットワークを介して第1のブロックチェーン・ネットワークからのデータのアクセスを可能にするコンピュータ実装される方法であって、前記第1のブロックチェーン・ネットワークはプライベート・ブロックチェーン・ネットワークであり、前記第2のブロックチェーン・ネットワークはパブリック・ブロックチェーン・ネットワークであり、当該方法は
    前記第1のブロックチェーン・ネットワークからのデータを取得し、該データを前記第2のブロックチェーン・ネットワークに関連付けられたファイル・システムに記憶する段階と;
    前記データのハッシュ値を取得し、前記ハッシュ値を前記第2のブロックチェーン・ネットワークに記憶する段階と;
    前記データを取得するために、前記ファイル・システム内の前記データと前記第2のブロックチェーン・ネットワークに記憶された前記ハッシュ値とを照会する段階とを含む、
    方法。
  2. 前記第1のブロックチェーン・ネットワーク上に記憶された前記データのハッシュを、前記ファイル・システム内の前記データのハッシュおよび/または前記第2のブロックチェーン・ネットワーク上に記憶された前記ハッシュ値と比較する段階をさらに含む、請求項1に記載の方法。
  3. 前記第1のブロックチェーン・ネットワークおよび前記第2のブロックチェーン・ネットワークが、異なるブロックチェーン・プロトコルを用いて動作する、請求項1または2に記載の方法。
  4. 前記第1のブロックチェーン・ネットワークからの前記データは、キー/値フォーマットである、請求項1ないしのうちいずれか一項に記載の方法。
  5. 前記第2のブロックチェーン・ネットワークに関連付けられた前記ファイル・システムは、内容アドレッシング可能な分散ファイル・システム・プロトコルに基づく、請求項1ないしのうちいずれか一項に記載の方法。
  6. 前記ハッシュ値の前記記憶を前記第2のブロックチェーンでスマートコントラクトを用いて実装することをさらに含む、請求項1ないしのうちいずれか一項に記載の方法。
  7. 前記第1のブロックチェーン・ネットワークから前記データについてのログ・ファイルを取得し、該ログ・ファイルを前記第2のブロックチェーン・ネットワークに関連付けられた前記ファイル・システムに記憶する段階と;
    前記ファイル・システム内の前記ログ・ファイルを、前記第2のブロックチェーンに記憶されている前記ハッシュ値についての前記ファイルのメタデータと比較する段階とをさらに含む、
    請求項1ないしのうちいずれか一項に記載の方法。
  8. 前記ログ・ファイルが、前記第1のブロックチェーン・ネットワーク上にさらに記憶される、請求項に記載の方法。
  9. 第1のブロックチェーン・ネットワークと第2のブロックチェーン・ネットワークとの間をインターフェースする相互運用性アプリケーションであって、前記第1のブロックチェーン・ネットワークはプライベート・ブロックチェーン・ネットワークであり、前記第2のブロックチェーン・ネットワークはパブリック・ブロックチェーン・ネットワークであり、前記アプリケーションは:
    データを取得するように動作可能な、前記第1のブロックチェーン・ネットワークとの第1のインターフェースと;
    前記取得されたデータを前記第2のブロックチェーン・ネットワークに関連付けられたファイル・システムにアップロードし、前記データのハッシュ値を返却し、前記ハッシュ値を前記第2のブロックチェーン・ネットワークに記憶するように動作可能な、前記第2のブロックチェーン・ネットワークとの第2のインターフェースと;
    前記第2のブロックチェーン・ネットワーク上の前記ハッシュ値を前記ファイル・システム中の対応するデータと比較するためのクエリーを送信するよう動作可能なユーザー・インターフェースとを有する、
    アプリケーション。
  10. 前記比較されたデータが前記記憶されたハッシュ値と一致する場合、前記ユーザー・インターフェースは、前記ファイル・システムから前記データを取得するようにさらに動作可能である、請求項に記載のアプリケーション。
  11. 前記第1のインターフェースは:
    前記アプリケーションと前記第1のブロックチェーン・ネットワークとの間の通信を確立する第1の通信モジュール(202)と;
    前記第1の通信モジュール(202)と前記第1のブロックチェーン・ネットワーク(108)との間の前記通信のための機能を提供する第1のアプリケーション・プログラミング・インターフェースAPI(222)とを有する、
    請求項または10記載のアプリケーション。
  12. 前記第2のインターフェースは:
    前記アプリケーションと前記第2のブロックチェーン・ネットワーク(110)へのゲートウェイAPI(224)との間および/または前記アプリケーションと前記第2のブロックチェーン・ネットワーク(110)に関連付けられた前記ファイル・システム(112)との間の通信を確立する第2の通信モジュール(204)と;
    スマートコントラクトを実装することによって、前記第2の通信モジュール(204)と前記第2のブロックチェーン・ネットワーク(110)との間、および前記第2の通信モジュール(204)と前記第2のブロックチェーン・ネットワーク(110)に関連付けられた前記ファイル・システム(112)との間の通信のための機能を提供する前記ゲートウェイAPI(224)とを有する、
    請求項ないし11のうちいずれか一項に記載のアプリケーション。
  13. 第2のブロックチェーン・ネットワークを介して第1のブロックチェーン・ネットワークからのデータのアクセスを可能にする方法を実行するように構成されたコンピュータ装置であって、前記第1のブロックチェーン・ネットワークはプライベート・ブロックチェーン・ネットワークであり、前記第2のブロックチェーン・ネットワークはパブリック・ブロックチェーン・ネットワークであり、前記コンピュータ装置は:
    メモリと;
    プロセッサとを有しており、前記プロセッサは:
    前記第1のブロックチェーン・ネットワークからデータを取得し、前記データを前記第2のブロックチェーン・ネットワークに関連付けられたファイル・システムに記憶し;
    前記データのハッシュ値を取得し、前記ハッシュ値を前記第2のブロックチェーン・ネットワークに記憶し;
    前記ファイル・システムにある前記データと前記第2のブロックチェーン・ネットワークに記憶されている前記ハッシュ値とを、データの均質性を検査するために比較するよう構成されている、
    コンピュータ装置。
JP2020052738A 2019-08-14 2020-03-24 チェーン横断的な相互運用性のためのコンピュータ実装方法 Active JP7409190B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP19191861.4A EP3779755B1 (en) 2019-08-14 2019-08-14 A computer-implemented method for cross-chain-interoperability
EP19191861.4 2019-08-14

Publications (2)

Publication Number Publication Date
JP2021035041A JP2021035041A (ja) 2021-03-01
JP7409190B2 true JP7409190B2 (ja) 2024-01-09

Family

ID=67658904

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020052738A Active JP7409190B2 (ja) 2019-08-14 2020-03-24 チェーン横断的な相互運用性のためのコンピュータ実装方法

Country Status (2)

Country Link
EP (1) EP3779755B1 (ja)
JP (1) JP7409190B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113468612B (zh) * 2021-06-30 2023-08-22 上海特高信息技术有限公司 一种基于区块链和ipfs的文件审核***及方法
CN115914244B (zh) * 2022-09-23 2024-05-17 四川启睿克科技有限公司 一种优化分布式账本互操作性的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018171539A1 (zh) 2017-03-21 2018-09-27 阿里巴巴集团控股有限公司 一种业务请求的处理方法及装置
WO2019005952A1 (en) 2017-06-27 2019-01-03 Alibaba Group Holding Limited METHOD FOR PROCESSING MULTIPLE BLOCK CHAINS NETWORK DATA, APPARATUS, AND SERVER
WO2019072301A2 (en) 2018-12-21 2019-04-18 Alibaba Group Holding Limited VERIFYING THE INTEGRITY OF STORED DATA IN A CONSORTIUM BLOCK CHAIN USING A PUBLIC SECONDARY CHAIN

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10419225B2 (en) * 2017-01-30 2019-09-17 Factom, Inc. Validating documents via blockchain

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018171539A1 (zh) 2017-03-21 2018-09-27 阿里巴巴集团控股有限公司 一种业务请求的处理方法及装置
WO2019005952A1 (en) 2017-06-27 2019-01-03 Alibaba Group Holding Limited METHOD FOR PROCESSING MULTIPLE BLOCK CHAINS NETWORK DATA, APPARATUS, AND SERVER
WO2019072301A2 (en) 2018-12-21 2019-04-18 Alibaba Group Holding Limited VERIFYING THE INTEGRITY OF STORED DATA IN A CONSORTIUM BLOCK CHAIN USING A PUBLIC SECONDARY CHAIN

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JIANG, Yiming et al.,A Cross-Chain Solution to Integrating Multiple Blockchains for IoT Data Management,Sensors [online],2019年05月01日,Volume 19, Issue 9, 2042,pp. 1-18,[2023年9月26日検索], インターネット <URL: https://www.mdpi.com/1424-8220/19/9/2042>,<DOI: 10.3390/s19092042>

Also Published As

Publication number Publication date
JP2021035041A (ja) 2021-03-01
EP3779755B1 (en) 2023-09-13
EP3779755A1 (en) 2021-02-17

Similar Documents

Publication Publication Date Title
US10965445B2 (en) Blockchain-based unexpected data detection
US10904009B2 (en) Blockchain implementing delta storage
US11341121B2 (en) Peer partitioning
US20200145373A1 (en) System for blockchain based domain name and ip number register
US11849047B2 (en) Certifying authenticity of data modifications
JP2021525931A (ja) ブロックチェーンのための効率的な検証
JP2021518705A (ja) ブロックチェーン台帳のためのランタイム自己修正
JP2021512416A (ja) クラウドベースのコンピューティング環境において分散台帳技術のためのインテリジェントな合意、スマートな合意、及び重み付き合意のモデルを実現するシステム、方法、及び装置
US11917088B2 (en) Integrating device identity into a permissioning framework of a blockchain
US20200151266A1 (en) Data processing using external information
US11431503B2 (en) Self-sovereign data access via bot-chain
US20220067669A1 (en) Predictive device maintenance
US20220044316A1 (en) Blockchain implemented transfer of multi-asset digital wallets
US11003653B2 (en) Method and system for secure digital documentation of subjects using hash chains
CA3088147C (en) Data isolation in distributed hash chains
JP7409190B2 (ja) チェーン横断的な相互運用性のためのコンピュータ実装方法
BR112021002227A2 (pt) plataforma de livro contábil distribuído para controle de acesso
Tanwar et al. Implementation of blockchain-based e-voting system
CN1610296B (zh) 对信任确定实体安全地识别可执行码的方法
JP2020086634A (ja) 資産情報登録方法
US11755562B2 (en) Score based endorsement in a blockchain network
US20220171763A1 (en) Blockchain selective world state database
US11483132B2 (en) Generating and initiating pre-signed transaction requests for flexibly and efficiently implementing secure cryptographic key management
TWI788682B (zh) 透過第三方區塊鏈進行保單存證與驗證之系統及方法
US20240061828A1 (en) Recursive endorsements for database entries

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231109

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231204

R150 Certificate of patent or registration of utility model

Ref document number: 7409190

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150