IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ケルビン ゼロ インコーポレーテッドの特許一覧

特許7121810安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末
<>
  • 特許-安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末 図1
  • 特許-安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末 図2
  • 特許-安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末 図3A
  • 特許-安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末 図3B
  • 特許-安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末 図3C
  • 特許-安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末 図4
  • 特許-安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末 図5
  • 特許-安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末 図6
  • 特許-安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末 図7
  • 特許-安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末 図8
  • 特許-安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末 図9
  • 特許-安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末 図10
  • 特許-安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末 図11
  • 特許-安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末 図12
  • 特許-安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末 図13
  • 特許-安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末 図14
  • 特許-安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末 図15
  • 特許-安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末 図16
  • 特許-安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末 図17
  • 特許-安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-09
(45)【発行日】2022-08-18
(54)【発明の名称】安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末
(51)【国際特許分類】
   H04L 9/08 20060101AFI20220810BHJP
   G06F 21/64 20130101ALI20220810BHJP
【FI】
H04L9/08 A
H04L9/08 F
G06F21/64
【請求項の数】 21
(21)【出願番号】P 2020564675
(86)(22)【出願日】2019-03-27
(65)【公表番号】
(43)【公表日】2021-09-02
(86)【国際出願番号】 CA2019050376
(87)【国際公開番号】W WO2019218055
(87)【国際公開日】2019-11-21
【審査請求日】2021-02-12
(31)【優先権主張番号】62/671,550
(32)【優先日】2018-05-15
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520444041
【氏名又は名称】ケルビン ゼロ インコーポレーテッド
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】デスマレ、フィリップ
(72)【発明者】
【氏名】サン-ジャック ギャニオン、ティエリー
【審査官】松平 英
(56)【参考文献】
【文献】特開平11-232348(JP,A)
【文献】国際公開第2017/145021(WO,A1)
【文献】特表2018-511137(JP,A)
【文献】特表2001-506783(JP,A)
【文献】国際公開第2017/201489(WO,A1)
【文献】ナラヤナン アーヴィンド Arvind Narayanan 他,仮想通貨の教科書-ビットコインなどの仮想通貨が機能する仕組み,第1版,日本,日経BP社,2016年12月09日,pp.155-pp.166,ISBN978-4-8222-8545-6
(58)【調査した分野】(Int.Cl.,DB名)
G06F12/14
21/00-21/88
G06Q10/00-10/10
30/00-30/08
50/00-50/20
50/26-99/00
G09C 1/00-5/00
G16Z99/00
H04K 1/00-3/00
H04L 9/00-9/40
(57)【特許請求の範囲】
【請求項1】
安全なブロックチェーントランザクションを実行するためのシステムであって、前記システムは、
前記ブロックチェーントランザクションを生成するための端末であって、第1のモードおよび第2のモードで動作するように構成された端末と;
前記端末が前記第1のモードと前記第2のモードで同時に動作するのを妨げるためのスイッチコネクタと;
を備え、
前記端末が前記第1のモードにあるとき、前記端末は、ネットワークを介してシステムプロバイダサーバに接続され、前記システムプロバイダサーバは、少なくとも1つのブロックチェーンデバイスと通信し;
前記端末が前記第2のモードにある場合、前記端末は、コールドストレージデバイスと通信し;
前記コールドストレージデバイスは、前記ブロックチェーントランザクションに署名するための秘密鍵を格納するように構成され;
前記端末は、前記秘密鍵を使用して前記コールドストレージデバイスで前記ブロックチェーントランザクションに署名されることを可能にするように構成される、システム。
【請求項2】
前記スイッチコネクタは、ハードウェアスイッチで構成される、請求項1に記載のシステム。
【請求項3】
前記スイッチコネクタは、ソフトウェアスイッチで構成される、請求項1に記載のシステム。
【請求項4】
前記ブロックチェーントランザクションは、前記署名済みのブロックチェーントランザクションを前記少なくとも1つのブロックチェーンデバイスに送信する前に、少なくとも2つのパーティによって署名される、請求項1に記載のシステム。
【請求項5】
前記少なくとも2つのパーティは、システムプロバイダを含む、請求項4に記載のシステム。
【請求項6】
前記システムプロバイダサーバは、少なくとも1つのサービスプロバイダデバイスと通信する、請求項1に記載のシステム。
【請求項7】
安全なブロックチェーントランザクションを実行するための端末であって、前記端末は、
未署名のブロックチェーントランザクションを生成するためのプロセッサと;
前記未署名のブロックチェーントランザクションをコールドストレージデバイスに送信するためのコールドストレージ通信ポートであって、前記コールドストレージデバイスは、前記未署名のブロックチェーントランザクションに署名するための秘密鍵を格納し、前記端末は前記コールドストレージデバイスから署名済みのブロックチェーントランザクションを受信する、コールドストレージ通信ポートと;
ネットワークを介して前記署名済みのブロックチェーントランザクションをシステムプロバイダサーバに送信するためのネットワーク通信ポートであって、前記システムプロバイダサーバは、少なくとも1つのブロックチェーンデバイスと通信する、ネットワーク通信ポートと;
前記秘密鍵がネットワークに公開されないように、前記コールドストレージ通信ポート及び前記ネットワーク通信ポートの一方を選択的に無効にするためのスイッチコネクタと;
を備える、端末。
【請求項8】
前記スイッチコネクタは、ハードウェアスイッチを含む、請求項7に記載の端末。
【請求項9】
前記スイッチコネクタは、ソフトウェアスイッチを含む、請求項7に記載の端末。
【請求項10】
前記未署名のブロックチェーントランザクションを前記システムプロバイダサーバから端末に渡すためのインバウンド通信および前記端末から前記システムプロバイダサーバへ部分的に署名済みのブロックチェーントランザクションを渡すためのアウトバウンド通信を制限するように構成される、請求項7に記載の端末。
【請求項11】
ネットワークを介してデジタルアセットの安全なブロックチェーントランザクションを実行するためのコールドストレージデバイスであって、前記コールドストレージデバイスは、
少なくとも1つのコールドストレージウォレットの秘密鍵であって、未署名のブロックチェーントランザクションに署名するための前記秘密鍵を格納するメモリと;
第2のモードで端末から未署名のブロックチェーントランザクションを受信するための通信インターフェースであって、前記端末は前記第2のモードで前記ネットワークから切断され、前記端末は第1のモードと前記第2のモードで同時に動作するのを妨げるためのスイッチコネクタを使用して前記第1のモードで前記ネットワークに接続され、前記通信インターフェース署名済みのブロックチェーントランザクションを前記端末に送信して前記端末が前記第2のモードで前記ネットワークから切断される、通信インターフェースと;
前記秘密鍵を使用して前記未署名のブロックチェーントランザクションに署名するように構成されたプロセッサと
を備える、コールドストレージデバイス。
【請求項12】
前記通信インターフェースは、暗号化されたブルートゥース(登録商標)、近距離無線通信、Wi-Fi(登録商標)、光通信、有線通信、および熱放射からなるグループから選択される少なくとも1つの通信メカニズムを使用する、請求項11に記載のコールドストレージデバイス。
【請求項13】
前記プロセッサはさらに、前記少なくとも1つのコールドストレージウォレットの鍵ペアを生成するように構成される、請求項11に記載のコールドストレージデバイス。
【請求項14】
前記少なくとも1つのコールドストレージウォレットは、階層的な決定論的ウォレットである、請求項13に記載のコールドストレージデバイス。
【請求項15】
前記少なくとも1つのコールドストレージウォレットは、マルチ署名ウォレットである、請求項11に記載のコールドストレージデバイス。
【請求項16】
前記マルチ署名ウォレットは、少なくとも2つのパーティからの署名を必要とする、請求項15に記載のコールドストレージデバイス。
【請求項17】
通信ネットワークを介して安全なブロックチェーントランザクションを実行するための方法であって、前記方法は、
端末を使用して未署名のブロックチェーントランザクションを生成するステップであって、前記端末はオンラインモード及びオフラインモードを有する、ステップと;
前記オフラインモードにおいて、前記未署名のブロックチェーントランザクションを前記端末からコールドストレージデバイスに送信するステップであって、前記コールドストレージデバイスは、前記未署名のブロックチェーントランザクションに署名するための秘密鍵を格納する、ステップと;
前記秘密鍵を使用して、前記コールドストレージデバイスで前記未署名のブロックチェーントランザクションに署名するステップと;
前記署名済みのブロックチェーントランザクションを前記コールドストレージデバイスから前記端末に送信するステップと;
スイッチコネクタを使用して前記端末を前記オフラインモードから前記オンラインモードに切り替えるステップと;
前記オンラインモードにおいて、前記署名済みのブロックチェーントランザクションを前記端末から前記通信ネットワークを介してシステムプロバイダサーバに送信するステップであって、前記システムプロバイダサーバは複数のブロックチェーンコンピュータと通信する、ステップと;
を含む、方法。
【請求項18】
マルチ署名認証プロセスに従って、第2の秘密鍵を用いて前記送信された署名済みのトランザクションに署名するステップをさらに含む、請求項17に記載の方法。
【請求項19】
前記送信された署名済みのトランザクションへの署名は、前記システムプロバイダサーバで実行される、請求項18に記載の方法。
【請求項20】
前記スイッチコネクタは、ハードウェアスイッチコネクタである、請求項17に記載の方法。
【請求項21】
前記スイッチコネクタは、ソフトウェアスイッチコネクタである、請求項17に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
以下は、概してブロックチェーン技術に関連し、より詳細には、安全なブロックチェーントランザクションを行うためのコンピュータシステム、方法、およびデバイスに関連する。
【背景技術】
【0002】
ブロックチェーン技術の使用が普及するにつれて、ブロックチェーンアセットを含むトランザクションを処理する際のコンピュータセキュリティの問題により大きな注意が向けられている。たとえば、ブロックチェーンアセット(暗号通貨など)の盗難や、ブロックチェーンウォレットプロバイダおよび/または取引所のサーバのハッキングの事例が公表されている。51%の攻撃は、ブロックチェーンのランドスケープに対する別の脅威である。ブロックチェーンアセットの価値と重要性が高まり、採用が主流になるにつれて、個人または組織は、ハッカーの手の届かないところにブロックチェーンアセットを格納し、ブロックチェーンエコシステム自体を標的とする他の種類の攻撃のリスクを軽減したいと思う場合がある。さらに、より重要なインフラストラクチャシステムがブロックチェーンの使用と実装を楽しみにしているため、セキュリティを念頭に置いてこの次世代システムを構築することの重要性は、最優先事項になる。
【0003】
ブロックチェーンアセットは、1つ又は複数の暗号通貨(Bitcoin(登録商標)など)、会社の株式、またはその他の種類のアセットの共有、金融商品(債券、負債証券、オプション、先物、その他のデリバティブなど)、様々なタイプの格納データ(すなわち、文書、記録、ログなど)、身元の証明、旅行または政府の文書、ライセンス、およびスマートな契約上の合意への関心の任意のものを含むことができる。これらのアセットは、ブロックチェーン技術を使用して取引されることを特徴としている。ブロックチェーン技術は、分散型の方法でトランザクションの整合性を個別にチェックする様々なコンピュータによって実行される分散型台帳を含む。
【0004】
たとえば、ブロックチェーンウォレット及びアセットを管理する様々な方法の中で、「ホット」ウォレットを使用することができる。ホットウォレットはオンラインポータルであり、通常はアカウントに関連付けられている。このポータルを介してトランザクションを開始し、ブロックチェーンアセットを格納してアクセスされる。通常、ウェブサイトであるため、実用性が高い。しかし、この状況の場合のように、利便性及びセキュリティはしばしば矛盾する。したがって、別のウォレット(通常は電子ファイル)をオンラインではない「コールドストレージ」に格納できる。これは、ほとんど取引されないブロックチェーンアセットまたは近い将来に取引されないブロックチェーンアセットを格納できる「安全な」場所として使用される。このコールドストレージは、金庫または普通預金口座に似ており、セキュリティパラメータを提供し得る。
【0005】
ブロックチェーンアセット(暗号通貨など)を「含む」ウォレットは、少なくとも1つのキーの表現を格納および許可するサポート(物理的、デジタル、またはその他)であるため、このようなサポートの管理は慎重に行う必要がある。ブロックチェーンアセットを「含む」ウォレットを管理するプロセスは、安全な保管、暗号化、複製、バックアップ、作成-更新-読み取り-削除(CRUD)操作、配布、アクセス、回復メカニズムなどを含み得る。
【0006】
現在、ほとんどのブロックチェーン技術は、従来のコンピュータまたはスマートフォンを介して使用、アクセス、または操作されている。これにより、ユーザは、これらのデバイスによって提供される攻撃対象領域から生じるセキュリティ問題のリスクにさらされる。これらのデバイスに見られる様々なサービスの利便性と、それらを適切に保護することの複雑さにより、ユーザはブロックチェーン技術に最適な運用セキュリティプラクティスを採用することが困難になっている。これに加えて、セキュリティ機能とそのような機能の実装プロセスを詳述する明確な公開文書が不足しており、ほとんどのエンドユーザはベストプラクティスが理想的なプラクティスからかけ離れている状況に陥っている。
【0007】
さらに、ブロックチェーン技術は複雑であり、たとえば通常の支払いや記録管理ソリューションと比較して操作が難しいため、ブロックチェーンアセットへのアクセスが難しい場合がある。ブロックチェーンシステムの運用におけるこの困難は、ユーザデータを危険にさらす複数の機会をもたらす可能性がある。データが適切に処理および保護されていない場合、ブロックチェーンアセットの損失などの悪影響が生じる可能性がある。
【0008】
現在、ブロックチェーンアセット(たとえば、暗号通貨、または典型的なトークン化なしでブロックチェーン上で取引されるデジタルアセット又は有形アセットなどの他のアセット)を取引したいユーザには2つのオプションを有する。ユーザは、暗号通貨を取引してWebベースの取引所またはウォレットプロバイダに格納し、取引所またはウォレットプロバイダが危険にさらされないことを期待できる。また、ユーザは、Webポータルにアクセスする自分の資格のセットが危険にさらされることを回避する必要がある。それ以外の場合、ユーザはコールドストレージデバイスまたはソフトウェアを使用して秘密鍵をオフラインで格納できる。オフラインで格納することにより、ユーザはホットストレージ(Webアカウント/サーバなど)の侵害から身を守る。非ホットストレージソリューションは、実装が難しく、ブロックチェーンアセットのトランザクションを設定して実行するためにかなりの労力を必要とする場合がある。場合によっては、ユーザは2つのオプションを組み合わせて使用できる。
【0009】
マルウェアはプロセスの複数の段階で導入される可能性があるため、このアプローチは特に安全ではない。マルウェアは、コールドストレージデバイス、または鍵が辿る通過経路の他の構成要素に配信される可能性がある。たとえば、トランザクションのブロードキャストに使用されるインターネットに接続されたコンピュータは、そのデバイスがコールドストレージデバイスからの暗号化されていない(または一時的に復号された)秘密鍵を使用してトランザクションに署名するために使用される場合、ターゲットになる可能性がある。このアプローチはまた、効率的で信頼性の高いバックアップ戦略と計画の作成、ユーザによって保持される全てのバックアップのコピーが失われた又は破壊された場合の回復ソリューションの実装、および回復ソリューションを格納および使用するための安全な方法の確立を無視する。
【0010】
ウォレットは、多くの場合、コールドストレージデバイスに格納されている暗号化されたファイルの形式を取る。格納されたウォレットに関連付けられたデジタルアセットにアクセスする必要がある場合(たとえば、トランザクションを行うため)、コールドストレージデバイスがインターネットに接続されたコンピュータに接続され得る、及び/又はウォレットがそのデバイスに手動で転送され得る。次に、暗号化されたウォレットファイルは、復号され(暗号化が使用されている場合)、ロックが解除されて、デジタルアセットを特定の公開アドレスに転送するトランザクションに署名するために使用される。しかし、このシナリオでの主な問題は、コールドストレージデバイスが何らかの方法で非コールドデバイスに接続されていることである。これは、USBやその他の安全でない一時的な手段を介して行われ、暗号化されていない形式で秘密鍵を渡して、その非コールドデバイスに返される前に署名される。署名後、暗号化されていない秘密鍵は、インターネットに接続されたデバイスから可能な限り迅速に削除されるが、コードは数CPUサイクルの間メモリに残されていても、このコンテンツを簡単に取得できる。
【0011】
したがって、安全なブロックチェーントランザクションを実行するための改善されたシステム、方法、およびデバイスが必要である。
【発明の概要】
【0012】
以下は、概してブロックチェーン技術に関し、より具体的には、現在または将来のコンプライアンス要件と様々なポリシーを許可する一方で、安全なブロックチェーントランザクションを作成するためのコンピュータシステム、方法、およびサブネットワークに関する。
【0013】
デジタルアセットの安全なブロックチェーントランザクションを実行するためのシステムが提供される。システムは、ブロックチェーントランザクションを生成するための端末を含む。端末は、第1のモードおよび第2のモードで動作するように構成される。システムは、端末が第1のモードと第2のモードとで同時に動作するのを妨げるためのスイッチコネクタを含む。端末が第1のモードの場合、端末はネットワークを介してシステムプロバイダサーバに接続される。システムプロバイダサーバは、複数のブロックチェーンデバイスと通信する。端末が第2のモードにあるとき、端末はコールドストレージデバイス(cold storage device)と通信する。コールドストレージデバイスは、ブロックチェーントランザクションに署名するための秘密鍵(および派生鍵)を格納するように構成される。端末は、適切な秘密鍵を使用して、コールドストレージデバイスでブロックチェーントランザクションの署名を許可するように構成される。
【0014】
スイッチコネクタは、ハードウェアスイッチを含み得る。
【0015】
スイッチコネクタは、ソフトウェアスイッチを含み得る。
【0016】
署名済みのトランザクションは、署名済みのブロックチェーントランザクションをブロックチェーンデバイスに送信する前に、少なくとも1つの他のパーティによって署名され得る。
【0017】
他のパーティは、システムプロバイダを含み得る。
【0018】
システムプロバイダサーバは、少なくとも1つのサービスプロバイダデバイスと通信し得る。
【0019】
デジタルアセットの安全なブロックチェーントランザクションを実行するための端末が本明細書で提供される。端末は、未署名のブロックチェーントランザクションを生成するためのプロセッサを含む。端末は、未署名のブロックチェーントランザクションをコールドストレージデバイスに送信するためのコールドストレージ通信ポートを含む。コールドストレージデバイスは、未署名のブロックチェーントランザクションに署名するための秘密鍵を格納する。端末は、コールドストレージデバイスから署名済みのブロックチェーントランザクションを受信する。端末は、署名済みのブロックチェーントランザクションをシステムプロバイダサーバに送信するためのネットワーク通信ポートまたはメカニズムを含む。システムプロバイダサーバは、複数のブロックチェーンデバイスと通信する。端末は、秘密鍵がネットワークに公開されないように、コールドストレージ通信ポートまたはネットワーク通信ポートのいずれかを選択的に無効にするためのスイッチコネクタを含む。
【0020】
スイッチコネクタは、ハードウェアスイッチを含み得る。
【0021】
スイッチコネクタは、ソフトウェアスイッチを含み得る。
【0022】
端末は、システムプロバイダサーバとのインバウンドおよびアウトバウンド通信を制限するようにさらに構成され得る。
【0023】
ネットワークを介してデジタルアセットの安全なブロックチェーントランザクションを実行するためのコールドストレージデバイスが本明細書で提供される。コールドストレージデバイスは、コールドウォレット(cold wallet)を格納するメモリを含む。コールドウォレットは、未署名のブロックチェーントランザクションに署名するための秘密鍵を含む。コールドストレージデバイスは、端末がネットワークから切断されたときに端末から未署名のブロックチェーントランザクションを受信するための通信インターフェースを含む。端末がネットワークから切断されると、通信インターフェースは署名済みのブロックチェーントランザクションを端末に送信する。コールドストレージデバイスは、他のプロセッサへの接続を処理することができるプロセッサを含む。プロセッサは、秘密鍵を使用して未署名のブロックチェーントランザクションに署名することにより、署名済みのブロックチェーントランザクションを生成するように構成されている。
【0024】
通信インターフェースは、暗号化されたブルートゥース(登録商標)、近距離無線通信、Wi-Fi(登録商標)、光通信、有線通信、および熱放射(thermal emission)からなるグループから選択される少なくとも1つの通信メカニズムを使用することができる。
【0025】
プロセッサは、コールドストレージウォレットを生成するようにさらに構成され得る。
【0026】
プロセッサは、コールドストレージウォレットの生成時にさらに構成され得る。
【0027】
コールドストレージウォレットは、階層的な決定論的ウォレット(hierarchical deterministic wallet)であり得る。
【0028】
コールドウォレットは、マルチ署名ウォレット(multi-signature wallet)であり得る。
【0029】
マルチ署名ウォレットは、少なくとも2つのパーティの署名を必要とし得る。
【0030】
通信ネットワークを介してデジタルアセットの安全なブロックチェーントランザクションを実行する方法が本明細書で提供される。この方法は、端末を使用して未署名のブロックチェーントランザクションを生成するステップを含み、端末はオンラインモードおよびオフラインモードを有する。この方法は、オフラインモードで、端末からコールドストレージデバイスに未署名のブロックチェーントランザクションを送信することを含み、コールドストレージデバイスは、未署名のブロックチェーントランザクションに署名するための秘密鍵を格納する。この方法は、秘密鍵を使用してコールドストレージデバイス上の未署名のブロックチェーントランザクションに署名することを含む。この方法は、署名済みのブロックチェーントランザクションをコールドストレージデバイスから端末に送信することを含む。この方法は、端末をオフラインモードからオンラインモードに切り替えることを含む。この方法は、オンラインモードで、署名済みのブロックチェーントランザクションを端末から通信ネットワークを介してシステムプロバイダサーバに送信することを含む。システムプロバイダサーバは、複数のブロックチェーンコンピュータと通信する。
【0031】
この方法は、マルチ署名認証プロセスに従って、送信された署名済みのトランザクションに第2の秘密鍵で署名することを含み得る。
【0032】
送信された署名済みトランザクションへの署名は、システムプロバイダサーバで実行され得る。
【0033】
切り替えは、スイッチコネクタを使用して実行され得る。
【0034】
他の態様および特徴は、いくつかの例示的な実施形態の以下の説明を検討すると、当業者には明らかになるであろう。
【0035】
本明細書に含まれる図面は、本明細書の物品(article)、方法、および装置の様々な例を説明するためのものである。
【図面の簡単な説明】
【0036】
図1】一実施形態に係る、デジタルアセットの安全なブロックチェーントランザクションを実行するためのシステムの概略図である。
図2図1のシステムの端末のブロック図である。
図3A】一実施形態に係る、ブロックチェーンアセットの安全なトランザクションを実行するためのシステムの概略図である。
図3B】オフラインモードでの図3Aのシステムの概略図である。
図3C】オンラインモードでの図3Aのシステムを示す概略図である。
図4】安全なブロックチェーントランザクションを実行するためのコンピュータシステムのブロック図である。
図5】一実施形態に係る、デジタルアセットの安全なブロックチェーントランザクションを実行するためのシステムのセットアップ方法のフローチャートである。
図6】一実施形態に係る、デジタルアセットの安全なトランザクションを実行するためのシステムで使用するための階層的な決定論的ウォレットの導出の図である。
図7】一実施形態に係る、デジタルアセットの安全なブロックチェーントランザクションを実行するための方法のフローチャートである。
図8】一実施形態に係る、安全なブロックチェーントランザクションを実行するためのシステムのグラフィカルインターフェースを示す。
図9】一実施形態に係る、安全なブロックチェーントランザクションを実行するためのシステムのグラフィカルインターフェースを示す。
図10】一実施形態に係る、安全なブロックチェーントランザクションを実行するためのシステムのグラフィカルインターフェースを示す。
図11】一実施形態に係る、安全なブロックチェーントランザクションを実行するためのシステムのグラフィカルインターフェースである。
図12】一実施形態に係る、安全なブロックチェーントランザクションを実行するためのシステムのグラフィカルインターフェースである。
図13】一実施形態に係る、安全なブロックチェーントランザクションを実行するためのシステムのグラフィカルインターフェースである。
図14】既存の方法に従って安全なブロックチェーントランザクションを行うためのシステムのブロック図である。
図15】一実施形態に係る、安全なブロックチェーントランザクションを実行するためのサブネットワークシステムのブロック図である。
図16】別の実施形態による、安全なブロックチェーントランザクションを実行するためのサブネットワークシステムのブロック図である。
図17】一実施形態に係る、図15および図16のサブネットワークシステムによる操作を管理するためのデフォルトの動作の変形例のブロック図である。
図18】一実施形態に係る、仲介(brokerage)を含む、図15および16のサブネットワークシステムによる操作を管理するためのデフォルトの動作の別の変形例のブロック図である。
【発明を実施するための形態】
【0037】
様々な装置またはプロセスを以下に説明して、特許請求された各実施形態の例を提供する。以下に記載される実施形態は、請求される実施形態を限定するものではなく、特許請求される実施形態は、以下に記載されるものとは異なるプロセスまたは装置をカバーすることができる。特許請求される実施形態は、以下に記載される任意の1つの装置またはプロセスの全ての特徴を有する装置またはプロセス、または以下に記載される複数または全ての装置に共通の特徴に限定されない。
【0038】
本明細書に記載の1つまたは複数のシステムは、プログラム可能なコンピュータ上で実行されるコンピュータプログラムにおいて実装され得る。各々は、少なくとも1つのプロセッサ、データ記憶システム(揮発性および不揮発性メモリおよび/または記憶要素を含む)、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスを備える。例えば、これらに限定されないが、プログラム可能なコンピュータは、プログラム可能な論理ユニット、メインフレームコンピュータ、サーバ、およびパーソナルコンピュータ、クラウドベースのプログラムまたはシステム、ラップトップ、パーソナルデータアシスタンス、携帯電話、スマートフォン、タブレットデバイス、スマートカード、バンキングカードまたは識別カードであり得る。
【0039】
各プログラムは、コンピュータシステムと通信するために、高レベルの手続き型またはオブジェクト指向のプログラミングおよび/またはスクリプト言語で実装されることが好ましい。しかし、必要に応じて、プログラムはアセンブリ言語または機械語で実装され得る。いずれの場合も、言語はコンパイルされた言語またはインタープリタ型言語であり得る。そのような各コンピュータプログラムは、好ましくは、記憶媒体またはデバイスが本明細書に記載の手順を実行するためにコンピュータによって読み取られるときにコンピュータを構成および操作するための汎用または特殊目的のプログラム可能なコンピュータによって読み取り可能な記憶媒体またはデバイスに格納される。
【0040】
互いに通信するいくつかの構成要素を有する実施形態の説明は、そのような全ての構成要素が必要とされることを意味するものではない。それどころか、本発明の多種多様な可能な実施形態を説明するために、様々な任意の構成要素が説明されている。
【0041】
さらに、プロセスステップ、方法ステップ、アルゴリズムなどは、(開示および/または特許請求の範囲で)順次順序で説明され得るが、そのようなプロセス、方法、およびアルゴリズムは、交互の順序で機能するように構成され得る。言い換えれば、記述され得るステップの順序または順序は、必ずしもステップがその順序で実行されるという要件を示すわけではない。本明細書に記載のプロセスのステップは、実用的である任意の順序で実行することができる。さらに、いくつかのステップを同時に実行することができる。
【0042】
単一のデバイスまたは物品が本明細書に記載される場合、単一のデバイス/物品の代わりに(それらが協力するかどうかにかかわらず)複数のデバイス/物品が使用され得ることは容易に明らかであろう。同様に、複数のデバイスまたは物品が本明細書に記載されている場合(それらが協力するかどうかにかかわらず)、複数のデバイスまたは物品の代わりに単一のデバイス/物品を使用できることは容易に明らかであろう。
【0043】
以下は、概してブロックチェーン技術に関連し、より詳細には、様々な外部ポリシー及び規制をブロックチェーン環境で共存できるようにしながら、安全で準拠したブロックチェーントランザクションを行うためのコンピュータシステム、方法、およびデバイスに関する。本開示はまた、安全で準拠したブロックチェーントランザクションを行うためのコンピュータシステム、方法、およびデバイスのためのサブネットワークに関する。
【0044】
以下に、安全なブロックチェーントランザクション/操作を実行するためのシステムについて説明する。ブロックチェーンオペレーションは、ブロックチェーン技術で管理されているアセットへのアクセス、トレード、交換、送信、受信、更新、および使用を含み得る。たとえば、このシステムを使用して、ブロックチェーンアセットのトランザクション、転送、および管理を行うことができる。
【0045】
ブロックチェーン技術で管理されるアセット(asset)は、本開示全体を通して「ブロックチェーンアセット」、「アセット」、または「デジタルアセット」と呼ばれ、ブロックチェーン技術を使用して管理または取引できる任意のアセットを含むと理解される。
【0046】
ブロックチェーンアセットは、暗号通貨(Bitcoin(登録商標)など)、会社の株式または他のタイプのプロジェクトの共有、金融商品(債券、負債証券、オプション、先物、その他のデリバティブなど)、様々なタイプの格納データ(文書、記録など)、またはスマート契約的合意(「スマートコントラクト」)への任意の関心を含み得る。ブロックチェーンアセットは、デジタルアセットであり得る。ブロックチェーンアセットは、通常のトークン化なしでブロックチェーンされた有形のアセットであり得る。ブロックチェーンアセットは、ブロックチェーン技術を使用して取引されることを特徴としている。つまり、様々なコンピュータによって実行される分散型台帳を使用して、分散型の方法でトランザクションの整合性を個別にチェックする。
【0047】
ブロックチェーンアセットは、暗号通貨を含むがこれに限定されないデジタルアセットの一種であり、特定のプロジェクトまたは会社の出資金を表す場合がある。ブロックチェーンアセットは、通常のトークン化なしでブロックチェーンされた有形のアセットであり得る。その他は、通貨(ビットコイン(登録商標)など)としてのみ意図されており、特定の組織の株式を表すものではない。しかし、従来のアセットとは異なり、ブロックチェーンアセットはデジタルであり、特定のアドレスの暗号化が許可された署名者のみが所有し、いつでも他のアドレスにすぐに転送できる。
【0048】
ブロックチェーンアセットは、ビットコイン(登録商標)のようなネイティブのデジタルアセット、またはデジタルゴールド、株式またはタイトル、文書または記録、ログ、ジャーナル、さらにはプロセスまたはサプライチェーンなどのデジタル化された従来のアセットを含み得る。所有権、使用許可、責任、または取られた措置の記録は、公的または許可された分散型台帳ネットワーク内に記録される。
【0049】
暗号通貨は、暗号トークンと呼ばれるサブセットを含み得る。トークンは、アセットまたはユーティリティを表し得る。暗号トークンは、特定のブロックチェーン上の特定の数のビットコインに等しい1つのそのようなトークンのように、他の暗号通貨を表し得る。暗号トークンは、ブロックチェーンの様々な参加者間でトレードおよび譲渡可能である。このような暗号トークンは、多くの場合、ユーザが独自のトークンを作成できるようにする標準テンプレート(EthereumネットワークやERC-20トークンなど)を使用して作成されるブロックチェーン上のトランザクションユニットとして機能する。このようなブロックチェーンは、スマートコントラクトまたは分散型アプリケーションの概念に基づいて機能する。プログラム可能な自己実行コードは、ブロックチェーンで発生する様々なトランザクションを処理および管理するために使用される。暗号通貨及びアルトコイン(altcoin)は、専用のブロックチェーンを有する特定の仮想通貨であり、主にデジタル決済の媒体として使用される。暗号トークンは、分散型アプリ及びスマートコントラクトの作成及び実行の媒体として機能するブロックチェーン上で動作し、トークンはトランザクションを容易にするために使用される。
【0050】
ブロックチェーンアセットは、文書、証明書、記録、ライセンス、学位、または任意のデータである。ブロックチェーン文書は、表示、送信、共有、または変更するための許可を必要とする。許可は、信頼できるグループ内の許可を介して、または文書を特定のアドレス(受信者)に送信することによって認められ得る。その後、文書の表示、読み取り、共有などの権利が得られる。また、ブロックチェーン文書自体は、ブロックチェーンに新しいバージョンを作成せずに変更することはできない。通常、変更された文書のハッシュを添付して、整合性が変更されたことを証明する。
【0051】
本開示のシステムは、ブロックチェーンオペレーションセキュリティ(「OpSec」)のベストプラクティスを実装および実施する一方で、現在のブロックチェーンユーザによって使用される典型的なコールドストレージ方法と比較して、ユーザにとってより簡単かつ便利にすることができる。本開示のシステム、方法、およびデバイスは、使いやすさ(アセットへのアクセスの容易さを含む)およびセキュリティを改善し、ブロックチェーン技術を、個人および企業を含む、機関および暗号に精通していない公衆にとってよりアクセスしやすくする一方で、現在のブロックチェーン愛好家によって取られる一般的なセキュリティ対策を上回る。
【0052】
一般に、本開示のシステムおよび方法では、ブロックチェーントランザクションが端末上で開始される。端末は、システムプロバイダサーバにブロックチェーントランザクションの作成を要求する。要求は、TLS、IPsec、ポイントツーポイントトンネリングなどの安全な通信チャネルを介して端末からシステムプロバイダサーバに送信される。次に、システムプロバイダ[サーバ]は、並行して、トランザクションを要求元の端末、サービスプロバイダサーバ、およびシステムプロバイダのコールドストレージに送信する。次に、適切な検証を行い、ビジネスロジック及び/又はルールを適用するための追加のステップが、端末上で行われることができる。関係する全てのエンティティのコールドストレージデバイスまたはこれら全ての構成要素は、コールドストレージを許可してそれに署名することにより、トランザクションを最終的に承認する。
【0053】
いくつかの実施形態では、これは、そのような振る舞いが望まれる場合、仲介的な役割を果たすサービスプロバイダによって抽象化され得る。たとえば、エンドユーザは、端末を介してサービスプロバイダサーバに接続し、サービスプロバイダが提供するサービス/製品/ソリューションとより適切に統合することができる。次に、サービスプロバイダは、クエリを介して情報を中継するか、システムプロバイダに要求を送信する(つまり、提供されたAPI、独自のプロトコル、リモートプロシージャコール、またはその他のメカニズムを使用する)。このプロセスも、安全な通信チャネルを介して実行される。
【0054】
ターミナルとコールドストレージ間での未署名のトランザクションと署名済みのトランザクションの受け渡しを含むトランザクション署名プロセスは、通常、このプロセスに従う。
【0055】
一実施形態では、トランザクションは、コールドストレージによって端末から引き出され、制御が最もデータセンシティブなデバイスおよびその所有者(秘密鍵を含むコールドストレージ)内にあることを保証する。
【0056】
別の実施形態では、端末は、未署名のトランザクションを一時的にユニキャスト、マルチキャスト、またはブロードキャストし、コールドストレージデバイスがユーザの指示に従ってそれをキャプチャできるようにする。交換は、ハードウェアまたは有線接続を介して、ワイヤレスで行うことができる。これは、発光または光データ転送、QR/バーコードスキャン、IR送信、無線周波数、電磁放射などの技術を含むが、これらに限定されない。
【0057】
エンタープライズ環境内またはサービスプロバイダ施設またはシステムプロバイダ施設での端末とコールドストレージとの間の通信は、物理的に接続されていない技術を使用して、未署名のトランザクション(インバウンドデータ転送)を渡し、部分的に署名済みのトランザクションの交換(アウトバウンドデータ転送)のために安全性の高い単方向データダイオードシステムを使用できる。これにより、潜在的なデータ漏えいやその他の不正な目的でのこれらの技術の使用が有利に制限されるだけでなく、健全で安全な、物理的に証明された一方向の転送が実装され、厳格なデータ損失防止ポリシー及びプロトコルの実装が可能になる。所望であればおよび/または必要であれば、人間の介入がこれらの環境に追加され得る。
【0058】
未署名のトランザクションがコールドストレージに送信されると、トランザクションはデバイス上でレビューされ、トランザクションの有効性が確認され、データ入力の間違い及び暗号化されて承認される前にトランザクションを操作しようとする任意の悪意のある試みが軽減される。
【0059】
トランザクションの詳細に満足した場合、エンドユーザデバイスはエンドユーザの識別を認証することにより、エンドユーザの秘密鍵を復号してロックを解除する。これは、PIN、パスフレーズ、生体認証データ、またはその他の準拠した認証メカニズムの任意の組み合わせを含み得る。これにより、秘密鍵が必要に応じてトランザクションに署名し、鍵が不要になるとすぐに再度自己暗号化し得る。
【0060】
署名済みのトランザクションは、コールドストレージデバイスから端末に送り返される。本開示のシステムを使用して、トランザクションに署名するための秘密鍵は、隔離された安全な暗号化モジュール内のコールドストレージデバイス上でのみ復号され、他のものとは接触しない。これは、システムのセキュリティの第1の層である。
【0061】
本開示は、各パーティによる署名の承認が一連のビジネスロジック、コンプライアンス標準、プロトコル、およびルールに基づく、安全なブロックチェーントランザクションのための方法を提供する。
【0062】
本開示は、一方のパーティが一方的に引き継ぐ可能性なしでシード(seed)の秘密の共有をマルチ署名アカウントに関与する様々なパーティに配布することによって、エンドユーザウォレットの損失、盗難、破壊のリスクを軽減することができる安全なブロックチェーントランザクションの方法を提供する。この方法を使用すると、ウォレットは効果的に回収あれ、新しいデバイスに転送され得る。
【0063】
本開示は、ブロックチェーン上で確認数が少ないトランザクションを受け入れるリスクを低減し、さらなる使用のための時間を効果的に短縮し、ブロックチェーンネットワーク上で受け入れられなかった場合にトランザクションを再処理する能力を備えた、安全なブロックチェーントランザクションの方法を提供する。
【0064】
本開示は、51%の攻撃の影響を低減し、サブネットワーク間でブロックチェーンの継続的な使用を可能にし、51%の攻撃が停止されるとトランザクションを調整することができる安全なブロックチェーントランザクションのための方法を提供する。
【0065】
ここで図1を参照すると、一実施形態に係るシステム10を示すブロック図が示される。システム10は、ネットワーク20を介してシステムプロバイダインフラストラクチャ14および/またはサービスプロバイダインフラストラクチャ16と通信する端末12を含む。端末12はまた、複数のコールドストレージデバイス18と通信することができる。システムプロバイダインフラストラクチャ14は、ネットワーク20(インターネットなど)または任意の他のネットワークを介して複数のブロックチェーンインフラストラクチャ22と通信する。ネットワーク20は、有線または無線ネットワークであり得る。端末12は、エンドユーザを認証し、エンドユーザが安全なブロックチェーントランザクションを開始できるようにするために特別に設計された専用のマシンであり得る。この目的のために、端末12は、システムプロバイダとシステムプロバイダのコールドストレージとの間のインターフェースとしての役割を果たす。
【0066】
端末12は、関係するパーティ間のマルチプレクサ、ルータ、および/またはディストリビュータとして機能することができる。
【0067】
端末12、システムプロバイダインフラストラクチャ14、サービスプロバイダインフラストラクチャ16、コールドストレージデバイス18およびブロックチェーンインフラストラクチャ22は、サーバコンピュータ、デスクトップコンピュータ、ノートブックコンピュータ、タブレット、PDA、スマートフォン、スマートカード、バンクカードまたは別のコンピューティングデバイスであり得る。デバイス12、14、16、18、22は、インターネットなどのネットワークへの有線または無線接続などのネットワーク20との接続を含み得る。場合によっては、ネットワーク20は、他のタイプのコンピュータまたは電気通信ネットワークを含み得る。デバイス12、14、16、18、22は、メモリ、二次記憶装置、プロセッサ、入力デバイス、表示デバイス、および出力デバイスのうちの1つまたは複数を含み得る。メモリは、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、または同様のタイプのメモリを含み得る。また、メモリは、プロセッサによる実行のために1つまたは複数のアプリケーションを格納し得る。アプリケーションは、以下に説明する機能の処理を実行するためのコンピュータ実行可能命令を含むソフトウェアモジュールに対応し得る。二次記憶装置は、ハードディスクドライブ、ソリッドステートドライブ、フロッピー(登録商標)ディスクドライブ、CDドライブ、DVDドライブ、Blu-ray(登録商標)ドライブ、ROM、または他のタイプの不揮発性データストレージを含み得る。プロセッサは、アプリケーション、コンピュータで読み取り可能な命令、またはプログラムを実行し得る。アプリケーション、コンピュータ可読命令またはプログラムは、メモリ、二次記憶装置に格納され得るか、またはインターネットまたは他のネットワーク20から受信され得る。入力デバイスは、デバイス12、14、16、18、22に情報を入力するための任意のデバイスを含み得る。例えば、入力デバイスは、キーボード、キーパッド、カーソル制御デバイス、タッチスクリーン、カメラ、光学センサーバイオメトリクスリーダーまたはセンサー、熱センサー、無線受信機、またはマイクロフォンであり得る。表示装置は、視覚情報を提示するための任意のタイプの装置を含み得る。例えば、ディスプレイ装置は、コンピュータモニター、フラットスクリーンディスプレイ、紙の薄いディスプレイ、プロジェクターまたはディスプレイパネルであり得る。出力デバイスは、例えばプリンタなど、情報のハードコピーを提示するための任意のタイプのデバイスを含み得る。出力デバイスはまた、例えば、スピーカーなどの他のタイプの出力デバイスを含み得る。場合によっては、デバイス12、14、16、18、22は、プロセッサ、アプリケーション、ソフトウェアモジュール、第2のストレージデバイス、ネットワーク接続、入力デバイス、出力デバイス、およびディスプレイデバイスのうちの任意の1つまたは複数の複数を含み得る。
【0068】
デバイス12、14、16、18、22は様々な構成要素で説明されているが、当業者は、装置12、14、16、18、22が、場合によっては、より少ない、追加の、または異なる構成要素を含み得ることを理解するであろう。さらに、デバイス12、14、16、18、22の実装の態様は、メモリに格納されていると説明することができるが、当技術分野の当業者は、これらの態様がハードディスク、フロッピー(登録商標)ディスク、CD、またはDVDを含む二次ストレージデバイスなどの他のタイプのコンピュータプログラム製品またはコンピュータ可読媒体;インターネットまたは他のネットワークからの搬送波;光源、マイクロ波、熱放射、電磁放射、またはその他の形式のRAMまたはROM上で記憶され得ることを理解するであろう。コンピュータ可読媒体は、特定の方法を実行するためにデバイス12、14、16、18、22および/またはプロセッサを制御するための命令を含み得る。
【0069】
デバイス12、14、16、18、22のいずれかについて、特定のデバイスによって実行されるアクションまたは機能は、分解され、および/またはいくつかのデバイスに分散され得る。例えば、端末12は、外向きの機械、内向きの機械、および外向きの機械と内向きの機械との間に位置する処理を実行するための機械を含み得る。
【0070】
以下の説明では、端末12、システムプロバイダインフラストラクチャ14、サービスプロバイダインフラストラクチャ16、コールドストレージデバイス18、およびブロックチェーンインフラストラクチャ22などのデバイスが、特定の動作を実行することについて説明される。これらのデバイスのいずれか1つまたは複数は、自動的に、またはそのデバイスのユーザによる対話に応答して、行為を実行することができることが理解されよう。すなわち、デバイスのユーザは、1つまたは複数の入力デバイス(例えば、タッチスクリーン、マウス、またはボタン)を操作して、デバイスに説明された動作を実行させることができる。多くの場合、この側面は以下では説明されない場合があるが、理解される。
【0071】
一例として、デバイス12、14、16、18、22が端末12に情報を送信することができることを以下に説明する。例えば、システムプロバイダサーバ14を使用するシステムプロバイダユーザは、1つまたは複数の入力デバイス(例えば、マウスおよびキーボード)を操作して、システムプロバイダサーバ14のディスプレイに表示されるユーザインターフェースと対話することができる。一般に、デバイスは、ネットワーク20から(例えば、ウェブページの形で)ユーザインターフェースを受信することができる。代替的には、またはさらに、ユーザインターフェースは、デバイス(例えば、ウェブページのキャッシュ、ローカルウェブサーバ、モバイルまたはデスクトップアプリケーション)にローカルに格納され得る。
【0072】
端末12は、システムプロバイダインフラストラクチャ14、サービスプロバイダインフラストラクチャ16、コールドストレージデバイス18、およびブロックチェーンインフラストラクチャ22のそれぞれとの間で複数の情報を送受信するように構成され得る。一般に、情報は、少なくとも、システムプロバイダ、サービスプロバイダ、コールドストレージ、またはブロックチェーンインフラストラクチャコンピュータを識別するための識別子を含み得る。例えば、情報は、ユーザ名、電子メールアドレス、パスワード、ソーシャルメディアハンドル、モバイル、ESN、IMEI、MEID、トランザクションID、アカウント識別子、ハードウェアID、公開鍵、または他のもののうちの1つまたは複数を含み得る。
【0073】
情報の受信に応答して、端末12は、情報をストレージデータベースに格納することができる。ストレージは、デバイス12、14、16、18、22の二次ストレージに対応し得る。一般に、ストレージデータベースは、ハードディスクドライブ、ソリッドステートドライブ、メモリカード、またはディスク(例えば、CD、DVD、またはBlu-ray(登録商標)など)などの任意の適切なストレージデバイスであり得る。また、ストレージデータベースは、端末12にローカルに接続され得る。場合によっては、ストレージデータベースは端末12から離れた場所にあり、たとえばネットワークを介して端末12にアクセス可能である。場合によっては、ストレージデータベースは、ネットワーク化されたストレージロケーションまたはクラウドプロバイダに配置された1つ又は複数のストレージデバイスを含むことがある。
【0074】
システムプロバイダインフラストラクチャ14は、システムプロバイダアカウント、識別子、証明書、公開鍵、秘密鍵に関連付けられ得る。同様に、サービスプロバイダインフラストラクチャ16は、サービスプロバイダアカウント、識別子、証明書、公開鍵、秘密鍵に関連付けられ得る。コールドストレージデバイス18は、コールドストレージアカウント、ハードウェアIDの組み合わせ、一意の識別子、証明書に関連付けられ得る。公開鍵、秘密鍵、およびブロックチェーンインフラストラクチャ22は、ブロックチェーンコンピュータアカウント、識別子、証明書、公開鍵、秘密鍵に関連付けられ得る。デバイスをアカウントに関連付けるための適切なメカニズムが明確に企図されている。場合によっては、デバイスは、(端末12に対して検証および認証された資格情報のセット(例えば、ハードウェアIDまたは一意の識別子、クッキー、ログイン、コード入力、多要素認証、生体認証入力、遠隔測定、証明書、公開鍵、秘密鍵、PIN、またはパスワードなど)を使用する)ペアリングメカニズムによってアカウントに関連付けられ得る。端末12は、資格を検証し得る(例えば、受信したパスワードがアカウントに関連付けられたパスワードと一致することを決定する)。デバイスがアカウントに関連付けられている場合、端末12は、そのデバイスがそのアカウントに関連付けられることによってさらなる行為の検討を強化することができる。同様に、端末はサービスプロバイダ及びシステムプロバイダのインフラストラクチャに関連付けられ、他のデバイスのペアリング情報を中継して、このアカウントに関連付けられるそのデバイスによるさらなる行為の検討を固めることができる。
【0075】
ここで図2を参照すると、一実施形態に係る、モバイルデバイスまたは携帯型電子デバイス200の構成要素の簡略化されたブロック図が示される。他の実施形態では、デバイス200は、非ポータブルデバイス(例えば、デスクトップ、サーバコンピュータなど)であり得る。携帯型電子デバイス200は、携帯型電子デバイス200の動作を制御するプロセッサ1020などの複数の構成要素を含む。データ通信、音声通信、またはその両方を含む通信機能は、通信サブシステム1040を介して実行され得る。携帯型電子デバイス200によって受信されたデータは、デコーダ1060によって解凍および復号され得る。通信サブシステム1040は、無線ネットワーク1520からメッセージを受信し、無線ネットワーク1520にメッセージを送信することができる。
【0076】
ワイヤレスネットワーク1520は、これらに限定されないが、データ中心の無線ネットワーク、オーディオ中心の無線ネットワーク、ビデオ中心の無線ネットワーク、光データ転送、およびオーディオ/ビデオおよびデータ通信をサポートするデュアルモードネットワークを含む任意のタイプの無線ネットワークであり得る。
【0077】
携帯型電子デバイス200は、バッテリー式のデバイスであり得る。示されるように、携帯型電子デバイス200は、1つまたは複数の充電式電池1440を受け取るためのバッテリーインターフェース1420を含む。一実施形態では、デバイス200は、近距離無線通信(NFC)を介した電力伝送を含み得る。
【0078】
プロセッサ1020はまた、ランダムアクセスメモリ(RAM)108、フラッシュメモリ1110、ディスプレイ1120(例えば、一緒にタッチセンシティブディスプレイ1180を構成する電子コントローラ1160に接続されたタッチセンシティブオーバーレイ(touch-sensitive overlay)1140を有する)、アクチュエータアセンブリ1210、1つまたは複数のオプションの力学センサー1220、補助入力/出力(I/O)サブシステム1240、データポート1260、スピーカー1280、マイクロフォン1310、短距離通信システム1320およびその他デバイスサブシステム1340などの追加のサブシステムと対話する。
【0079】
いくつかの実施形態では、グラフィカルユーザインターフェースとのユーザ対話は、タッチセンシティブオーバーレイ1140を介して実行され得る。プロセッサ1020は、電子コントローラ1160を介してタッチセンシティブオーバーレイ1140と対話し得る。プロセッサ1020によって生成された携帯型電子デバイス上に表示またはレンダリングされ得るテキスト、文字、記号、画像、アイコン、および他のアイテムなどの情報は、タッチセンシティブディスプレイ1180上に表示され得る。
【0080】
プロセッサ1020はまた、図2に示されるように、加速度計1360と対話し得る。加速度計1360は、重力または重力によって誘発される反力の方向を検出するために利用され得る。
【0081】
本実施形態によるネットワークアクセスのための加入者を識別するために、携帯型電子デバイス200は、ネットワーク(無線ネットワーク1520など)との通信のためにSIM/RUIMインターフェース1450に挿入された加入者識別モジュールまたは取り外し可能ユーザ識別モジュール(SIM/RUIM)カード1380を使用することができる。代替的には、ユーザ識別情報は、フラッシュメモリ1110にプログラムされるか、または他の技術を使用して実行され得る。
【0082】
携帯型電子デバイス200はまた、プロセッサ1020によって実行され、フラッシュメモリ1110などの永続データ記憶装置に記憶され得るオペレーティングシステム1460およびソフトウェアコンポーネント1480を含み得る。追加のアプリケーションは、無線ネットワーク1520、補助I/Oサブシステム1240、データポート1260、短距離通信サブシステム1320、または任意の他の適切なデバイスサブシステム1340を介して携帯型電子デバイス200にロードされ得る。
【0083】
使用中、テキストメッセージ、電子メールメッセージ、ウェブページのダウンロード、または他のデータなどの受信信号は、通信サブシステム1040によって処理され、プロセッサ1020に入力され得る。次に、プロセッサ1020は、受信信号を処理して、ディスプレイ1120または代わりに補助I/Oサブシステム1240に出力する。加入者はまた、例えば、通信サブシステム1040を介して無線ネットワーク1520を介して送信され得る電子メールメッセージなどのデータ項目を構成し得る。
【0084】
音声通信の場合、携帯型電子デバイス200の全体的な動作は同様であり得る。スピーカー180は、電気信号から変換された可聴情報を出力することができ、マイクロフォン1310は、処理のために可聴情報を電気信号に変換することができる。
【0085】
ここで図3を参照すると、一実施形態に係る、デジタルアセットの安全なブロックチェーントランザクションのためのシステム300が示される。システム300は、機密情報が外部に公開されるのを防ぐための様々な手段を実施することによって、安全なブロックチェーントランザクションを提供する。システム300は、複数のモードをサポートするように構成され、モードは、システム300およびその構成要素によって実行され得る限られた数のアクションに対応する。モードを切り替えることにより、システム300は機密情報にセキュリティを提供する。
【0086】
システム300は、システム300によって接続された複数のエンティティを含む。エンティティは信頼グループを形成する。信頼グループは、ユーザによる安全なブロックチェーントランザクションの作成に貢献する精査された参加者のグループである。信頼グループ内のエンティティの数は、システム300の構成に応じて増減し得る。
【0087】
エンティティは、エンドユーザとシステムプロバイダとを含む。システムプロバイダは、ネットワークオペレータまたはサブネットワークオペレータと呼ばれることもある。システムプロバイダは、安全なブロックチェーントランザクションを実行するためのサブネットワークを提供する。いくつかの実施形態では、エンティティはまた、サードパーティのサービスプロバイダを含む。
【0088】
システム300の他の変形は、複数のシステムプロバイダ、エンドユーザ、および/またはサービスプロバイダを含み得る。特定の実施形態では、システムプロバイダ及びサービスプロバイダは、独立したサービスプロバイダによるサービス提供の欠如の役割を果たすために、別々のアイデンティティで、別々のインフラストラクチャから動作する同じエンティティであり得る。
【0089】
エンドユーザは、特定のブロックチェーン(または複数のブロックチェーン)のシステムプロバイダサブネットワーク上で対話しているエンティティ(個人など)である。
【0090】
システムプロバイダは、サブネットワークシステム内の全てのアカウントに共通のエンティティである。システムプロバイダは、トランザクションを制限して、トランザクションがシステムオペレータサブネットワークの制限内にとどまるようにすると同時に、サービスプロバイダがエンドユーザに他のサービスプロバイダまたはこれらのサービスプロバイダのエンドユーザと対話できるようにすることができる。システムプロバイダはまた、エンドユーザの正確な詳細及び個人情報を知る必要なしに、サブネットワークで発生する全ての操作の監視及び可視性を提供し得る。システムプロバイダはまた、厳格な法的規定の下で、システムプロバイダとサービスプロバイダとの間のエンドユーザのウォレットの緊急復旧においても役割を果たし得る。
【0091】
サービスプロバイダは、1つ又は複数のブロックチェーンでサービスを提供することをいとわないエンティティ(企業、組織など)である。サービスプロバイダは、エンドユーザ(クライアント、従業員、その他の組織など)との間に確立された関係を有する。たとえば、銀行は、クライアントの銀行口座に関連付けられたシステムプロバイダのビットコインウォレットを提供し得る。別の例では、サービスプロバイダは、政府機関、病院、ブロックチェーン上の医療記録を市民/患者に提供する診療所であり得る。サービスプロバイダは、すでにこれを持っているため、顧客確認(Know-your-customer)部分を提供し、エンドユーザの個人情報と個人情報を保護できる。サービスプロバイダは、エンドユーザとサービスプロバイダ(例えば、令状、意志の証明、裁判所命令、エンドユーザのコールドストレージおよびバックアップの紛失または損傷、その他の方法で身元の証明を確認できる場合など)との間で行われるか、厳格な法的規定の下でシステムプロバイダとの間で行われるかにかかわらず、アカウントの回復(サービスに関連付けられたアカウントに関して)に関与する/関与し得る。
【0092】
システム300は、端末320、コールドストレージデバイス324、およびシステムプロバイダサーバ/インフラストラクチャ328を含む。システム300はまた、サービスプロバイダサーバ/インフラストラクチャ(図示されていない)を含み得る。一実施形態では、サービスプロバイダサーバは、端末320および仲介者として機能するシステムプロバイダサーバ328と通信する。別の実施形態では、サービスプロバイダおよび端末320は両方とも、システムプロバイダ328と排他的に通信する。
【0093】
端末320は、通信ネットワーク336を介してシステムプロバイダサーバ328に接続されている。通信ネットワーク336は、IPまたはHTSPなどの様々なプロトコルを介して、Wi-Fi(登録商標)、ブルートゥース(登録商標)、近距離無線通信、光データ転送、熱放射などを使用し得る。一実施形態では、通信ネットワーク336はインターネットである。別の実施形態では、通信ネットワーク336は、IP以外のプロトコルを使用するネットワーク、および/または別のインフラストラクチャを使用してリモートコンピュータと通信するネットワークである。別の実施形態では、通信ネットワーク336は有線ネットワークである。
【0094】
コールドストレージデバイス324は、通信インターフェースを含む。通信インターフェースは、端末320がネットワーク336から切断されたときに、端末320から未署名のブロックチェーントランザクションを受信するように構成され得る。通信インターフェースは、端末320がネットワーク336から切断されたときに、署名済みのブロックチェーントランザクションを端末320に送信するように構成され得る。通信インターフェースは、ブルートゥース(登録商標)、暗号化ブルートゥース(登録商標)、光通信、Wi-Fi(登録商標)、有線通信、近距離無線通信、熱放射などの任意の適切な通信メカニズムを使用し得る。
【0095】
端末320は、ユーザが使用するためのクライアントコンピューティングデバイスである。端末は、プロセッサおよびメモリ(例えば、デバイス200のプロセッサ1020およびメモリ1110)を含む。端末320は、卓上コンピュータ、ラップトップコンピュータ、スマートフォンなどのモバイルコンピュータ、または情報を格納および処理するのに適した任意のデバイスであり得る。様々な実施形態では、端末320は、コンピュータの内部または外部であり得る。一実施形態では、端末320は、コンピュータから分離可能である。したがって、端末320は、それが内部または外部にリンクされているコンピュータの処理、記憶、または他の機能を利用し得る。
【0096】
端末320は、ユーザ入力および対話のためのグラフィカルインターフェースを表示するためのディスプレイ338を含む。
【0097】
端末320は、通信インターフェースを含む。通信インターフェースは、第1の通信ポート380を含む。第1の通信ポート380は、端末320をネットワーク336に接続し、端末320とシステムプロバイダサーバ328との間の通信およびデータ転送を容易にするためのネットワーク通信ポートである。
【0098】
通信インターフェースは、第2の通信ポート390を含む。第2の通信ポート390は、端末320をコールドストレージデバイス324に接続し、コールドストレージデバイス324と端末320との間の通信およびデータ転送を容易にするためのコールドストレージ通信ポートである。
【0099】
端末320は、ユーザに情報を表示し、ユーザからの入力を受信するためのユーザインターフェースを含む。ユーザインターフェースは、自動化されたユーザインターフェースであり得る。ユーザインターフェースは、システム300のセットアップの完了、並びにエンドユーザのアカウントの管理およびデバイスのペアリングにおいてユーザを案内する。
【0100】
端末320は、セキュリティ機能が効果的に確立され、従われるように、システム300のセキュリティ機能を可能にするような方法で、コールドストレージ324へのインターフェースを提供し得る。セキュリティ機能は、ユーザによるウォレット/キーの暗号化されたバックアップの配布(たとえば、AES256を使用)であるが、信頼できるサードパーティ及び/又はシステムプロバイダによって保持される;フラグメント化され(fragmented)暗号化された紙及びデジタル回復シードの配布;端末320上のユーザの情報にアクセスするための、システムプロバイダまたはサービスプロバイダインフラストラクチャ(該当する場合)へのクライアント認証;強力なパスワードポリシー、多要素認証などを含み得る。いくつかの実施形態では、それはまた、安全な更新が対になったコールドストレージデバイスに配信されるための仲介者であり得る。
【0101】
端末320のプロセッサは、1つまたは複数のモジュールおよび/またはエンジンを実行するように構成される。プロセッサは、トランザクション生成モジュール(例えば、図4のトランザクション生成モジュール412)を含む。トランザクション生成モジュールは、ユーザデータおよび送信者および受信者データ(例えば、図4のユーザデータ408および送信者および受信者データ410、417)から署名なしブロックチェーントランザクションを作成するように構成される。ユーザウォレットデータは、アカウントデータ、アドレスデータ、および鍵データを含み得る。受信者データは、受信者アドレスを含み得る。具体的には、トランザクションデータは、ユーザアドレス、受信者アドレス、タイムスタンプデータ、およびアセットデータ(例えば、転送されるデジタルアセットの量およびタイプ)を含み得る。トランザクションデータは、署名を除いて、ブロックチェーントランザクションをブロックチェーンネットワークに送信するために必要な全ての情報を含み得る。
【0102】
トランザクション生成モジュールは、端末320がネットワーク336に接続されている間(すなわちオンライン)、または端末320がネットワーク336に接続されていない間(すなわちオフライン)に、未署名のブロックチェーントランザクションの作成を開始し得る。このプロセスの完了は、システムプロバイダ328によって行われ、端末320に送信される。別の実施形態では、端末自体は、以前にシステムプロバイダ328に接続されている限り、このプロセスを完全に完了することができる。
【0103】
一実施形態では、トランザクションデータによって表されるトランザクションは、ブロックチェーンアセット(例えば、暗号通貨、記録、文書、または他のアセット)の転送であり得る。トランザクションデータは、ブロックチェーンの状態を変更するための一連の命令を含み得る。トランザクションは、ブロックチェーンを変更するためにトランザクションについて署名される必要がある。たとえば、暗号通貨を送信するために、ユーザは、第1のアカウント(ユーザに対応)から第2のアカウント(受信者に対応)への暗号通貨の転送を許可するトランザクション生成モジュールを介してトランザクションを生成する。トランザクションは、オンラインまたはオフラインで生成され得る。
【0104】
端末320のプロセッサは、ブロックチェーンアクセサモジュール(例えば、図4のブロックチェーンアクセサモジュール416)を含む。ブロックチェーンアクセサモジュールは、システムプロバイダサーバ328を介して、ブロックチェーン、すなわちブロックチェーンコンピュータ350へのアクセスをユーザに提供するように構成される。ブロックチェーンアクセサモジュールは、署名済みのブロックチェーントランザクションを表す署名済みのトランザクションデータを、ブロックへの確認のためにブロックチェーンコンピュータ350に送信するように構成され得る。ブロックチェーンアクセサモジュールは、ユーザが様々なユーザアカウントの現在のステータスを表示できるように構成され得る。
【0105】
ブロックチェーンアクセサモジュールは、ユーザが、デジタルアセットが取引される他のブロックチェーンユーザと情報(例えば、アドレス)を交換できるように構成され得る。これは、他のユーザがシステムプロバイダにそれぞれのアカウントを提供してアドレスを提供する場合に可能である。他のブロックチェーンユーザは、オフラインであり得る。他のブロックチェーンユーザは、システム300を使用して資金を受け取り得る。そうするために、他のブロックチェーンユーザは、秘密鍵を備えた独自のコールドストレージデバイス324を有する。アセットは、その秘密鍵から派生した公開鍵に関連付けられたアドレスに送信できる。システム300を使用する他のブロックチェーンユーザは、彼らが利用できる端末320を介して取引することができる。
【0106】
ブロックチェーンアクセサモジュールは、システムプロバイダと対話して、ブロックチェーンで対話するために必要な情報を取得する。
【0107】
一実施形態では、システム300の1つまたは複数の構成要素(例えば、端末320、コールドストレージデバイス324、システムプロバイダサーバ328、またはサービスプロバイダインフラストラクチャ/サーバ)は、暗号化エンジン(例えば、図4の暗号化エンジン474)を実装する。暗号化エンジンは、数学的概念から派生した安全な情報通信技術と、アルゴリズムと呼ばれる一連のルールベースの計算とを実装して、解読が難しい方法でメッセージを変換する。暗号化エンジンは、システム300の1つまたは複数のコンポーネントによって受信または送信されたデータを暗号化または復号し、ブロックチェーン上のトランザクションの確認に署名および支援するために使用され得る。
【0108】
暗号化エンジンは、ハッシュモジュール(例えば、図4のハッシュモジュール478)、暗号化モジュール(例えば、図4の暗号化モジュール480)、および復号モジュール(例えば、図4の復号モジュール482)を含み得る。
【0109】
ハッシュは、データの整合性及び高速な検証メカニズムを維持し個人情報を保護する一方で、ブロックチェーン上の全ての人が軽量な方法でデータを転送する方法を提供する。デジタル署名は、アセットの正当な所有者のみがそのトランザクションに同意できるようにする方法を提供し、特定のトランザクションは常にその正当な所有者によって同意される。これらの2つのプロパティは、ブロックチェーンが破損または侵害されていないことを確認するために使用され、識別検証、データの整合性、および不変性を提供する。
【0110】
ハッシュモジュールは、任意の量の入力データを取得し、入力データにアルゴリズムを適用して、ハッシュと呼ばれる固定サイズの出力データを生成する。ハッシュは、世界の現在の状態を表すためにブロックチェーンで使用される。ハッシュは、鍵導出プロセス、トランザクション署名プロセス、トランザクション確認プロセスなどで使用され得る。具体的には、ブロックチェーンの場合、入力はブロックチェーンの状態全体である。つまり、これまでに行われた全てのトランザクションを意味し、結果の出力ハッシュはブロックチェーンの現在の状態を表す。第1のハッシュは、第1のブロックまたは起源(Genesis)ブロックに対して、そのブロック内のトランザクションを使用して計算される。初期トランザクションのシーケンスは、起源ブロックのブロックハッシュを計算するために使用される。後で生成される全ての新しいブロックについて、前のブロックのハッシュ、およびそれ自体のトランザクションも、そのブロックハッシュを決定するための入力として使用される。これは、ブロックのチェーンが形成される方法であり、新しい各ブロックハッシュは、その前にあるブロックハッシュを指す。ハッシュモジュールによって実装されたこのハッシュシステムは、トランザクションの任意の単一の部分が変更された場合に、それが属するブロックのハッシュも変更され、結果として任意の後続のブロックのハッシュも変更されるため、履歴内のトランザクションが改ざんされないことを保証する。
【0111】
暗号化/復号モジュールは、暗号化を使用して、メッセージが特定の人物(ユーザなど)から発信され、泥棒、なりすまし、ハッカーなどの他の人物から発信されていないことを証明する。
【0112】
暗号化/復号モジュールは、非対称暗号化システムを実装し得る。ユーザは、既知のアルゴリズムを使用して、公開鍵及び秘密鍵を含む鍵ペアを生成する。公開鍵及び秘密鍵は、数学的な関係によって相互に関連付けられる。
【0113】
公開鍵は、IPアドレスや自宅のアドレスなど、他のユーザからメッセージ(または転送)を受信するためのアドレスとして機能するように公開されている。秘密鍵は秘密にされ、他のユーザに送信されるメッセージ(またはトランザクション)にデジタル署名するために使用される。受信者が送信者の公開鍵を使用して確認できるように、署名はメッセージ(またはトランザクション)に含まれる。このようにして、受信者は送信者だけがメッセージを送信(または転送)できたことを確認することができる。
【0114】
鍵ペアの生成は、ブロックチェーンでアカウントを作成するのと似ているが、どこにも登録する必要はない。ブロックチェーンで実行される全てのトランザクションは、送信者が秘密鍵を使用してデジタル署名する。この署名により、アカウントの所有者のみがブロックチェーンアセットをアカウントから移動できるようになる。
【0115】
システムは、端末320に接続された1つまたは複数の周辺機器を含み得る。周辺機器は、外部ストレージ、USBドライブなどを含み得る。
【0116】
端末320に接続された周辺機器は、ユーザにセキュリティの脆弱性の別の原因を提示する。周辺機器の脆弱性は、例えば、端末320上のブロックチェーンアセットを扱う従業員を適切に訓練することによって、組織レベルで対処され得る。システム300は、端末320への予期しない周辺機器の接続を禁止し得る。これは、一般的なコネクタの取り外し、耐タンパー性(anti-tamper)、タンパー耐性(tamper-resistant)、および開封明示機構のあるデバイス(tamper-evident device)の提供を含み得る。
【0117】
一実施形態では、端子320は、周辺機器用の動作可能なコネクタを含まない(したがって、図3に示されていない)。周辺機器用の動作可能なコネクタを持たないことにより、端末320は、周辺機器の端末320への接続に関連するセキュリティの脆弱性を抑制することができる。例えば、端末320は、周辺機器を接続するために利用可能なUSBソケットまたは他のコネクタを持たない場合がある。そのような実施形態では、コールドストレージデバイス324は、安全で暗号化された形式の通信を使用して端末320に接続される。
【0118】
システム300は、サービスプロバイダサーバインフラストラクチャを含み得る。サービスプロバイダサーバインフラストラクチャは、システムプロバイダサーバ328の代わりに、またはそれに加えて、通信ネットワーク336を介して端末320にブロックチェーンアクセスサービスを提供し得る。
【0119】
システム300は、ブロックチェーンコンピュータ350を含む。ブロックチェーンコンピュータ350は、システムプロバイダサーバ328に接続される。システムプロバイダサーバ328は、通信ネットワーク336などの内部およびプライベート通信ネットワークを介してブロックチェーンコンピュータ350に接続され得る。
【0120】
ブロックチェーンコンピュータ350は、ブロックチェーンアセットのためのブロックチェーン技術を実装するように構成される。ブロックチェーンコンピュータ350は、分散型台帳を保持し、ブロックチェーントランザクションの完全性を検証する。ブロックチェーンコンピュータ350は、軽量ノード、フルノード、スーパーノード、またはマイナーであり得る。ブロックチェーンコンピュータ350は、(例えば、システムプロバイダサーバ328から)リモートであり得る。ブロックチェーンコンピュータ350は、複数の人々(サービスプロバイダを含むが、これに限定されない)によって管理され得る。ブロックチェーンコンピュータ350は、地理的に分散され得る。
【0121】
ノード及びウォレットは、ブロックチェーンプラットフォーム(MultiChainなど)の2つの別個のサブシステムである場合がある。ノードは、グローバルブロックチェーンの状態を追跡する。ウォレットは、インスタンスにとって特に関心のあるトランザクションを追跡することができ、さらに鍵を保持する。ウォレットはブロックチェーンのグローバル状態について知る必要があることが多いため、情報は通常、ノードからウォレットに送られる。フルノードは、ブロックチェーンのフルコピーを含む。ライトクライアントは、信頼できるフルノードのブロックチェーンのコピーを参照する。これにより、ユーザはブロックチェーンのコピー全体をダウンロードせずにブロックチェーンで取引することができる。フルノードは、トランザクションの処理または検証に役立つ。マイニングはフルノードが必要になり得る。フルノードはまた、ブロックチェーンネットワークの機能に貢献する。フルノードを実行しているパーティは、ネットワークのサポートに役立つ。
【0122】
通信ネットワーク336(例えば、インターネット)は、システムプロバイダサーバ328と端末320(クライアントとして機能する)との間の通信の手法である。別の実施形態では、端末320は、データを通信するための専用インフラストラクチャまたは他のプロトコルを使用して、プライベートネットワークを介してシステムプロバイダサーバ328に接続される。プライベートネットワークは、ポイントツーポイント接続であり得る。プライベートネットワークは、通信のセキュリティを強化し得る。
【0123】
通信ネットワーク336は、端末320のセキュリティの脆弱性の主な原因である。通信ネットワーク336はまた、端末320に接続された周辺機器のセキュリティの脆弱性の主な原因である。
【0124】
端末320は、他のセキュリティの脆弱性の原因を有する可能性がある。一例では、端末320に対するセキュリティの脆弱性の第2の原因は、ソーシャルエンジニアリングによるハッキングである。ソーシャルエンジニアリングによるハッキングでは、端末320のユーザ(組織の従業員など)は、ハッカーが合法的に見せようとして騙され又は欺かれ、それによりハッカーにアクセスを与える。このようなハッキングは、システム300の任意のエンドポイントで発生する可能性がある。ソーシャルエンジニアリングによるハッキングは、サービスプロバイダ、ユーザ、またはサードパーティを標的にすることを含み得る。
【0125】
従業員の適切なトレーニングと強力な分離アクセスプロトコルはまた、ソーシャルエンジニアリングによるハッキングに関連するサービスプロバイダおよびサードパーティ内のセキュリティリスクを大幅に軽減する。システム300では、各エンティティは、オフラインで格納された独自のキーを持っている。したがって、そのような攻撃アプローチが成功するためには、従業員は、各ユーザのコールドストレージデバイス324への物理的アクセスを含む、侵害される各ユーザに対する特に標的を定めた攻撃と併せて、各エンティティで意図的に行動しなければならない。
【0126】
システム300は、コールドストレージデバイス324を含む。コールドストレージデバイス324は、ユーザデータを記憶するためのメモリとコールドストレージデバイス324との間でデータを転送するための通信インターフェースとを含む。メモリは、フラッシュメモリであり得る。通信インターフェースは、USB、ブルートゥース(登録商標)、NFCなどであり得る。コールドストレージデバイス324は、コールドストレージデバイス324に記憶されたデータを端末320に送信することができるように、端末320に接続可能である。端末320とコールドストレージデバイス324との間のデータ転送は、例えば、ユーザインターフェース338を介して、ユーザによって開始される。
【0127】
コールドストレージデバイス324は、システム300を使用してブロックチェーントランザクションを実行するために必要とされるメモリに機密性の高いユーザデータを格納する。機密性の高いユーザデータは、1つ又は複数の秘密鍵を含み得る。秘密鍵データは、未署名のトランザクションデータに署名して、署名済みのブロックチェーントランザクションを生成するために使用される。ユーザは、ユーザアカウントの整合性を維持し、ユーザアカウントのアセットの制御を維持するために、秘密鍵を秘密のままにする(すなわち、ユーザだけが知っている)ことを望んでいる。コールドストレージデバイス324は、インターネットに接続可能ではない。しかしながら、通常の状況下では、コールドストレージデバイス324が端末320に接続され、端末320がインターネットに接続されている場合、コールドストレージデバイス324に格納されたデータがアクセス可能であり、したがって脆弱である可能性がある。
【0128】
コールドストレージデバイス324は、フラッシュドライブ(例えば、USBキー)、外付けハードドライブ、SDSメモリ、ディスク(例えば、CD-ROM、磁気ディスク、フロッピー(登録商標)ディスク、バイオデバイスなど)チップおよびそのためのリーダーを備えたカード、バイオデバイス(例えば、本体に埋め込まれたチップ)およびそのためのリーダーなどであり得る。コールドストレージデバイス324は、端末320の内部にあり得る。コールドストレージデバイス324は、接続を切断され得る。
【0129】
コールドストレージデバイス324は、図3においてUSBタイプの装置として示され得るが、これは限定的ではなく、任意の適切なデータ転送方法に従って、端末320とコールドストレージデバイス324との間でデータ転送が起こり得ることを理解されたい。
【0130】
コールドストレージデバイス324は、デジタルウォレットをメモリに格納する。デジタルウォレットは、ユーザの秘密鍵、公開鍵、スクリプト(アドレスに対応)、鍵のメタデータ(ラベルなど)、およびウォレットに関連するトランザクションを含むウォレットデータを含む電子ファイル(wallet.datファイルなど)である。デジタルウォレットは、コールドウォレットであり得る。変形例では、コールドストレージデバイス324、端末320、またはコールドストレージデバイス324および端末320、デジタルウォレットを生成するために使用され得る。
【0131】
一実施形態では、デジタルウォレットは、階層的な決定論的(HD)ウォレットである(例えば、図6)。別の実施形態では、デジタルウォレットは、非階層的な決定論的ウォレットであり得る。HDウォレットはまた、各秘密鍵のHDシード経路及び派生経路を含む。場合によっては、特定のウォレットデータが端末320に転送または交換される。コールドストレージデバイス324に記憶された秘密鍵は、決して端末320に転送されない。
【0132】
コールドストレージデバイス324は、永久にオフラインである。ユーザが保護されたままにしておきたい(例えば、秘密鍵)、およびネットワーク336を介して転送されたくないウォレットデータは、コールドストレージデバイス324のメモリに格納される。システム300は、端末320がネットワーク336に接続されている一方で、コールドストレージデバイス324が機密性の高いウォレットデータ(例えば、秘密鍵)を決して公開しないことを確実にするように構成される。
【0133】
ブロックチェーンアセット転送のフローは、システム300のより深いエンド、すなわちコールドストレージデバイス324から開始される。これは、コールドストレージデバイス324が端末320とのデータ交換を介してそれ自体に感染するために、コールドストレージデバイス324が最初に危険にさらされなければならないため、多段階感染を防ぐのに役立つ。
【0134】
コールドストレージデバイス324は、プロセッサを含む。プロセッサは、1つ又は複数のモジュールまたはエンジンで実行される。プロセッサは、未署名のトランザクションデータ及び秘密鍵データから署名済みのトランザクションを生成するように構成されている。端末320がオフラインであるとき、プロセッサはトランザクションに署名する。プロセッサは、数学的関数を使用してトランザクションに署名する。
【0135】
署名済みのトランザクションは、コールドストレージデバイス324の通信インターフェースを介してコールドストレージデバイス324から端末320に送信される。端末320は、コールドストレージポート390を介して署名済みのトランザクションを受信する。署名済みのトランザクションは、端末320のメモリに格納されることができる。
【0136】
署名済みのトランザクションは、ブロックチェーンネットワーク(すなわち、ブロックチェーンコンピュータ350)に(例えば、ブロックチェーンアクセサモジュール416を介して)ブロードキャストされる。ブロックチェーンネットワークは、トランザクションをブロックに確認する。
【0137】
システム300は、スイッチコネクタ344を含む。スイッチコネクタは、端末320が通信ネットワーク336およびコールドストレージデバイス324の両方に同時に接続されるのを妨げるように構成される。スイッチコネクタ344は、モード切り替えモジュール(例えば、図4のモード切り替えモジュール486)によって制御または実施され得る。スイッチコネクタ344は、ネットワーク336を介して発生する可能性のある外部への望ましくない露出から、コールドストレージデバイス324(およびそこに格納された秘密鍵)を保護する。
【0138】
スイッチコネクタ344は、通信ネットワーク336およびコールドストレージデバイス324が端末320に同時に接続されることなく、コールドストレージデバイス324が端末320を介してウォレットデータを転送することを可能にする。コールドストレージデバイス324は、ネットワーク336との通信のポートを含まない。したがって、端末320がネットワーク336に接続されていない場合、ネットワーク336を介したコールドストレージデバイス324へのアクセスはない。スイッチコネクタ344は、端末320とコールドストレージデバイス324との間の接続をエアギャップ(air-gap)する(すなわち、コールドストレージデバイス324が通信ネットワーク336から分離および隔離される)。
【0139】
一実施形態では、スイッチコネクタ344は、ハードウェアスイッチを含む。ハードウェアスイッチは、ダイオードまたはトランジスタを含む電子論理ゲートであり得る。有利なことに、ハードウェアは、ソフトウェア実装からの盗みを試みて成功する可能性のあるマルウェアの影響を受けないことを考えると、ハードウェアスイッチを有するスイッチコネクタ344は、スイッチのソフトウェア実装よりも安全であり得る。
【0140】
別の実施形態では、スイッチコネクタ344は、ソフトウェアスイッチを含む。ソフトウェアスイッチは、ロックアウトエンジン(図4のロックアウトエンジン409など)によって制御され得る。ソフトウェアスイッチを有するスイッチコネクタ344を実装することは、ハードウェアスイッチよりも実装が容易であり得る。
【0141】
スイッチコネクタ344は、端末320を、あるいは、ネットワーク通信ポート380またはコールドストレージポート390に接続する。スイッチコネクタ344は、端末320のデバイスドライバ内に直接実装され得る。スイッチコネクタ344は、デバイスドライバ内でシステムコールフックを使用し得る。スイッチコネクタ344は、一度に端子320に対して1つの接続のみを許可するように構成される。例えば、スイッチコネクタ344は、ネットワーク通信ポート380及びコールドストレージポート390のいずれかを無効にし、他方を有効にし得る。
【0142】
コールドストレージポート390は、コールドストレージデバイス324のタイプに対応する。複数のタイプのコネクタがあり得る。それらは全てスイッチコネクタ344と接続する。
【0143】
一実施形態では、コールドストレージポート390は、暗号化されたブルートゥース(登録商標)通信を使用する。別の実施形態では、コールドストレージ390は、NFC通信を使用する。特定の実施形態では、NFC通信は特別に細工されている。ネットワーク通信ポート380は、イーサネット(登録商標)アダプタであり得る。
【0144】
ここで図3Bを参照すると、一実施形態に係る、オフラインモードの端末320を有するシステム300が示される。オフラインモードでは、スイッチコネクタ344は、端子320をコールドストレージデバイス324に接続する。スイッチコネクタ344は、ネットワーク336を介したコールドストレージデバイス324へのアクセスを妨げる。スイッチコネクタ344は、コールドストレージデバイス324が端末320に接続され、機密データ(例えば、秘密鍵)を危険にさらすときに、コールドストレージデバイス324上に存在し得る、または端末320上にあり得るマルウェアがネットワーク336を介して外部コンピュータに通信することを妨げる。オフラインモードでは、未署名のトランザクションは、コールドストレージデバイス324で署名されることができる。
【0145】
ここで図3Cを参照すると、一実施形態に係る、オンラインモードの端末320を有するシステム300が示される。オンラインモードでは、端末320は、ネットワーク336に接続され、したがって、システムプロバイダサーバ328に接続される。スイッチコネクタ344は、端末320をネットワーク336に接続する。オンラインモードでは、端末320は、ネットワーク336を介してシステムプロバイダサーバ328と通信することができる。例えば、オンラインモードでは、端末320は、(コールドストレージデバイス324から受信された)署名済みのトランザクションをシステムプロバイダサーバに送信することができる。
【0146】
一実施形態では、システム300は、企業のコンテキストで使用され得る。ユーザは、組織の従業員であり得る。端末320がコールドストレージデバイス324に接続されているとき、システムプロバイダインフラストラクチャ上で(例えば、システムプロバイダサーバ328を介して)動作するユーザは、端末320を使用して、端末320が組織のコールドストレージデバイス324で閲覧する許可を有する文書にアクセスして閲覧することができる。コールドストレージデバイス324に格納されたブロックチェーンアセットを組織外のパーティ(例えば、別の組織または同じ組織内の別の場所)に転送したい場合、ユーザは、転送するブロックチェーン文書を選択することができる。ブロックチェーン文書は閲覧のための許可を必要とする。これは、信頼グループ内の許可を介して、または文書を表示する許可を取得する特定のアドレス(受信者)に文書を送信することによって付与されることができる。さらに、ブロックチェーン文書は、ブロックチェーンに新しいバージョンを作成せずに変更することはできない。
【0147】
ユーザは、コールドストレージデバイス324から端末320の通信を切断する。ユーザは、端末320をネットワーク通信ポート380(例えば、イーサネット(登録商標)アダプタ/ポートまたはWiFi(登録商標)をオンにする)に接続し、オンラインで転送を実行する。端末320をネットワーク通信ポート380に接続することは、端末320をシステムプロバイダサーバ328に接続する。システムプロバイダサーバ328は、トランザクションに署名する。システムプロバイダサーバ328は、署名済みのトランザクションを以前に決定されたアドレスにブロードキャストする。署名済みのトランザクションをブロードキャストする方法は、各ブロックチェーンに固有である。
【0148】
システム300を使用して、文書が「ホット」である間(すなわち、端末320がオンラインであるとき)、ユーザは、コールドストレージデバイス324上でブロックチェーン文書を閲覧することは決してない。ブロックチェーン文書の転送は、端末320において以前にオフラインと決定されたように、システムプロバイダインフラストラクチャを介して行われる。これにより、マルウェア及びその他の攻撃の可能性が減少する。端末320、コールドストレージデバイス324、およびスイッチコネクタ344の物理的リンクは全て、どのようにそして何にアクセスするかに関してシステムプロバイダによって以前に決定されているため、攻撃に対する脆弱性は低減される。これにより、バックドア又は傍受の任意の可能性が大幅に減少する。任意のバックドアまたは傍受は、以前にデバイス320、324を直接改ざんした結果である。
【0149】
別の実施形態では、システム300は、ユーザが個々の取引暗号通貨である場合など、個人的な状況で使用されることができる。システム300は、端末320にアクセスできるユーザを含む。端末320は、システムプロバイダインフラストラクチャにのみアクセスするように構成される。端末320は、他のタスクには使用されない。
【0150】
端末320を使用して、ユーザは、ユーザが保有する暗号通貨(または他のブロックチェーンアセット)のタイプおよび金額を閲覧することができる。暗号通貨のタイプ及び金額はウォレットに格納される。
【0151】
システム300は、ウォッチオンリーモードを含む。ウォッチオンリーモードでは、ユーザは端末320でウォレットを閲覧することができる。ウォッチオンリーモードは、ユーザが端末320を使用して秘密鍵なしでウォレットを持ってアクセスできるようにする「モード」である。システム300は、ユーザがウォッチオンリーモードで端末320からブロックチェーントランザクションに署名することを許可しない。ウォッチオンリーモードを使用すると、ユーザは、端末320を使用してトランザクションに署名することに関連するセキュリティ上の懸念なしに、そのウォレットのステータスを監視することができる。そのようなセキュリティ上の懸念の1つは、端末320をシステムプロバイダサーバ328にリンクする通信ネットワーク336を介した秘密鍵の公開である。
【0152】
システム300を使用して、ユーザは、端末320を介してブロックチェーンアセットのトレードの実行を指示し得る。ユーザは、物理リンクまたはスイッチコネクタ344をコールドストレージデバイス324に接続する。ユーザは、コールドストレージデバイス324を端末320に接続する。端末320は、この時点では通信ネットワーク336に接続されていない(すなわち、端末320はオフラインである)。
【0153】
コールドストレージデバイス324から端末320への署名済みのトランザクション転送が完了すると、ユーザは、端末320を通信ネットワーク336に再接続する。再接続は、スイッチコネクタ344(または物理リンク)を端末320のネットワーク通信ポート380に切り替えることによってなされることができる。上記のように、端末320は、ネットワーク336を介してシステムプロバイダサーバ328にのみアクセスするように構成/事前プログラムされている。端末320がネットワーク336に接続されると、端末320は、ブロックチェーンアセットのトレードを実行する。
【0154】
現在のアプローチを使用すると、ほとんどの交換では、ユーザは最初に暗号通貨をホットウォレットに転送して、交換サービスにオンラインでアクセスできるようにする。ユーザは、法定通貨を取引所に送金する。取引所は、取引所のウォレットから第1のユーザウォレットにコイン(または他の暗号通貨)を転送する。第1のユーザウォレットは、取引所が所有および管理するホットウォレットである。そこから、ユーザはコインを、ユーザが所有および管理する第2のユーザウォレットに転送して、オンライン交換サービスの領域外でコインを使い始める。これは、システム300内で直接スキップすることができる二次ステップであり、プロセスで1つのトランザクションを節約する。
【0155】
一実施形態では、システム300は、暗号通貨を安全に取引するために使用されることができる。システム300は、ユーザが、コールドストレージデバイス324上のコールドストレージウォレット(すなわち、オフラインウォレット)に暗号通貨を保持し、そこから暗号通貨を交換することを可能にする。コールドストレージウォレットを使用した取引及び保管は、従来の方法よりも簡単で安全である。端末320が通信ネットワーク336に接続されている場合、ユーザは、システム300を使用して、アセットをコールドストレージウォレットから交換プラットフォームによって制御されるオンラインウォレット(ホットストレージウォレット)に転送する必要なしに、ユーザ通貨を取引することができる。システム300を使用して、ユーザは、交換プラットフォームがコインを直接転送する端末320を介してアドレスを提供するだけである。したがって、システム320は、ユーザが、コインをホットウォレット(オンラインウォレット)に保管することに関連付けられたセキュリティリスクなしに、コインを完全に制御することを可能にする。
【0156】
したがって、いくつかの実施形態では、システム300は、従来のアプローチのように2つのステップではなく、単一のトランザクションを実行する。トランザクションステップの数を減らすことによって、システム300は、トランザクションに関連付けられたトランザクション料およびラグタイムを減らすことができる(すなわち、資金がより迅速に利用可能であり、ユーザを待つことが少なくなる)。例えば、システム300は、トランザクションの検証に関連付けられたトランザクション手数料を削減し、資金のより速い利用可能性を提供することができる。
【0157】
システム300は、複数の検証の代わりに1つの検証を含む。ブロックに追加する必要がある唯一のトランザクションは、取引所からコールドストレージデバイス324へのトランザクションである。ユーザは、第2のトランザクションもブロックに追加されるのを待つ必要がないので、コールドストレージデバイス324から法定通貨(fiat)銀行口座に転送される変換された通貨への完全な交換ループの合計経過時間が短縮される。完全な交換ループは、法定通貨を使用した暗号通貨の購入と、購入した暗号通貨の法定通貨(または別の暗号通貨)への交換とを含む。ユーザが再び法定通貨で交換したい場合、システムは、交換ウォレットに送信し、適切な法定通貨口座に資金を解放するだけで済む。このシナリオでは、システム300は、単一の検証のみを必要とする。システム300は、途中の各ステップでユーザのトランザクションにそれらを埋め込むことによって、一元化されたサードパーティの必要性を軽減する。
【0158】
時間の短縮はまた、トランザクション手数料の削減に結び付くことができ、特定のブロックチェーンによって異なり、数分から1時間の範囲であり得る。トランザクションの数の低減を通して時間を短縮することによって、システム300は、ユーザが市場の変動に対してより迅速に反応することを可能にし得る。これは、非常に不安定な暗号通貨市場で特に有利であり得る。時間要件を削減することにより、システム300は、ユーザ、ユーザの銀行、または暗号通貨の支払いを受け取り、それを別の通貨または暗号通貨に変換したい第三者のコストを削減し得る。
【0159】
端末320はまた、通常のウォレットとしても機能し、ユーザが交換を必要とせずにブロックチェーンと対話することを可能にする。トランザクションは、常にシステムプロバイダサーバ328からブロードキャストされ、これはユーザが自分自身をブロードキャストすることに関連付けられたセキュリティリスクを軽減する。システムは、マルチ署名モジュール(たとえば、図4のマルチ署名モジュール428)を実装することによってこれを実現する。マルチ署名モジュールは、マルチ署名アプローチを実装する。マルチ署名アプローチでは、ユーザの暗号化鍵が、ブロックチェーントランザクションの署名プロセスに必要な署名の最大半分を表すように制限される。これは事実上、マルチ署名に含まれるキーの合計が2以上であり、ユーザが両方を所有できないことを意味する。その場合、最小のアプローチは2つのうち2つになる。
【0160】
したがって、特定のアドレスからの支出の1対1のマッピングは、外部の受信者と、ユーザ、システムプロバイダ、およびサービスを実装してそれぞれのシステムと対話する信頼できるn個のサードパーティを含む信頼グループとの間でのみ行うことができる(たとえば、通常の銀行口座とやり取りするためにクライアントにシステムを提供している銀行)。
【0161】
ブロックチェーン検証操作は、複雑であり得る。ブロックチェーン内の単一のブロックを確認またはマイニングするには、高い計算能力が必要になる場合がある。一部のブロックチェーン技術の複雑さ及び高い計算能力要件は、エネルギーと生態系に悪影響を与える場合がある。システム300は、より少ないトランザクションを必要とすることにより、標準的なブロックチェーン検証操作に関連付けられた生態学的およびエネルギー的負担を軽減する。
【0162】
端末320のハードウェアは、システムプロバイダサーバ328によって認識される。ユーザが端末320にパスワードを一度入力すると、ユーザは、例えば、クライアント端末320を使用してシステムプロバイダサーバ328にアクセスすることによって取引することができる。ユーザが取引を停止して安全モード(すなわち、コールドストレージモード/オフラインモード)に入ろうとするとき、端末320は、(例えば、ハードウェアのプラグを抜くことによって)通信ネットワーク336から切断される。その後、システムは、コールドストレージモードになる。端末をコールドストレージモードで操作するとき、ユーザは、コールドストレージデバイス324に格納されたデータにアクセスすることができる。
【0163】
いくつかの実施形態では、システム300は、マルチパーティ回復方法(例えば、図4のマルチパーティ回復モジュール470)を実装するように構成される。回復方法は、失われたパスワード、失われた鍵、またはユーザの失われたまたは壊れたデバイス(例えば、コールドストレージデバイス324)からの情報を回復するために使用されることができる。
【0164】
回復方法に従って、ユーザはシード拡張子を定義する。シード拡張子は、ニーモニック拡張子(mnemonic extension)であり得る。シードは、システムプロバイダなどの回復作業に関与する二次パーティによって格納される(たとえば、シードをシステムプロバイダサーバ328に格納する)。二次パーティは、ニーモニック拡張子を有するシードの暗号化されたコピーを有する。回復方法の特定の実施形態では、システム300は、ユーザおよびシステムプロバイダのみを含む(第三者を含まない)。このような場合、ユーザ及びシステムプロバイダはそれぞれ、ユーザのニーモニック拡張子で暗号化された共有鍵を格納する。ユーザ及びシステムプロバイダはそれぞれ、ニーモニック拡張子を有するシードの暗号化されたコピーを有する。ユーザは、シード拡張子を有するシードを使用して秘密鍵を回復することができる。シード及び秘密鍵の両方が失われた場合、ユーザは、システムプロバイダに(例えば、システムプロバイダサーバ328を介して)シードを要求し、シード及びニーモニックデバイスを使用して秘密鍵を復号することができる。
【0165】
別の実施形態では、システム300によって実装されるマルチパーティ回復方法は、ユーザ、システムプロバイダ、およびサードパーティを含む。サードパーティは、サードパーティのサービスプロバイダである。サードパーティのサービスプロバイダは、選挙を実施する銀行、病院、政府機関などであり得る。システム300を使用して、ユーザは、ウォレットの秘密鍵を回復することができる。システム300は、関係者の数(ここでは3つ)以上の秘密の共有の数Sを含むフラグメント化された秘密を作成する。フラグメント化された秘密を作成することにより、システム300は、回復の複数のメカニズムを提供する。たとえば、ユーザがデジタルウォレットを紛失した場合、ユーザがマスターシードを忘れた場合、法律の必要性によりウォレットを渡す必要がある場合など、サードパーティのサービスプロバイダ及びシステムプロバイダはウォレットを回復するのに役立つことができる。
【0166】
ユーザは、ユーザとサードパーティのサービスプロバイダとの間で共有される秘密(secret)を拡張する。ユーザはまた、ユーザとメインシステムプロバイダとの間の秘密を拡張する。サードパーティのサービスプロバイダは、サードパーティのサービスプロバイダとシステムプロバイダとの間で共有される秘密を拡張する。
【0167】
システム300は、ユーザがマスターシードを作成する以外の行動をとる必要なしに、拡張機能を自動的に配布する。一実施形態では、この目的のために使用される暗号化アルゴリズムは、シャミアの秘密共有スキーム(SSSS:Shamir’s Secret Sharing Scheme)である。
【0168】
回復方法の実施形態は、複数のサードパーティサービスプロバイダを含み得る。そのような実施形態では、鍵のフラグメントは、ユーザと各サードパーティサービスプロバイダとの間で共有され得る。フラグメントは、ユーザとシステムプロバイダとの間で共有される。フラグメントは、各サードパーティサービスプロバイダとシステムプロバイダとの間で共有される。例えば、マルチ署名ウォレット内の所与のアカウントに対して2つのサードパーティサービスプロバイダが存在する場合、システム300は5つ以上のフラグメント;ユーザとシステムプロバイダの間の1つのフラグメント(+1)、ユーザと2つのサードパーティサービスプロバイダのそれぞれの間の1つのフラグメント(+2)、および各サードパーティサービスプロバイダとシステムプロバイダとの間の1つのフラグメント(+2)を生成する。任意選択で、サードパーティのサービスプロバイダはまた、フラグメントを共有して、フラグメントの総数を6にすることができる。この原理は、何度でも繰り返されることができる。別の例として、各関係パーティは1つではなく3つの拡張子を有することができ、前者の例では合計15フラグメント、後者の例では18フラグメントになる(サードパーティのサービスプロバイダが相互に秘密を拡張する)。
【0169】
鍵を復元するために必要な共有の最小数は、同じアカウントのサードパーティサービスプロバイダの合計に2/Sを掛けたもの以上である必要がある。ここで、Sは共有の合計量である。前の例に従うと、第1のバージョンでは5個のうち少なくとも4個の共有、または第2のバージョンでは6個のうち4個の共有が必要になる。システムの各参加者間で複数の拡張を伴うバリエーションの場合、システム300は、15個中12個、または18個中15個の共有を生成する。
【0170】
別の実施形態では、秘密の共有Sを入れ子にする(nested)ことができ、各レベルで必要な共有の数を減らしながら、親の秘密の共有のために秘密の共有を保持する複数のパーティを粒度で定義することができる。たとえば、秘密の特定の共有自体を、同じk-of-n方式で複数のサブ共有に分割できるため、共有を再作成するには、それらのn個のサブ共有のうちk個が必要である。これにより、秘密分散スキームの最終的な速度低下を防ぎ、各層での鍵の大規模なセットの管理を最小限に抑え、一部のブロックチェーンとの非互換性の問題を解決できる。たとえば、ビットコインコアは、最大16個の共有をネイティブにサポートする。このアプローチはまた、回復メカニズム自体の多要素認証を作成するために利用される(leveraged)ことができる(多要素認証メカニズムの署名とは別に)。
【0171】
一実施形態では、任意の共有は、合計および回収するために使用されることができる。回復方法の別の実施形態では、システム300は、合計して回復するために必要な共有の最小数を指定する(例えば、少なくとも1つの共有がユーザから必要とされる)。
【0172】
システム300は、バックアップモジュールを含み得る。バックアップモジュールは、秘密鍵の1つ又は複数のバックアップメカニズムを実装するように構成される。バックアップメカニズムは、サードパーティのサービスプロバイダでのユーザの秘密鍵を安全に格納するための信頼の合意など、複数の種類の冗長メカニズムを含み得る。
【0173】
バックアップモジュールの特定の実施形態では、銀行(第三者)は、ユーザの銀行PINでユーザの秘密鍵を暗号化し得る。これにより、ユーザが銀行のPINを新しい銀行のPINに更新するときに、メンテナンスの追加の層が追加される場合がある。これは、ユーザが新しい銀行のPINでキーのコピーを再暗号化する必要があるためである。これはバックアップにのみ関係するため、システムの操作に複雑さを追加することはない。
【0174】
システム300および方法の動作および機能は、様々な利点を提供し得る。端末320を単一アプリケーションコンピュータとして提供することは、端末320がその目的、アプリケーション、および本開示に係る機能性において制限されている場合、端末320が悪意のあるソフトウェアに感染する可能性が低いため、ブロックチェーントランザクションを実行する際のより高いセキュリティを保証する。端末320の単一アプリケーションコンピュータは、マルウェアが利用する攻撃対象領域を制限する。システム300は、攻撃対象領域を制限することにより、セキュリティを改善し、侵害のリスクを低減する。
【0175】
一実施形態では、端末320は、ウォッチオンリーモードを含む。ウォッチオンリーモードの実施形態では、端末320は、ブロックチェーンアセットを表示し、許可を作成し、ブロックチェーントランザクションを更新するためのユーザインターフェースのみを実装する。端末320は、事実上、コールドストレージデバイス324上のコールドストレージ(オフライン)ウォレットによって署名されるブロックチェーントランザクションを作成するウォッチオンリーウォレットである。端末320は、部分的に署名済みのブロックチェーントランザクションをシステムプロバイダサーバ328に送信するように構成され、部分的に署名済みのトランザクションは、システムプロバイダおよび任意のサードパーティサービスプロバイダによって署名され得る。
【0176】
システム300の様々な実施形態は、様々なアプローチに従って、潜在的なセキュリティリスクを機密性の高いユーザデータに制限し得る。端末320は、通信ネットワーク336を介して、事前定義されたシステムプロバイダインフラストラクチャ/サーバ328にのみアクセスするように構成されることができ、端末320の露出および攻撃ベクトルを制限する。システム300は、DNS制限、ファイアウォールルールの実装、ポイントツーポイントネットワークの使用、または端末320とシステムプロバイダサーバ328との間のピアツーピアアプローチの実装を通じて、端末の露出および攻撃ベクトルを制限し得る。端末320は、ウォレットを危険にさらす可能性のあるデータを格納しないように構成され得る。システム300は、端末320へのサードパーティアプリケーションの追加に関する制限を含み得る。制限は、サードパーティアプリケーションの追加を、システムプロバイダによっておよびシステムプロバイダを介して端末320に追加されたサードパーティアプリケーションのみに制限し得る。このような制限は、サードパーティのアプリケーションを介して作成された攻撃のバックドアを抑制し得る。システム300は、ユーザが、ユーザによって選択されたサードパーティサービスプロバイダの組み合わせ毎にウォレット内にアカウントを作成し、各サードパーティサービスプロバイダの公開鍵及びシステムプロバイダの公開鍵を追加することを単に可能にし得る。これは、第三者と直接、またはユーザの端末320を介してなされ得る。
【0177】
ここで図4を参照すると、一実施形態に係る、安全なブロックチェーントランザクションを実行するためのコンピュータシステム400が示されている。コンピュータシステム400は、本開示のシステムおよび方法(またはその一部)を実装する。例えば、コンピュータシステム400は、図5および図7の方法500および700をそれぞれ実装するために使用され得る。別の例では、コンピュータシステム400は、図3のシステム300の様々な機能を実行する。モジュールおよびデータなどのコンピュータシステム400の様々な構成要素および機能は、システム300の複数の構成要素(例えば、端末320、コールドストレージデバイス324、システムプロバイダサーバ328)にわたって分散および/または複製され得る。場合によっては、コンピュータシステム400の特定の構成要素および機能性が、システム300の複数の構成要素に存在し得る。
【0178】
コンピュータシステム400は、プロセッサ402およびメモリ404を含む。プロセッサ402は、コンピュータデバイス200のプロセッサ1020であり得る。メモリ404は、コンピュータデバイス200のフラッシュメモリ1110であり得る。プロセッサ402は、図5および図7の方法500および700のステップ(またはモジュール)をそれぞれ実行する。メモリ404は、方法500、700によって受信、使用、および生成されたデータを格納する。プロセッサ402は、メモリ404に格納されたデータと対話して、500、700のステップを実行する。
【0179】
メモリ404は、ユーザデータ408、送信者データ410、受信者データ417、およびモードデータ411を格納する。メモリ404は、端末(例えば、図3の端末320)、コールドストレージデバイス(例えば、図3のコールドストレージデバイス324)、またはシステムプロバイダサーバ(例えば、図3のシステムプロバイダサーバ328)に格納され得る。
【0180】
ユーザデータ408は、トランザクションデータ413を含む。ユーザデータ408はまた、1つまたは複数のウォレットに対応し得るウォレットデータ440を含む。ウォレットデータ440は、コールドストレージデバイスに格納された1つまたは複数のオフラインウォレットを含む。ウォレットデータ440は、1つまたは複数のユーザアカウントに関連付けられたアカウントデータ444を含む。アカウントデータ444は、鍵データ452およびアセットデータ462を含む。鍵データ452は、秘密鍵458および公開鍵456を含む。アセットデータ462は、トランザクションに関連付けられたメタデータ(例えば、金額、アセットのタイプ)を含み得る。秘密鍵458は、コールドストレージデバイスのメモリ404に格納される。
【0181】
送信者データ410および受信者データ417は、トランザクションを生成するために使用される。受信者データ417は、受信者アドレスを含む。
【0182】
モードデータ411は、端末の現在のモードに関連するデータを含む。
【0183】
コンピュータシステム400はまた、通信インターフェース406を含む。通信インターフェース406は、コンピュータシステム400とシステムの他の構成要素との間の通信を容易にし、場合によっては制限または限定する。
【0184】
通信インターフェース406は、ネットワークインターフェース414および/またはコールドストレージインターフェース418を含み得る。ネットワークインターフェースは、ネットワーク(例えば、図3のネットワーク336)を介したコンピュータシステム400との間の通信およびデータ転送を容易にする。コールドストレージインターフェースは、コールドストレージデバイス(例えば、図3のコールドストレージデバイス324)との間の通信およびデータ転送を容易にする。一実施形態では、ネットワークインターフェース414は、図3のネットワーク通信ポート380であり得る。一実施形態では、コールドストレージインターフェース418は、図3のコールドストレージ通信ポート390であり得る。
【0185】
システム400は、ユーザ出力および入力を表示するためのディスプレイ422を含む。ディスプレイは、端末にあり得る(例えば、図3の端末320)。
【0186】
プロセッサ402は、端末(例えば、図3の端末320)またはコールドストレージデバイス(例えば、図3のコールドストレージデバイス324)に配置され得る。
【0187】
プロセッサは、ロックアウトエンジン409を含む。ロックアウトエンジン409は、機密性の高いユーザ情報(例えば、秘密鍵458)を安全に保つために、本開示のシステムおよび方法の様々なセキュリティ機能を実装するように構成される。
【0188】
ロックアウトエンジン409は、トランザクション生成モジュール412、ブロックチェーンアクセサモジュール416、許可更新モジュール420、通信モジュール424、マルチ署名モジュール428、マルチパーティ回復モジュール470、およびモード切り替えモジュール486を含み得る。
【0189】
トランザクション生成モジュール412は、コールドストレージデバイス(例えば、図3のコールドストレージデバイス324)によってオフラインで処理および署名されるブロックチェーントランザクションを作成する。トランザクション生成モジュール412は、ユーザデータ408および受信者データ417を含むトランザクション入力データから署名なしブロックチェーントランザクションを生成するように構成される。入力トランザクションデータは、金額、受信アドレス、およびタイムスタンプを含み得る。トランザクション入力データは、ユーザ入力デバイス466を介してユーザによって入力され得る。トランザクション生成モジュール412は、コンピュータシステム400がオフラインであるときに、署名なしトランザクションを生成し得る。
【0190】
ブロックチェーンアクセサモジュール416は、端末を介して、システムプロバイダサーバ/インフラストラクチャ(例えば、図3のサーバプロバイダサーバ328)を介したブロックチェーン技術(例えば、図3のブロックチェーンコンピュータ350)へのアクセスをユーザに提供するように構成される。ユーザは、様々なアカウントの現在のステータスを閲覧することができる。ユーザは、デジタルアセットが取引されている他のブロックチェーンユーザと情報(例えば、アドレスなど)を交換することができる。
【0191】
許可更新モジュール420は、許可データから許可を付与、転送、および更新するように構成される。許可を変更するために、信頼グループ内の任意のエンティティがサービスプロバイダに許可の変更を要求することができる。サービスプロバイダは、要求されたアクセス許可の変更に、サービスプロバイダの関連付けられた秘密鍵を使用して署名する。サービスプロバイダは、アクセス許可の変更を内部で確認し、アクセス許可に適切な変更を加える。許可更新モジュール420は、要求しているユーザに代わって新しいエンティティに署名権を付与すること、信頼グループ内のエンティティを拡張すること、信頼グループ内のエンティティを削除することなどによって許可を変更し得る。
【0192】
一実施形態では、許可更新モジュール420は、システムにセキュリティの層を提供する。ユーザは、許可更新モジュール420を介して許可を付与することができる。許可モジュール420は、(ユーザに関連付けられた)ボールト(vault)を作成する。ユーザは、自身の秘密鍵及びボールト用に作成された秘密鍵を使用してボールトにアクセスする。ボールトへのユーザアクセスは、さらにn個のサードパーティプロバイダからの秘密鍵を必要とし得る。n>0の場合、サードパーティプロバイダの少なくとも1つが署名者である必要がある。別の実施形態では、許可モジュール420は、複数の追加の署名者を許可するルールを実装するように構成される。署名者に関するルールを変更するには、ユーザ(ボールトを作成する秘密鍵)とサードパーティの両方がそれぞれの秘密鍵を使用して変更に署名し、それによって識別を証明する必要がある。
【0193】
通信モジュール424は、コンピュータシステム400の許可された通信を制限するように構成される。通信モジュール424は、インバウンドおよびアウトバウンド通信を制限し得る。例えば、通信モジュール424は、コンピュータシステム400(例えば、図3の端末320)がインバウンド通信を受け入れることを抑制し得る。通信モジュール424はまた、コンピュータシステム400からのアウトバウンド通信を、サービスプロバイダ(例えば、図1のサービスプロバイダインフラストラクチャ16)またはシステムプロバイダインフラストラクチャとの通信のみに制限し得る。通信モジュール424は、通信ネットワーク(例えば、図3のネットワーク336)に接続されているコンピュータシステム400に関連付けられたリスクを緩和および軽減する。
【0194】
マルチ署名モジュール428は、信頼グループのマルチ署名アプローチを実装する。一実施形態では、マルチ署名モジュール428は、ソーシャルエンジニアリングによるハッキングの脅威を軽減し得る。一実施形態では、マルチ署名モジュール428は、システムの「m」エンドポイント(例えば、図1のシステム10)で同時に正常に発生する署名を必要とする。ここで、mは、特定のアカウントに対して確立されたmのうちのnの信頼関係における署名者の最小数を表す。
【0195】
一実施形態では、マルチ署名アプローチは、システム内の各デバイス(例えば、図3の端末320、コールドストレージデバイス324、システムプロバイダサーバ328)によって実装される。
【0196】
マルチパーティ回復モジュール470は、ユーザおよびシステムプロバイダ(例えば、システム300のマルチパーティ回復モジュール)を含むマルチパーティ回復プロセスを実装する。
【0197】
モード切り替えモジュール486は、スイッチコネクタ(例えば、図3のスイッチコネクタ344)またはその一部を制御または実装するように構成され得る。例えば、モード切り替えモジュール486は、スイッチコネクタのハードウェアスイッチを制御し得る。スイッチコネクタは、端末がネットワーク及びコールドストレージデバイスに同時に接続されるのを抑制する。モード切り替えモジュール486は、ネットワーク通信ポートおよびコールドストレージ通信ポート(例えば、図3のコールドストレージポート390)などの通信インターフェースの構成要素を無効および有効にするように構成され得る。例えば、モード切り替えモジュール486は、(例えば、モードスイッチのユーザ入力を受信して処理することによって)所望のモードスイッチを認識するように構成され得る。モード切り替えモジュール486は、有効な通信ポートを無効にし、無効な通信ポートを有効にすることによって、モード切り替えに影響を与え得る。場合によっては、モード切り替えモジュール486は、ロックアウトエンジン409の特定の機能を実行するために、プロセッサ402の他のモジュールにモードデータを提供し得る。
【0198】
プロセッサは、暗号化エンジン474を含む。暗号化エンジン474は、コンテンツ署名モジュール432および検証モジュール434を含む。暗号化エンジン474は、デジタル署名を作成および検証するために使用されることができる。
【0199】
一実施形態では、暗号化エンジン474およびロックアウトエンジン409は、異なるデバイス上にある。
【0200】
暗号化エンジン474は、ロックアウトエンジン409と通信するように構成されることができ、逆もまた同様である。たとえば、一方のエンジンが、もう一方のエンジンへの入力として提供される出力を生成し得る。エンジン間のこのような通信交換は、システムの様々なセキュリティ機能に影響を与える。特定の場合において、ロックアウトエンジン409は、端末が暗号化エンジンによって受信されるオンラインモード(すなわち、ネットワーク対応)にあることを示す出力を生成し得る。受信した出力は、暗号化エンジン474が秘密鍵を用いてトランザクションに署名することを抑制し得る。
【0201】
コンテンツ署名モジュール432は、ハッシュモジュール478および暗号化モジュール480を含む。一実施形態では、コンテンツ署名モジュール432は、コールドストレージデバイス上の署名なしトランザクションに署名するように構成される。署名済みのトランザクションは、例えば、署名済みのトランザクションをブロックチェーンアクセサモジュール416に提供することによって、サービスプロバイダサーバに送信される。一実施形態では、システム内の各デバイスは、コンテンツ署名モジュール432を含む。
【0202】
ハッシュモジュール478は、トランザクションデータ413(例えば、符号なしトランザクション)などのデータを取得し、ハッシュ関数をトランザクションデータ413に適用して、トランザクションのハッシュ値を生成する。
【0203】
暗号化モジュール480は、ハッシュモジュール478からのハッシュ値および秘密鍵458を入力データとして使用する。秘密鍵458は、ハッシュ値を暗号化するために使用される。暗号化モジュールは、暗号化アルゴリズムを入力データに適用し、デジタル署名済みのトランザクションを生成する。デジタル署名は、メモリ404に格納されることができる。
【0204】
検証モジュール434は、ハッシュモジュール478および復号モジュール482を含む。検証モジュール434は、端末上に復号モジュール482を含まなくてもよい。一実施形態では、検証モジュール434は、ブロックチェーントランザクションのデジタル署名(例えば、コンテンツ署名モジュール432を使用して作成されたデジタル署名)を検証するように構成される。検証モジュール434は、トランザクションデータが転送中に変更されていないこと、および送信者がデータの所有者であることを確認するために使用されることができる。
【0205】
復号モジュール482は、デジタル署名(デジタル署名済みのトランザクションなど)を復号する。復号モジュール482は、トランザクションに署名するために使用された秘密鍵に関連付けられた公開鍵と、復号アルゴリズムへのデジタル署名とを提供する。復号モジュール482は、復号アルゴリズムを介して第1のハッシュ値を出力する。
【0206】
検証モジュール434のハッシュモジュール478は、コンテンツ署名モジュール432と同じハッシュ関数/アルゴリズムをトランザクションデータに適用して、第2のハッシュ値を生成する。
【0207】
一実施形態では、検証モジュール434は、(復号モジュール482からの)第1のハッシュ値を(ハッシュモジュール478からの)第2のハッシュ値と比較する。ハッシュ値が同じである場合、検証モジュール434はトランザクションを検証する。ハッシュ値が異なる場合、検証モジュール434はトランザクションを検証しない。トランザクションの検証に失敗すると、検証モジュール(または他のモジュール)がメッセージを生成し、システムパーティの他のエンティティに送信され、トランザクションの検証が失敗したことを警告し得る。一実施形態では、システム内の各デバイスは、検証モジュール436を含む。
【0208】
コンテンツ署名モジュール432および検証モジュール434は、障害のあるデバイスが発見されたときにシステム全体に警告しながら、システムの完全性を保護するのに役立つ。
【0209】
プロセッサ402はまた、鍵生成/導出モジュール488を含む。鍵生成モジュール488は、端末のプロセッサ402に配置されている。鍵生成モジュール488はまた、コールドストレージにおいて見出され得る。
【0210】
プロセッサ402はまた、復号モジュール490を含む。復号モジュール490は、トランザクションを表示するために使用される。復号モジュール490は、端末のプロセッサ402およびコールドストレージのプロセッサ402に配置され得る。
【0211】
一実施形態では、端末のプロセッサ402は、通信モジュール424、マルチパーティ回復分配モジュール470、モード切り替えモジュール486を含む。ロックアウトエンジン409の他のモジュールは、インフラストラクチャプロバイダ端末/サーバ(または端末/サーバのクラスタ)のプロセッサ402によって実行される。
【0212】
ここで図5を参照すると、一実施形態に係る、本開示のシステムのためのセットアップ方法500が示される。方法500は、安全なブロックチェーントランザクションを行うためのシステムをセットアップするために使用されることができる(例えば、図3のシステム300)。
【0213】
502において、端末320およびコールドストレージデバイス324が提供される。コールドストレージデバイス324は、いくつかの処理能力を備えた専用の記憶装置(例えば、フラッシュドライブ、ハードドライブなど)である。エンドユーザは、端末320(および好ましくはコールドストレージデバイス324)を含むハードウェアシステムを、システムプロバイダ、サービスプロバイダ、またはベンダーから調達する。調達ソースは、端末320およびコールドストレージデバイス324のカスタマイズのレベルに依存し得る。調達ソースはまた、システムプロバイダサーバ328と通信することを許可された機器のタイプおよび起源に関して、システムプロバイダによって設定された制限のレベルに依存し得る。想定される制限は、不正防止対策、一部の組織に必要なマネーロンダリング防止コンプライアンス、およびその他のコンプライアンス要件を含む。
【0214】
コールドストレージデバイス324は、隔離されている。コールドストレージデバイス324は、端末320と自由に通信することができない。
【0215】
503で、エンドユーザは、サービスプロバイダでエンドユーザアカウントを作成する。
【0216】
504で、サービスプロバイダ及びシステムプロバイダの両方が公開鍵を提供する。公開鍵は、様々な方法で端末320に渡され得る。好ましくは、公開鍵は、システムプロバイダまたはサービスプロバイダがコールドストレージデバイス324上で先に鍵を渡した場合であっても、端末320内に存在する。
【0217】
506で、コールドストレージデバイス324の電源を入れると(すなわち、コールドストレージデバイス324を端末320に接続する)、端末320上の自動化されたユーザインターフェースが、システム300のセットアップを通してユーザを案内する。セットアップは、セキュリティ機能が効果的に配置されて従われるように、システム300の全てのセキュリティ機能を実施する。これは、コールドストレージデバイスから実行でき、デバイスに関する情報を収集して署名し、信頼性を検証するためにプリロードされた鍵で暗号化する。
【0218】
スイッチコネクタ344を切り替えることによって中間物理リンクからコールドストレージデバイスを切断すると、セットアップは完了する。別の実施形態では、この方法は、恒久的にオフラインである特別に細工されたデバイス上で実行される。特定の例では、銀行などの信頼できるサードパーティが、特別に細工されたデバイスを保持して、ユーザが物理的にオンサイトで鍵を生成する場合がある。
【0219】
コールドストレージデバイス324は、任意選択で、506で端子320に接続されている。他の実施形態では、506での動作は、端末320に接続されていないコールドストレージデバイス324を使用して実行することができる。
【0220】
510で、コールドストレージデバイス324に格納されたウォレットのための暗号化鍵が確立される。ウォレットの暗号化鍵は、暗号化アルゴリズムを使用して作成される。一実施形態では、暗号化アルゴリズムは完全なAES-256暗号化である。ユーザがアカウントの秘密鍵を回復することができることになるマスターシードが生成される。そのマスターシードは、後続の全てのノードのツリー構造のマスターノードを生成する関数に渡される。一実施形態では、関数はHMAC-SHA512である。これにより、マスターが同じ鍵チェーンとそれに関連付けられたアドレスを決定論的に導出することになるため、ウォレットの回復が効果的に可能になる。
【0221】
また、510では、格納データの暗号化鍵がコールドストレージデバイスに確立される。暗号化鍵は、後で作成されたウォレットを暗号化するために使用されることができる。
【0222】
暗号化鍵は、パスフレーズ、PIN(コールドストレージ情報が収集および検証された場合)、生体認証、または暗号化自体を保護するための適切で準拠した方法の任意の組み合わせである。
【0223】
512で、シードが生成される。シードは128ビット以上のエントロピーを有し得る。このシードから、操作メカニズムが確立される。このメカニズムは、ニーモニックセンテンス、QRコード(登録商標)などの形をとり得る。
【0224】
また、512では、フラグメント化されたバックアップが作成される。ユーザは、保護するフラグメントの数を選択することができる(または、サードパーティがユーザ、すなわち安全なストレージプロバイダ/カストディ(custody)の暗号化されたコピーを格納するように準備する)。回復は、mのうちのnのシナリオ(m of n scenario)に従う。一実施形態では、mのうちのnのシナリオは、以下の要件を尊重する。
【0225】
ここで、oはエンドユーザに必要なフラグメントの数である。
【0226】
ここで、mはシードを回復するために必要なフラグメントの最小数である。
【0227】
ここで、nはフラグメントの総数である。
【0228】
ここで、pはサービスプロバイダによって格納されたフラグメントの数である。
【0229】
ここで、qはシステムプロバイダによって格納されたフラグメントの数である。
【0230】
o>=1エンドユーザが少なくとも1つのバックアップフラグメントを所有している。
【0231】
m>=2である。
【0232】
m>=o+1である。
【0233】
生成された鍵の半分よりも大きいm>=n/2がバックアップを再作成するために存在する必要がある。
【0234】
n>=o*3;->陰(implicit)のn>=3である。
【0235】
p>=o、q>=oであり、サービスプロバイダ及びシステムプロバイダはそれぞれ、少なくともエンドユーザと同じ数のフラグメントを有する。
【0236】
m>o、m>p、m>qであり、エンドユーザもサービスプロバイダもシステムプロバイダも、自身でバックアップを回復することはできない。
【0237】
514で、システム300は、ユーザに属する秘密/公開鍵ペアを生成し、鍵ペアをコールドストレージデバイス324上のコールドストレージウォレットに格納する。一実施形態では、鍵ペアを生成するための導出方法は、1つまたは複数のブロックチェーンと互換性があるように選択される。一実施形態では、BIP32およびBIP44プロトコルは、再び、複数のブロックチェーンと互換性があるために使用される派生の例であり得る。
【0238】
また、514で、マスタールート鍵が生成される。マスタールート鍵はシードから生成される。マスタールート鍵は、510で確立された暗号化鍵で暗号化される。
【0239】
516で、子鍵ペアが導出される。
【0240】
ここで図6を参照すると、一実施形態に係る、BIP32の階層的な決定論的(HD)ウォレットフォーマットプロトコル600の図が示される。HDウォレットフォーマットプロトコル600は、コールドストレージデバイス(例えば、図3のコールドストレージデバイス324)上で実行される。BIP32プロトコル600は、階層的な決定論的鍵作成および転送プロトコルである。BIP32プロトコル600を使用して、システム(たとえば、図3のシステム300)は、階層内の親鍵から子鍵を作成することができる。
【0241】
BIP32プロトコル600は、子導出関数604を使用する。BIP32プロトコル600(または他のHDプロトコル)を使用するウォレットは、HDウォレットと呼ばれることがある。プロトコル600は、シード606、マスター秘密鍵608、ウォレット/アカウント612、ウォレットチェーン616、およびアドレス620を含む。
【0242】
HDウォレットは、いくつかの「アカウント」612として編成されている。アカウント612には番号が付けられ、デフォルトのアカウント("")は番号0である。クライアントは、複数のアカウント612をサポートする必要はない。サポートしない場合は、デフォルトのアカウントのみを使用する。各アカウント612は、2つの鍵ペアチェーン:内部チェーンおよび外部チェーンを含む。外部鍵チェーンは、新しい公開アドレスを生成するために使用される。内部鍵チェーンは、他の全ての操作(アドレスの変更、生成アドレス、通信する必要のないもの)に使用される。これらに個別の鍵チェーンをサポートしていないクライアントは、全てに外部鍵チェーンを使用する必要がある。m/i/0/kは、マスターm608から派生したHDウォレットのアカウント番号iの外部チェーンのk番目の鍵ペアに対応する。m/i/1/kは、マスターm608から派生したHDウォレットのアカウント番号iの内部チェーンのk番目の鍵ペアに対応する。
【0243】
図5に戻ると、518で、システム300は、コールドストレージデバイス324上にオフラインウォレットを確立する。オフラインウォレットは暗号化され得る。一実施形態では、オフラインウォレットは、ビットコイン用の暗号化された「wallet.dat」ファイルである。オフラインウォレットは、特定のウォレットの秘密鍵を含む。したがって、ウォレット用に作成されたトランザクションに署名することができる。一実施形態では、オフラインウォレットは、一種の階層的な決定論的ウォレットである。階層的な決定論的ウォレットの場合、鍵はツリーベースのデータ構造から派生し、オフラインウォレットが決定論的方法で将来のアドレスを決定できるようにする。一実施形態では、BIP32およびBIP44プロトコルは、HDビットコイン(または他のコイン)ウォレットを作成するために利用されることができる。これは、小売業者/販売者が、相互に同期されていない可能性のある複数の売り場のシステム(point of sales system)に「ジャストインタイム(just-in-time)」または「オンザフライ(on the fly)」でアドレスを提供できる必要があるユースケースでも重要になる。また、これらの売り場のシステムが秘密鍵へのアクセスを要求するのを抑制する。これにより、売り場のシステムの侵害が、成功した攻撃者が商人のウォレットの支出を制御する秘密鍵にアクセスできることを意味しないことが保証される。
【0244】
また、518で、エンドユーザは、端末上のエンドユーザアカウントにログインし(該当する場合)、エンドユーザデバイスの登録を確認する。
【0245】
一実施形態では、エンドユーザは、端末320上でマルチ署名ボールトの作成を完了し得る。マルチ署名ボールトは、マルチ署名(「m/n」)ウォレットを含み得る。m/nウォレットは、コールドストレージデバイス324に格納され得る。マルチ署名ウォレットは、トランザクションが有効であると見なされ、検証/確認のためにブロックチェーンにブロードキャストする準備ができているために、複数の署名を必要とするウォレットである。マルチ署名ウォレットは、一方的なアクションを抑制し得る。マルチ署名ウォレットは、銀行の従業員が金庫の外側にあるアーマチュアから貸金庫のロックを解除し、クライアントが自身の鍵を用いて貸金庫自体のロックを解除する、物理的な銀行における金庫のマルチ鍵貸金庫と考えることができる。
【0246】
524で、サービスプロバイダ及びシステムプロバイダは、それぞれのエンドでマルチ署名ボールトの作成を完了する。
【0247】
マルチ署名ウォレットは、好ましくは、少なくとも2要素認証(すなわち、2要素のうちの2)ウォレットである。マルチ署名ウォレットは、システムプロバイダサーバ328と同期する。システムプロバイダは、第2の必要な署名として機能する。同期は、HTTPSなどの通信メカニズムを介して実行され得る。
【0248】
マルチ署名アプローチは、1つ又は複数のサードパーティを含み得る。サードパーティは、n>=2のn番目の署名を表す。第2の署名としてシステムプロバイダとの2/2要素認証以上のマルチ署名スキーマが必要である。他の実施形態では、nの値が2以上であるマルチ署名スキーマが使用され得る。マルチ署名スキーマでnの値を2以上に増やすことは、エンドユーザがウォレットを介して対話したい信頼できるサードパーティのサービスプロバイダの数に依存し得る。または、選択されたマルチ署名スキーマは、サードパーティ(サービスプロバイダ?)自身によって確立された制限に依存し得る。
【0249】
マルチ署名ウォレットは、システムプロバイダがウォレット内のアセットを一方的に転送できない(たとえば、資金を使う)ことができないことをユーザに保証する。
【0250】
マルチ署名ウォレットは、システムプロバイダがトランザクションの有効性を検証することを可能にし、トランザクションの検証を高速化できる。
【0251】
マルチ署名ウォレットは、未署名のトランザクションが、それぞれのデバイス上のエンドユーザ、システムプロバイダ、およびサービスプロバイダによって署名されるプロセスを提供し得る。したがって、プロセスは、秘密鍵を使用して受信デバイスによって署名されることになる、未署名のまたは部分的に署名済みのトランザクションの送信を含み得る。部分的に署名済みのトランザクションまたは未署名のトランザクションに署名するプロセスは、マルチ署名ウォレットの構成に応じて何度でも実行され得る。
【0252】
方法500のステップ全体を通して、端末320への接続および端末320からの接続が制限される。端末320は、システムプロバイダサーバ328の外部からの着信接続を受け入れないように構成される。端末320はまた、安全な通信のみを開始するように構成される。安全な通信は、システムプロバイダサーバ328などの信頼できるサーバのセットのみが端末320と通信することを可能にする。安全な通信は、端末320によって要求されなければならない。システムプロバイダサーバ328から端末320への全ての安全な通信は暗号化される。
【0253】
端末320の完全性は、通信が端末328によって開始されるたびに、システムプロバイダサーバ328によってチャレンジされ、検証される。検証が失敗した場合、システムプロバイダサーバ328は、端末320との通信を停止する。システムプロバイダサーバ328は、端末320のいずれか1つまたは複数、署名パーティ、およびマルチ署名認証の全てのパーティにアラートを発行する。アラートは、端末328の完全性を検証できなかったことを示す。検証されていない完全性を有する端末328上で作成されたトランザクションは、他の認証パーティによって署名されない。これはサービスプロバイダを含み、サードパーティを含む場合がある。
【0254】
ここで図7を参照すると、一実施形態に係る、安全なブロックチェーントランザクションを実行するためのシステムを操作するための方法700が示される。方法700は、図6のプロトコル600を実装することによってなど、システムをセットアップした後に使用されることができる。一実施形態では、方法700は、システム300を操作するために使用されることができる。方法700は、通信ネットワーク(例えば、図3のネットワーク336)を介してブロックチェーンアセットのトランザクションを安全に実行するために使用することができる。
【0255】
704で、端末(例えば、図3の端末320)およびコールドストレージデバイス(例えば、図3のコールドストレージデバイス324)が提供される。端末は、コールドストレージが有効な状態であり得る。端末320は、オフラインであり得る。端末320は、ログオフされ得る。コールドストレージデバイス324は、取引されるブロックチェーンアセットのウォレットを含む。この段階では、端末320およびコールドストレージ324は接続されていない。
【0256】
コールドストレージデバイス324は、隔離されている。コールドストレージデバイス324は、端末320と自由に通信することができない。
【0257】
706で、ユーザは、ユーザに関連付けられたシステム資格を使用して、端末(例えば、端末320)を介してシステムにログインする。資格は、サービスプロバイダまたはシステムプロバイダによってユーザに提供され得る。ユーザは、トランザクションスキームの任意の点であり得る。たとえば、ユーザは、送信者、受信者、仲介者、レビュー担当者などであり得る。
【0258】
708で、ユーザは、1つまたは複数の所望のアセットを選択し、トランザクションメタデータ(例えば、受取人、金額、手数料など)を作成する。次に、ユーザは、トランザクションがシステムプロバイダサーバによって作成されることを要求する。
【0259】
端末のユーザは、コールドストレージウォレットからブロックチェーンアセットのトランザクションを選択し得る。ユーザは、コールドストレージデバイスに格納されている秘密鍵を使用して、選択したトランザクションに署名する。システムがマルチパーティ認証プロセスを実装する実施形態では、トランザクションは、この段階で部分的にのみ署名され、認証パーティからの少なくとも1つの他の署名を必要とする。
【0260】
710で、トランザクションは、分配される。システムプロバイダサーバは、トランザクションを端末に送り返す。システムプロバイダはまた、サービスプロバイダによる承認のためにトランザクションをサービスプロバイダに送信する。システムプロバイダはまた、システムプロバイダによる内部承認のために、トランザクションをシステムプロバイダのコールドストレージに送信する。システムプロバイダサーバは、トランザクションを端末、サービスプロバイダ、およびシステムプロバイダのコールドストレージに同時に送信し得る。
【0261】
712で、トランザクションは、端末320からコールドストレージデバイス324にプルされる(pulled)。これは、複数の端末およびコールドストレージデバイスで実行され得る。
【0262】
714で、トランザクションがレビューされる。トランザクションは、トランザクションが期待どおりで意図されていることを確認するために、コールドストレージでレビューされ得る。トランザクションが期待どおりで意図されている場合、トランザクションは署名され得る。そうしないと、トランザクションが破棄され得る。トランザクションは、各エンティティの適切なビジネスロジックに従って、承認を確認するためにレビューされ得る。コールドストレージは、署名済みのトランザクションを端末に転送する。
【0263】
システムは、状態の切り替えを経ることができる。一実施形態では、状態の切り替えは、図3のスイッチコネクタ344などのスイッチコネクタによって処理される。状態の切り替えは、システムをコールドストレージ状態/モードからネットワーク状態/モードに切り替えることを含む。状態の切り替えは、順次または同時であり得る。状態の切り替えは、端末をコールドストレージデバイスから切断することを含む。これは、端末のコールドストレージポートの無効化を含み得る。コールドストレージ状態/モードにある一方で、端末は、データ転送が起こり得るように、コールドストレージデバイスに通信可能にリンクされている。
【0264】
コールドストレージデバイスから端末を切断すると、端末とコールドストレージデバイスとの間の通信/データ転送が妨げられる。状態の切り替えは、端末をネットワークに接続することを含む(つまり、端末はオンラインである)。順次的な状態の切り替えでは、端末をコールドストレージデバイスから切断した後、端末をネットワークに接続する。この段階で、端末は外部に面した通信ネットワークから切断され、コールドストレージがトランザクションをプルできるようになる。
【0265】
716で、端末は、通信ネットワークを介してシステムプロバイダサーバ(例えば、図3のシステムプロバイダサーバ328)に接続する。端末は、部分的に署名済みのトランザクション(例えば、708で作成され、714で署名された部分的に署名済みのトランザクション)をシステムプロバイダサーバ328にアップロードする。部分的に署名済みのトランザクションを受信すると、システムプロバイダサーバは、マルチ署名認証プロセス(例えば、方法700のマルチ署名認証プロセス)に従って、他の認証者に署名を要求する。他の認証パーティは、システムプロバイダを含み、1つ又は複数の信頼できるサードパーティ又はサービスプロバイダを含む場合がある。他の認証パーティ(システム/サービスプロバイダ/サードパーティ)は、選択されたブロックチェーンアセットの署名を提供する。それぞれの個々のコールドストレージは、署名済みのトランザクションを端末に転送する。
【0266】
718で、端末は、署名済みのトランザクションをシステムプロバイダサーバに送信する。システムプロバイダサーバは、受信した部分的に署名済みのトランザクションを、サービスプロバイダの部分的に署名済みのトランザクションおよび自身の署名(適切な場合)とマージ(merge)する。いくつかの実施形態では、システムプロバイダサーバは、この段階で署名済みのトランザクションのマージのみを実行し得る。いくつかの実施形態では、端末は、システムプロバイダサーバとして機能し、部分的に署名済みのトランザクションの交換ならびにそれらのマージ操作を完了することができる。
【0267】
マージされたトランザクションは、システムプロバイダサーバでローカルに検証されることができる。ローカル検証は、トランザクションをチェーンにブロードキャストする前に実行され得る。システムプロバイダは、ブロードキャストの前に結果を検証することのみを目的として、マイニングソフトウェアのカスタムコードに対して、特定のトランザクションの任意の時間を確認することができる場合がある。そうすることにより、システムプロバイダは、確認番号の小さいトランザクションが承認済みとしてマークされることを許可するリスクを減らすことができる。これはサブネットワーク内のトランザクションにのみ影響し、確認に達しない場合は後でトランザクションを再処理できることを知っていると、リスクレベルが低下する可能性がある。信頼水準は、ブロックチェーン上の十分な数のノードによって確認されるまで、受け取った資金を「凍結」しながら、ゼロ確認トランザクションでさえ承認済みとしてマークできるようなものである可能性がある。
【0268】
オフチェーンバッチ処理などの他の既存の方法が使用され得る。このような方法は、トランザクションが署名されてから承認されたと見なされるまでの遅延の合計を少なくし得る。このような方法は、ブロック密度をオフチェーンバッチ処理で最適化でき、サブネットワークに関連するトランザクションのオンチェーン確認レベルに早く到達できる、低速チェーンのスケーリングの問題に役立ち得る。
【0269】
720で、システムプロバイダサーバは、トランザクションをブロックチェーンにブロードキャストする。
【0270】
次に、様々なグラフィカルインターフェースについて説明する。グラフィカルインターフェースは、ユーザが本開示のシステムの様々な機能にアクセスして使用することを可能にし得る。
【0271】
ここで図8を参照すると、一実施形態に係る、ログインステージ802のグラフィカルインターフェース800が示される。グラフィカルインターフェース800は、端末(例えば、図3の端末320)上のユーザに提示され得る。グラフィカルユーザインターフェース800は、ユーザサービスプロバイダのアカウントデータを入力および/または受信するために使用され得る。アカウントデータは、サービスプロバイダのユーザアカウントに関連付けられたログイン資格情報であり得る。ログイン資格は、アカウント識別子及びパスワードを含み得る。ログイン資格を正常に入力することにより、ユーザは、サービスプロバイダの1つ又は複数のサーバ/インフラストラクチャによって提供される機能にアクセスし得る。機能は、端末上、またはネットワーク接続を介して端末を介してアクセス可能なサービスプロバイダサーバ/インフラストラクチャ上に格納および実行される1つまたは複数のソフトウェアモジュールを含み得る。提供される機能は、特定のアカウントに関連付けられ得る。このような機能を提供するソフトウェアモジュールの例を図4に示す。
【0272】
804で、ユーザはアカウント識別子を入力することができる。たとえば、ユーザはアカウントに関連付けられた電子メールアドレスを入力し得る。806で、ユーザはパスワードを入力することができる。パスワードは英数字の組み合わせであり得る。808で、ユーザは、ログイン情報を検証させるサインイン機能を選択することができ、検証された場合、ユーザは、サービスプロバイダアカウントに関連付けられたさらなる機能にアクセスすることを許可する。
【0273】
ここで図9を参照すると、一実施形態に係る、ブロックチェーン選択段階のグラフィカルインターフェース900が示される。グラフィカルインターフェース900は、本開示のシステム(例えば、図3のシステム300)を使用してアクセスされることができ、端末(例えば、図3の端末320)上のユーザに提示されることができる。
【0274】
グラフィカルユーザインターフェース900を使用して、ユーザは、ブロックチェーンシステムデータを入力および/または受信することができる。例えば、ブロックチェーン904の様々なオプションは、グラフィカルインターフェース900を介して提示される。ユーザは、特定のブロックチェーン(および関連付けられたデジタルアセットのタイプ)を選択して、選択したブロックチェーンを使用してトランザクションまたはその他の機能(アカウントの管理など)を実行することができる。場合によっては、システムは、ユーザがアカウントを持っているか、以前に取引したことがあるブロックチェーンに対応する選択可能なブロックチェーンのオプションを提示する。この場合、ユーザはオプションを追加することができる可能性がある。その他の場合、システムは、システムプロバイダおよび/またはサービスプロバイダの機能によってサポートされるブロックチェーンオプションを提示する。
【0275】
グラフィカルインターフェース900は、取引されているデジタルアセットのタイプに基づいて、ブロックチェーンオプションをグループに分割し得る。例えば、グラフィカルインターフェース900は、暗号通貨908、スマートコントラクト910、およびデータ912のためのオプションを提供する。ブロックチェーンのオプションは、名前またはその他の識別子(ロゴなど)である選択可能なアイコンを使用して提示され得る。グラフィカルインターフェース900を介して、ユーザは、取引したいブロックチェーンを選択することができる。
【0276】
「スマートコントラクト」という用語は、本明細書では、金銭、コンテンツ、財産、共有、または価値のあるものの交換を容易にすることができるコンピュータコードを説明するために使用される。ブロックチェーンで実行すると、スマートコントラクトは、特定の条件が満たされたときに自動的に実行される自己動作型コンピュータプログラムのようになる。スマートコントラクトはブロックチェーン上で実行されるため、検閲(censorship)、ダウンタイム、詐欺(fraud)、またはサードパーティの干渉の可能性なしに、プログラムされた通りに実行される。
【0277】
ここで図10を参照すると、一実施形態に係る、グラフィカルインターフェース1000が示される。グラフィカルインターフェース1000は、本開示のシステム(例えば、図3のシステム300)を使用してアクセスされることができ、端末(例えば、図3の端末320)上のユーザに提示されることができる。
【0278】
グラフィカルインターフェース1000を使用して、ユーザはボールト1004を選択することができる。ボールトは、ウォレット、アドレス、または受信者アカウントと呼ばれることもあり、そのような用語は、本開示では交換可能に使用されることが理解される。ボールトは、ユーザアカウントに関連付けられ得る。場合によっては、ユーザアカウントに関連付けられた複数のボールトがあり得る。グラフィカルインターフェース1000は、ドロップダウンリストを介するなどして、ユーザアカウントに関連付けられたボールトをリストとして提示し得る。ユーザはまた、受信者アドレス1008を選択または入力することができる。受信者アドレスは、ブロックチェーントランザクションを介したデジタルアセットの意図された受信者を含み得る。場合によっては、システムはユーザアカウントに関連付けられた以前の受信者を格納し、リスト形式で提供し得る。
【0279】
ボールトおよび受信者アドレスを含むトランザクション情報を選択または入力した後、ユーザは、送信オプション1012または受信オプション1016を選択することができる。選択したオプションに応じて、選択または入力したトランザクション情報は、提案されたトランザクションを生成するために使用されることができる。
【0280】
グラフィカルインターフェース1000はまた、1020に格納され、ユーザアカウントに関連付けられた以前のトランザクションを表示するためのオプションを含む。以前のトランザクションは、トランザクション履歴アイコンまたはタブを選択することによってアクセスおよび表示することができ、選択すると、グラフィカルインターフェース1000内に、ポップアップタイプのウィンドウとして、または別個のグラフィカルインターフェースとして以前のトランザクション情報を提示し得る。
【0281】
ここで図11を参照すると、一実施形態に係る、グラフィカルインターフェース1100が示される。グラフィカルインターフェース1100は、本開示のシステム(例えば、図3のシステム300)を使用してアクセスされることができ、端末(例えば、図3の端末320)上のユーザに提示されることができる。
【0282】
グラフィカルインターフェース1100を使用して、ユーザはブロックチェーントランザクションを提出することができ、ユーザがデジタルアセットを受信者に転送する(すなわち、「送信」操作)。
【0283】
グラフィカルインターフェース1100は、ウォレット1104を含む。ウォレット1104は、ユーザアカウントに関連付けられたウォレットであり、潜在的に、ユーザアカウントに関連付けられたボールトに関連付けられたウォレットである。ユーザアカウントが複数のウォレットを含む場合、ユーザは、取引する特定のウォレット1104を選択し得る。ウォレットはアドレス1108を含む。場合によっては、ウォレット1104は、ユーザが選択できる複数のアドレスを含み得る。アドレスは、非対称鍵ペアの公開鍵を表し得る。ウォレット1104およびアドレス1108の情報は、構成に応じて、ユーザによって入力または選択され得る。
【0284】
ユーザは、トランザクション金額を金額ボックス1112に入力することができる。金額1112を入力すると、システムは、提案されたトランザクションのトランザクション手数料1116を自動的に計算して表示し得る。
【0285】
トランザクション情報が完成し、ユーザに受け入れられると、ユーザは提出アイコン1118を選択してトランザクションを提出することができる。
【0286】
ここで図12を参照すると、一実施形態に係る、グラフィカルインターフェース1200が示される。グラフィカルインターフェース1200は、本開示のシステム(例えば、図3のシステム300)を使用してアクセスされることができ、端末(例えば、図3の端末320)上のユーザに提示されることができる。
【0287】
グラフィカルインターフェース1200を使用して、ユーザは、システムを使用して作成されたブロックチェーントランザクション(例えば、図11のグラフィカルインターフェース1100を介して作成されたトランザクション)の請求書1204を作成することができる。グラフィカルインターフェース1200は、トランザクションに関する受取人住所を表示する受取人/受取人住所1208を含む。グラフィカルインターフェース1200は、支払人の口座情報1212を含む。支払人の口座情報1212は、トランザクション金額1216、トランザクション手数料金額1218、および合計トランザクション金額1224を表示することができる。表示されたトランザクション情報1208、1212、1216、1218を確認すると、ユーザは、提出機能1228を選択して、トランザクションの請求書を生成することができる。
【0288】
ここで図13を参照すると、一実施形態に係る、グラフィカルインターフェース1300が示される。グラフィカルインターフェース1300は、本開示のシステム(例えば、図3のシステム300)を使用してアクセスされることができ、端末(例えば、図3の端末320)上のユーザに提示されることができる。
【0289】
グラフィカルインターフェース1300を使用して、ユーザは、トランザクションに署名するための鍵をフェッチ(fetch)し、その鍵を使用してトランザクションに署名することができる。ユーザは、ユーザのアカウントに関連付けられた1つまたは複数のボールトからボールト1304を選択することができる。
【0290】
ユーザは、ユーザアカウントに関連付けられた1つまたは複数の未署名のトランザクションから、未署名のトランザクション1308を選択することができる。未署名のトランザクションは、システムに格納されるときに識別子を与えられることができ、その結果、ユーザが識別子を介して潜在的に選択するように、未署名のトランザクションが表示される。
【0291】
ボールト1304および未署名のトランザクション1308を選択すると、ユーザは、フェッチオプション1312を選択することができ、システムは、署名のために鍵を検索する。鍵がフェッチされると、ユーザは署名オプション1316を選択することができる。ユーザが署名オプションを選択すると、システムは鍵を使用して以前に未署名のトランザクションに署名し、署名済みのトランザクション(または場合によっては部分的に署名済みのトランザクション)を生成する。
【0292】
ここで図14を参照すると、システム1400のブロック図が示される。システム1400は、既存の方法を使用して安全なブロックチェーントランザクションを行うための例示的なアプローチを示す。
【0293】
システム1400は、ブロックチェーンネットワーク1402を含む。ブロックチェーンネットワーク1402は、ビットコインブロックチェーンメインネットであり得る。ブロックチェーンネットワーク1402は、ブローダーネットワーク1404(broader network)内で動作する。ブローダーネットワーク1404は、インターネットであり得る。ブローダーネットワーク1404は、公開または秘密であり得る。
【0294】
ブロックチェーンネットワーク1402は、そのデバイスおよび典型的なネットワーク接続を含むブロックチェーンの制限を示す。ブロックチェーンネットワーク1402は、複数のブロックチェーンデバイス1406-1、1406-2、および1406-3を含む。ブロックチェーンデバイス1406-1、1406-2、1406-3は、ネットワーク接続1408を介して接続されている。
【0295】
ブローダーネットワーク1404は、複数のネットワークデバイス1410-1、1410-2、および1410-3を含む。ネットワークデバイス1410-1、1410-2、1410-3は、ネットワーク接続1412を介して接続されている。
【0296】
ブロックチェーンデバイス1406-1、1406-2、1406-3およびネットワークデバイス1410-1、1410-2、1410-3は、異なるタイプのデバイスであり得る。
【0297】
ネットワークデバイスの1つまたは複数は、1つまたは複数のブロックチェーンデバイスと相互接続され得る。例えば、ネットワークデバイス1410-3は、クロスネットワーク接続1414を介してブロックチェーンデバイス1406-03に接続され得る。
【0298】
システム1400は、コールドストレージデバイス1416を含む。コールドストレージデバイス1416は、ユーザに関連付けられている。コールドストレージデバイス1416は、ネットワーク1404およびブロックチェーンネットワーク1402の外部に存在する。コールドストレージデバイス1416は、ブロックチェーン装置1406-1に接続されている。接続は、物理接続1418を含む(すなわち、論理接続だけではない)。
【0299】
ここで図15を参照すると、一実施形態に係る、サブネットワークシステム1500のブロック図が示される。有利なことに、サブネットワークシステム1500は、図14に示されるインフラストラクチャおよびコンポーネントを使用してシステム1400の上に確立され、ブロックチェーントランザクションのセキュリティを改善することができる。
【0300】
システム1500は、システムプロバイダ(「ネットワークオペレータ」とも呼ばれる)、サービスプロバイダ、およびエンドユーザを含む。
【0301】
システム1500は、ネットワークオペレータのコールドストレージデバイス1502、サービスプロバイダのコールドストレージデバイス1504、およびエンドユーザのコールドストレージデバイス1506を含む。コールドストレージデバイス1502、1504、1506は、それぞれ、ネットワークオペレータ、サービスプロバイダ、およびエンドユーザに関連付けられている。
【0302】
コールドストレージデバイス1502、1504、1506は、コンピューティング機能を備えた任意の形態の装置であり得る。一実施形態では、ネットワークのコールドストレージデバイス1502は、サーバまたはサーバのクラスタである。
【0303】
コールドストレージデバイス1502、1504、1506は、任意の外向きに面するネットワークの外部に位置する。
【0304】
コールドストレージデバイス1502、1504、1506は、データを交換する物理的手段を含む。コールドストレージデバイス1502、1504、1506は、アウトバウンド接続/ペアリングのみを許可するように構成される。コールドストレージデバイス1502、1504、1506は、データ交換のプロセスを開始し、着信接続またはペアリングを拒否するように構成される。
【0305】
システム1500は、ネットワークオペレータまたはサービスプロバイダが、ブローダーネットワーク1404に接続されているデバイス上にウォレットストレージを持たないように構成される。
【0306】
システム1500は、ネットワークオペレータ端末デバイス1508、サービスプロバイダ端末1510、およびエンドユーザ端末1512を含む。サービスプロバイダ端末1510およびエンドユーザ端末1512はそれぞれ、安全な接続1514を介してネットワークオペレータ端末1508に接続されている。ネットワークオペレータ端末1508、サービスプロバイダ端末1510、およびエンドユーザ端末1512は、それぞれ、それぞれのコールドストレージに接続されている。エンドユーザ端末1512は、ブローダーネットワーク1404に位置し、ネットワーク接続1412を介してネットワークデバイス1410-3に接続されている。
【0307】
ネットワークオペレータ端末1508は、任意の形態のコンピューティングデバイスであり得る。一実施形態では、ネットワークオペレータ端末1508のデバイスは、サーバまたはサーバのクラスタである。ネットワークオペレータ端末1508は、ネットワークオペレータとデータを交換する責任がある。
【0308】
ネットワークオペレータ端末1508は、サービスプロバイダ端末1510およびエンドユーザ端末1512とデータを交換し得る。 例えば、未署名のトランザクションは、署名のために適切なパーティ(すなわち、サービスプロバイダ端末1510および/またはエンドユーザ端末1512)に送信される前に、ネットワークオペレータ端末1508上で作成され得る。
【0309】
ネットワークオペレータ端末1508は、ブロックチェーンネットワーク1402とブローダーネットワーク1404との間の中間に配置されて示されている。場合によっては、ネットワークオペレータ端末1508は、ブロックチェーンネットワーク1402内に直接存在し得る(すなわち、ノードとして機能し得る)。ネットワークオペレータ端末1508がブロックチェーンネットワーク1404にない場合でも、ネットワークオペレータ端末1508は、ブロックチェーンネットワーク1402のノードに(直接的または間接的に)接続して、トランザクションのブロードキャストするまたはブロックチェーンをクエリ/探索するなどのアクションを実行することができる。
【0310】
一実施形態では、エンドユーザは、ブローダーネットワーク1404に接続された鍵を格納するためにデバイスを使用することを決定する。そのような場合、エンドユーザのコールドストレージデバイス1506およびエンドユーザ端末1512は、ブローダーネットワーク1404内の1つのデバイスと見なされるべきである。
【0311】
サービスプロバイダ端末1510は、ブロックチェーンネットワーク1402またはブローダーネットワーク1404上に位置し得る。サービスプロバイダ端末1510は、ブロックチェーンネットワーク1402およびブローダーネットワーク1404の両方に接続され得る。サービスプロバイダ端末1510が、ブローダーネットワーク1404上のブロックチェーンネットワーク1402に位置するか、または両方のネットワーク1402、1404に接続されるかどうかは、サービスプロバイダ次第であり得る。たとえば、サービスプロバイダは、ブロックチェーンの独自の分析処理を実行して、要求されたトランザクションの意思決定を改善したい場合がある。別の例では、サービスプロバイダは、ネットワークオペレータ端末1508で利用可能な情報のみに依存し得る。
【0312】
別の実施形態では、サービスプロバイダ端末1510は、ブローダーネットワーク1404から隔離され、プライベートネットワークを介してサブネットワークオペレータ端末の第2の層に接続され得る。
【0313】
ネットワークオペレータは少なくとも1つのネットワークオペレータのコールドストレージデバイス1502および1つのネットワークオペレータ端末1508を有し、必要に応じて追加の層を追加できるため、異なるシナリオは、ネットワークオペレータの制限内で共存し得る。追加の層は互いに分離され得る。ウォレットと端末との組み合わせの推奨される分離されたコールドストレージを採用するという特定のエンドユーザの決定はまた、他のエンドユーザが自分で決定する能力に影響を与えない。
【0314】
図16に示されるように、別の実施形態では、サブネットワークオペレータは、エンドユーザが選択したウォレット管理ソリューションを使用して、エンドユーザがサブネットワーク1500に入るのを可能にし得る。
【0315】
たとえば、図16に示すように、ブロックチェーンデバイス1406-3はサブネットワークに入ることができる。ブロックチェーンデバイス1406-3(およびコールドストレージデバイス1416)のユーザは、サブネットワークシステム1500のエンドユーザになる。
【0316】
サブネットワークオペレータは、ブロックチェーンデバイス1406-3に関連付けられたエンドユーザがサブネットワークオペレータによって確立された最小要件を満たすことができる場合、ブロックチェーンデバイス1406-3がサブネットワークに参加することを許可する。最小要件は、サービスプロバイダとの関係の確立、標準化された互換性のあるウォレットの所持、マルチ署名対応、フラグメント化されたバックアップ対応、フラグメント化されたバックアップをサブネットワークオペレータ及びサービスプロバイダに安全に送信する可能性があることなどのうちの1つ又は複数を含む。
【0317】
サブネットワークシステム1500によって処理されるトランザクションは、様々な経路をとり得る。パスは、デフォルトのパス/動作と、デフォルトのパス/動作の1つ又は複数の変形を含み得る。
【0318】
管理対象サブネットワーク1500は、外部操作、内部操作、インバウンド操作、およびアウトバウンド操作を含む。各タイプの操作は、システム1500によってそれに与えられる特定の処理を有することができ、または特定の方法でシステム1500によって管理され得る。
【0319】
システム1500は、以下のような操作のデフォルトの動作を含み得る。
【0320】
外部操作は、管理対象サブネットワーク1500の外部にある2人のユーザ間の操作を含む。外部操作は、管理対象サブネットワークの存在による影響を受けない。これにより、サブネットワークマネージャは、使用可能なブロックチェーンに任意の追加の変更することなく、又は新しいブロックチェーンの作成の必要なく、動作できる。管理対象サブネットワーク1500の外部で操作したいユーザは、引き続き操作できる。
【0321】
内部操作は、(管理対象サブネットワーク1500の観点から)2人の内部ユーザ間の操作を含む。内部操作は他のブロックチェーントランザクションと同様に承認できるが、サブネットワークマネージャはトランザクションの両端のステータスを認識しているため、高い信頼性がある。操作は、管理対象ブロックチェーンサブネットワーク1500の確認プロセス拡張技術(confirmations process enhancement technology)を使用して、ほぼリアルタイムで承認され得る。承認は条件付きであり得る。たとえば、承認は、その時点で51%の攻撃が行われていないことを条件とする場合がある。
【0322】
インバウンド操作は、外部ウォレット(管理対象サブネットワーク1500の観点から)から内部ウォレットへの操作を含む。インバウンド操作は、システム1500によって許可され得るが、さらなる検証のために遅延され得る(例えば、AML、収入源(source of revenue)、詐欺防止、51%攻撃など)。
【0323】
アウトバウンド操作は、内部ウォレットから外部ウォレットへの操作を含む(管理対象サブネットワーク1500の観点から)。アウトバウンド操作は、サブネットワークマネージャによってブロックされ得る。アウトバウンド操作のブロックは、盗難、詐欺、マネーロンダリング、ミス、または管理対象サブネットワーク1500からリソースを流出させるその他の望ましくない動作を抑制するために実装され得る。
【0324】
ネットワーク通信接続1514、1516、および1616、ならびにデバイス1502、1504、および1506は、システムプロバイダサブネットワークを示す。
【0325】
ネットワーク接続1414、1418、1516、および1616は、クロスドメイン通信を示す。
【0326】
一実施形態では、ネットワーク接続1408、1412、および1514のうちの任意の1つまたは複数は、ポイントツーポイント、トンネリング、LAN、vLAN、ドメイン間接続であり得る。これは、ネットワーク接続1408、1412、および1514のネットワーク接続の単なる一例のタイプを表し、限定的ではないことが理解される。他のネットワーク接続が考えられる。
【0327】
コールドストレージデバイス1416は、ネットワーク接続1616を介してブロックチェーン装置1406-3に接続されている。ネットワーク接続1616は、ネットワーク接続1516からのサブネットワークへの異なる経路である。
【0328】
ここで図17を参照すると、一実施形態に係る、サブネットワークシステム1500のデフォルトの動作の変形例1700が示される。
【0329】
変形例1700では、特定のアウトバウンド操作がシステム1500によって許可され得る。アウトバウンド操作は、事前にクリアまたは承認された受信者、または承認された個別の管理対象サブネットワークなど、特定の場合に遅延後に許可される場合がある。新しい技術の進歩によりコンプライアンス及び/又はセキュリティが提供される場合、アウトバウンド操作が可能になる場合がある。アウトバウンド操作は、システムプロバイダの管理(規制、コンプライアンス、マネーロンダリング防止など)の対象となり得る。
【0330】
ここで図18を参照すると、一実施形態に係る、サブネットワークシステム1500のデフォルトの動作に関する別の変形例1800が示される。
【0331】
システム1500は、デフォルトの動作を参照して説明されるように、厳密なアウトバウンド操作ポリシーを含み得る。厳密なアウトバウンド操作ポリシーを補償するために、システム1500は、リソース1802の仲介または交換を含み得る。証券会社1802は、管理対象サブネットワーク1500の内部にあり、管理対象サブネットワーク1500内でグローバルである。
【0332】
証券会社1802は、エンドユーザが管理対象サブネットワーク1500内の証券会社または取引所タイプのサービスにアクセスすることを可能にし得る。エンドユーザは、サービスプロバイダとの関係に縛られている間にそうすることができる場合がある。
【0333】
一例では、サービスプロバイダは病院であり、仲介業者1802は、エンドユーザの個人医療記録のチェックイン/チェックアウトを可能にする。
【0334】
別の例では、サービスプロバイダは銀行であり、取引所1802は、ユーザアカウントからエンドユーザのウォレットへの直接の法定紙幣交換を可能にする。
【0335】
別の例では、サービスプロバイダは、不動産当局、規制当局、または代理店である。不動産アクターは、仲介業者1802を介して、全てのタイトルおよび関連文書をエンドユーザが所有する不動産などに提供することができる場合がある。
【0336】
上記の説明は、1つまたは複数の装置、方法、またはシステムの例を提供するが、他の装置、方法、またはシステムは、当業者によって解釈されるように、特許請求の範囲内にあり得ることが理解されよう。
図1
図2
図3A
図3B
図3C
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18