JP2023027775A - プライバシーを維持した監査可能アカウントのためのコンピュータ実装方法、コンピュータシステム及びコンピュータプログラム(プライバシーを維持した監査可能アカウント) - Google Patents
プライバシーを維持した監査可能アカウントのためのコンピュータ実装方法、コンピュータシステム及びコンピュータプログラム(プライバシーを維持した監査可能アカウント) Download PDFInfo
- Publication number
- JP2023027775A JP2023027775A JP2022129877A JP2022129877A JP2023027775A JP 2023027775 A JP2023027775 A JP 2023027775A JP 2022129877 A JP2022129877 A JP 2022129877A JP 2022129877 A JP2022129877 A JP 2022129877A JP 2023027775 A JP2023027775 A JP 2023027775A
- Authority
- JP
- Japan
- Prior art keywords
- token
- tokens
- transaction message
- computer
- transaction
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 55
- 238000004590 computer program Methods 0.000 title claims description 21
- 238000012550 audit Methods 0.000 claims abstract description 23
- 230000004044 response Effects 0.000 claims description 17
- 238000012546 transfer Methods 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 7
- 238000012795 verification Methods 0.000 claims description 6
- 238000010200 validation analysis Methods 0.000 claims description 3
- 238000013459 approach Methods 0.000 abstract description 4
- 238000013461 design Methods 0.000 abstract description 3
- 238000007689 inspection Methods 0.000 abstract 1
- 238000003860 storage Methods 0.000 description 37
- 230000006870 function Effects 0.000 description 21
- 238000012545 processing Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 12
- 238000013475 authorization Methods 0.000 description 11
- 230000004048 modification Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- RWSOTUBLDIXVET-UHFFFAOYSA-N Dihydrogen sulfide Chemical compound S RWSOTUBLDIXVET-UHFFFAOYSA-N 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004900 laundering Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0407—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
- H04L63/0421—Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3218—Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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 involving digital signatures
Abstract
【課題】非集中化は、設計上、台帳にアクセスできる誰もがユーザのトランザクションの履歴を読むことができるという、プライバシーに対する懸念をもたらす。【解決手段】ブロックチェーンネットワーク上のプライバシーを維持した監査可能アカウントのためのアプローチ。このアプローチは、ブロックチェーンネットワークに関連付けられたトークンをエンコードすることを含み得る。エンコードすることは、現在のエポックに関するデータを含み得、ここで、エポックは、特定の時間範囲である。トークンは、監査エンティティによる検査のために、ユーザから受け取られ得る。このアプローチは、エンコードされたトークンに監査チェックを実行することを含み得る。監査チェックが成功すれば、監査エンティティは、トークンが現在のエポックにおいて生成されたことを検証するとともにトークンを次のエポックのために監査可能にする、監査トランザクションをサブミットし得る。【選択図】図3
Description
本開示は、概して、ブロックチェーントランザクション処理の分野に関し、より詳細には、ユーザのトランザクションのプライバシーを維持しながらブロックチェーントランザクションを監査することに関する。
ブロックチェーンは、ピアツーピアネットワーク内の複数のノードから成る分散型台帳である。各ノードが台帳の同一のコピーを有し、ブロックチェーンの運営をコントロールする中央権限が存在しないので、ブロックチェーンは非集中型システムとなる。ブロックチェーンにおけるブロックは、暗号手段によって一緒にリンクされたブロックのチェーンに追加のブロックを追加することにより記録される「トランザクション」である。ブロックチェーン内の各ブロックは、先行ブロックのハッシュ、タイムスタンプ、及びブロックチェーンの始点におけるジェネシスブロックまでのトランザクションデータを含む。ブロックをブロックチェーンに追加するには、新しいブロックの有効性検証を行うために、ノードがコンセンサスプロトコル(例えば、プルーフオブワーク、プルーフオブステークなど)に従う必要がある。
ブロックチェーンは、許可制であっても無許可制であってもよい。許可制ブロックチェーンは、ノードがブロックチェーンにアクセスする又は変更を行うことができるようになる前に何らかの方式で有効性検証されなければならないプライベートブロックチェーンである。いくつかの許可制ブロックチェーンでは、ブロックチェーン内の当事者が、ブロックチェーンの一部にアクセスすること、又はバイラテラル若しくはマルチラテラルなトランザクションに参加することが制限され得る。無許可制ブロックチェーンは、通常、本質的にオープンソースであり、インターネット接続ができれば誰もがトランザクションを送信し、コンセンサスプロトコルの実行に参加することが可能である。
非集中化は、設計上、台帳にアクセスできる誰もがユーザのトランザクションの履歴を読むことができるという、プライバシーに対する懸念をもたらす。
本開示の実施形態は、プライバシーを維持した監査可能アカウントのためのコンピュータ実装方法、システム、及びコンピュータプログラムを含む。実施形態は、少なくとも1つのトークンを生成する段階を含み得、ここで、少なくとも1つのトークンは、オーナー、タイプ、値、現在のエポック、譲渡可能性、シード、及びr値によってエンコードされ、ここで、エポックは、特定の時間範囲である。さらに、実施形態は、ゼロ知識証明を生成する段階を含み得、ここで、ゼロ知識証明は、少なくとも1つのトークンのオーナーがブロックチェーンネットワークの登録ユーザであることを示す。さらに、実施形態は、第1のトランザクションメッセージをアセンブルする段階を含み得、ここで、トランザクションメッセージは、少なくとも1つのトークン、ゼロ知識証明、及び発行者の公開鍵を含む。また、実施形態は、第1のトランザクションメッセージに署名する段階であって、署名は、発行者の公開鍵に関連付けられたプライベートキーに基づく、段階と、トランザクションメッセージをブロックチェーンネットワークにブロードキャストする段階とを含み得る。
上記概要は、本開示の示されている各実施形態又はすべての実装形態を説明することを意図するものではない。
本開示に含まれる図面は、本明細書に組み込まれ、その一部をなす。これらは、本開示の実施形態を示しており、明細書と共に、本開示の原理を説明するのに役立つ。図面は、特定の実施形態の単なる例示であり、本開示を限定するものではない。
本明細書において説明される実施形態は、様々な修正及び代替形態が可能であるが、それらの具体的な内容は、例として図面に示されているとともに詳細に説明される。しかしながら、説明される特定の実施形態が限定的な意味に解釈されてはならないことを理解されたい。むしろ、本開示の趣旨及び範囲に入るすべての修正、均等物、及び代替物を包含することが意図されている。
本開示の態様は、概して、ブロックチェーントランザクションにおけるプライバシーの維持の分野に関し、より詳細には、会計サービスを用いるブロックチェーンを介したプライバシーを維持したトークン交換に関する。分散型台帳技術(「DLT」)により、中間段階のないトークンシステムが生み出された。これらのシステムは、エンドユーザが中央権限なしにトークンを交換することを可能にする。DLTの基礎となるコンセンサスメカニズムは、台帳内のデータの正確性及び交換の最終性を保証する。しかしながら、非集中化は、設計上、台帳にアクセスできる誰もがユーザのトランザクションの履歴を読むことができるという、プライバシーに対する懸念をもたらす。これにより、検証可能性を犠牲にすることなくユーザのトランザクションを分かりにくくすることに焦点を当てた活発な研究領域が生じている。すなわち、台帳を維持するノードは、トランザクションのコンテンツが隠されている場合でも、依然としてトランザクションの有効性検証を行うことができる。
一実施形態では、ゼロ知識証明が、トランザクションのコンテンツを隠すために使用され得る。ゼロ知識証明は、ブロックチェーンネットワーク上の権限のない閲覧者からトランザクションのコンテンツを隠しながらトランザクションを検証する目的を達成する方法を提供する。トランザクションのコンテンツを隠すことで、権限付与された当事者による監査及びトランザクションの監視が阻止されてはならない。例えば、反マネーロンダリング規制は、銀行に、不審なトランザクションを検査し、必要であれば不審なトランザクションの終了を阻止することを要求する。
本発明の実施形態は、ユーザがブロックチェーンネットワーク上でプライベートにトランザクトすることを可能にするとともに、オーディタ又は監視エージェントが会計タスクを実行することを可能にするアプローチを提供し得る。より詳細には、権限付与された当事者は、エポック中にユーザが受け取るトークンの量を学習することができる。ユーザが各エポックで所有しているトークンのすべてを申告しなければ、あらゆる未申告のトークンが焼却されて失われる。
図を参照する前に、本明細書において概して説明されるとともに図に示されるような当該のコンポーネントが、様々な異なる構成で配置及び設計され得ることは容易に理解されよう。したがって、添付図面に表されるような、方法、装置、コンピュータ可読媒体、及びシステムのうちの少なくとも1つの実施形態の以下の詳細な説明は、特許請求される適用の範囲を限定することを意図するものではなく、選択された実施形態を代表するものに過ぎない。
本明細書全体を通して記載されるような当該の特徴、構造、又は特性は、1又は複数の実施形態において任意の好適な方式で組み合わせても除去してもよい。例えば、本明細書全体を通した「例示的な実施形態」、「いくつかの実施形態」という語句、又は他の同様の文言の使用は、その実施形態に関連して記載される特定の特徴、構造、又は特性が、少なくとも1つの実施形態に含まれ得ることを指す。したがって、本明細書全体を通した「例示的な実施形態」、「いくつかの実施形態において」、「他の実施形態において」という語句、又は他の同様の文言の出現は、必ずしもすべてが同じグループの実施形態を指すわけではなく、記載される特徴、構造、又は特性は、1又は複数の実施形態において任意の好適な方式で組み合わせても除去してもよい。さらに、図において、要素間の任意の接続は、示されている接続が一方向又は双方向の矢印でも、一方向通信若しくは双方向通信又はその両方を許容できる。また、図面に示されている任意のデバイスは、異なるデバイスとすることができる。例えば、モバイルデバイスが情報を送信していることが示される場合、情報を送信するために有線デバイスが使用されてもよい。
加えて、「メッセージ」という用語が実施形態の説明において使用される場合があるが、本出願は、多くのタイプのネットワーク及びデータに適用され得る。さらに、特定のタイプの接続、メッセージ、及び信号が、例示的な実施形態に示されている場合があるが、本出願は、特定のタイプの接続、メッセージ、及び信号に限定されるものではない。
本明細書では、ブロックチェーンネットワーク上で監査され得る、プライバシーを維持したトランザクションを可能にするために、特化したブロックチェーンコンポーネントを用いる方法、システム、及びコンピュータプログラム製品が詳述される。
いくつかの実施形態において、方法、システム、若しくはコンピュータプログラム製品、又はその組み合わせは、互いに通信する複数のノードを含む、分散ストレージシステムである非集中型データベース(ブロックチェーンなど)を用いる。非集中型データベースは、相互に信頼されていない当事者間のレコードを維持することが可能な分散型台帳に類似する、アペンド専用の不変データ構造を含み得る。信頼されていない当事者は、本明細書ではピア又はピアノードと称される。各ピアは、データベースレコードのコピーを維持しており、分散されたピア間でコンセンサスが達成されないと、単一のピアがデータベースレコードを修正することはできない。例えば、ピアは、コンセンサスプロトコルを実行して、ブロックチェーンストレージトランザクションの有効性検証を行い、ストレージトランザクションを複数のブロックへとグループ化し、複数のブロックにわたるハッシュチェーンを構築することができる。この処理は、一貫性のために、必要な分だけ、ストレージトランザクションを順序付けることによって、台帳を形成する。
様々な実施形態において、許可制ブロックチェーン若しくは無許可制ブロックチェーン又はその組み合わせを使用することができる。パブリック、すなわち無許可制のブロックチェーンでは、誰もが特定のアイデンティティを持つことなく(例えば、匿名性を保持しながら)参加することができる。パブリックブロックチェーンは、ネイティブな暗号通貨を伴うことができ、プルーフオブワーク又はプルーフオブステークなどの様々なプロトコルに基づくコンセンサスを使用することができる。一方、許可制ブロックチェーンのデータベースは、資金、品物、(プライベートな)情報などを交換するビジネスのような、共通の目的を持ちながらも互いを完全には信頼していないエンティティのグループにおけるセキュアなインタラクションを提供する。
さらに、いくつかの実施形態において、方法、システム、若しくはコンピュータプログラム製品、又はその組み合わせは、非集中型ストレージスキームに合わせて調整された「スマートコントラクト」又は「チェーンコード」と称される任意のプログラマブルロジックを動作させる、ブロックチェーンを利用することができる。場合によっては、システムチェーンコードと称される、管理機能やパラメータに特化したチェーンコードが存在してもよい(例えば、異なるブロックチェーンへのアクセスやブリッジングブロックチェーンクライアントの管理など)。いくつかの実施形態において、方法、システム、若しくはコンピュータプログラム製品、又はその組み合わせは、ブロックチェーンデータベースの改ざん防止特性と、承認又は承認ポリシーと称される、ノード間の基礎的な合意とを利用する信頼された分散型アプリケーションである、スマートコントラクトをさらに用いることができる。
承認ポリシーは、チェーンコードが、承認のために必要なピアノードのセットの形態においてトランザクションの承認者を指定することを可能にする。承認ポリシーで指定されたピア(例えば、承認者)にクライアントがトランザクションを送信すると、トランザクションが実行され、トランザクションの有効性検証が行われる。有効性検証の後、トランザクションは順序付けフェーズに入り、ここでは、コンセンサスプロトコルが使用されて、複数のブロックにグループ化された承認済みトランザクションの順序付けられたシーケンスが生成される。
いくつかの実施形態において、方法、システム、若しくはコンピュータプログラム製品、又はその組み合わせは、ブロックチェーンシステムの通信エンティティであるノードを用いることができる。「ノード」は、同じ物理的サーバ上で様々なタイプの複数のノードが実行できるという意味で、論理機能を実行し得る。ノードは、トラストドメインにグループ化されるとともに、これらを様々な方式でコントロールする論理エンティティに関連付けられている。ノードには、承認者(例えば、ピア)にトランザクション呼び出しをサブミットし、順序付けサービス(例えば、順序付けノード)にトランザクションプロポーザルをブロードキャストするクライアント又はサブミットクライアントノードなど、様々なタイプが含まれ得る。
別のタイプのノードは、クライアントがサブミットしたトランザクションを受け取り、トランザクションをコミットし、ブロックチェーントランザクションの台帳の状態及びコピーを維持することができるピアノードである。ピアは、承認者の役割を持つこともできるが、これは必須ではない。順序付けサービスノード又はオーダラは、すべてのノードのために通信サービスを実行するノードであり、トランザクションのコミット/確定、及びブロックチェーンのワールドステート(通常はコントロール及びセットアップ情報を含む初期ブロックチェーントランザクションの別名)の修正の際の、システム内のピアノードの各々へのブロードキャストのような配信保証を実装する。
いくつかの実施形態において、方法、システム、若しくはコンピュータプログラム製品、又はその組み合わせは、ブロックチェーンのすべての状態遷移のシーケンシングされた耐改ざん性のあるレコードである台帳を用いることができる。状態遷移は、参加している当事者(例えば、クライアントノード、順序付けノード、承認者ノード、ピアノードなど)によりサブミットされたチェーンコード呼び出し(例えば、トランザクション、譲渡、交換など)から生じ得る。参加している各当事者(ピアノードなど)は、台帳のコピーを維持することができる。トランザクションの結果として、資産キーと値のペアのセットが、作成、更新、削除などのような1又は複数のオペランドとして台帳にコミットされ得る。台帳には、不変なシーケンシングされたレコードをブロック単位で格納するために使用されるブロックチェーン(別称、チェーン)が含まれる。また、台帳には、ブロックチェーンの現在の状態を維持する状態データベースが含まれる。
いくつかの実施形態において、本明細書に記載される方法、システム、若しくはコンピュータプログラム製品、又はその組み合わせは、ハッシュでリンクされたブロックとして構築されているトランザクションログであるチェーンを用いることができ、各ブロックは、Nのトランザクションのシーケンスを含み、ここで、Nは、1に等しいか又はそれよりも大きい。ブロックヘッダは、先行ブロックのヘッダのハッシュだけでなく、ブロックのトランザクションのハッシュを含む。このようにして、台帳上のすべてのトランザクションが、一緒にシーケンシングされ、暗号的にリンクされ得る。したがって、ハッシュリンクを断ち切ることなく、台帳データを改ざんすることは不可能である。直近で追加されたブロックチェーンブロックのハッシュは、その前に到来したチェーン上のすべてのトランザクションを表し、これにより、すべてのピアノードが一貫した信頼される状態にあることを確実にすることができる。チェーンは、ピアノードファイルシステム(例えば、ローカル、アタッチトストレージ、クラウドなど)に格納され、ブロックチェーンワークロードのアペンド専用性を効率的にサポートすることができる。
不変台帳の現在の状態は、チェーントランザクションログに含まれるすべてのキーについての最新の値を表す。現在の状態は、チャネルに知られている最新のキー値を表すので、ワールドステートと称される場合がある。チェーンコード呼び出しは、台帳の現在の状態データに対してトランザクションを実行する。これらのチェーンコードインタラクションを効率的にするために、キーの最新の値が状態データベースに格納されてもよい。状態データベースは、単に、チェーンのトランザクションログ内へのインデックス付きビューであってもよく、したがって、いつでもチェーンから再生成できる。状態データベースは、ピアノードの起動時や、トランザクションを受け入れる前に、自動的にリカバー(又は生成)されてもよい。
本明細書で説明され示される当該解決手段のいくつかの利点には、ゼロ知識証明を用いてユーザプライバシーを維持するとともにブロックチェーンネットワーク上のトランザクションの監査を可能にする新たな新規のブロックチェーンコンポーネントを実装するための方法、システム、及びコンピュータプログラム製品が含まれる。例示的な実施形態は、監査エージェント又は監視エージェントが必要なタスクを実行することを可能にするとともに、ユーザプライバシーを維持するという課題を解決する。
ブロックチェーンが従来のデータベースと異なるのは、ブロックチェーンが中央ストレージではなく、むしろ非集中型の不変でセキュアなストレージであり、ノードがストレージ内のレコードの変更を共有し得る点であることに留意されたい。ブロックチェーンに固有であり、ブロックチェーンの実装を助けるいくつかの性質は、限定されるものではないが、不変台帳、スマートコントラクト、セキュリティ、プライバシー、非集中化、コンセンサス、承認、アクセシビリティなどを含み、これらは本明細書においてさらに説明される。様々な態様によれば、本明細書に記載されるシステムは、ブロックチェーンに固有かつユニークな不変アカウンタビリティ、セキュリティ、プライバシー、許可制非集中化、スマートコントラクトのアベイラビリティ、承認、及びアクセシビリティのために実装される。
特に、例示的な実施形態は、従来のデータベースに比べて多数の利点を提供する。例えば、本実施形態は、ブロックチェーンを介して、ブロックチェーンに固有かつユニークな不変アカウンタビリティ、セキュリティ、プライバシー、許可制非集中化、スマートコントラクトのアベイラビリティ、承認、及びアクセシビリティを提供する。
一方、従来のデータベースを使用して例示的な実施形態を実装することができなかったのは、すべての当事者をネットワーク上におかず、信頼された連携を生じさせず、検証可能なクレデンシャルを伴うトランザクションの効率的なコミットメントを提供しないからである。従来のデータベースは、改ざん防止ストレージを提供せず、資産交換が中断された場合に資産関連コスト(例えば、処理力、手数料などのようなコンピューティングコスト)の維持を提供しない。よって、ブロックチェーンネットワークを用いる本明細書に記載の提案される実施形態は、従来のデータベースでは実装することができない。
ここで、図1Aを参照すると、本開示の実施形態に係るブロックチェーンアーキテクチャ100が示されている。いくつかの実施形態において、ブロックチェーンアーキテクチャ100は、例えば、ブロックチェーンノード102のグループのような特定のブロックチェーン要素を含み得る。ブロックチェーンノード102は、1又は複数のブロックチェーンノード、例えばピア104~110(これら4つのノードは単なる例として示されている)を含んでいてもよい。これらのノードは、ブロックチェーントランザクションの追加や有効性検証処理(コンセンサス)など、いくつかのアクティビティに参加する。ピア104~110のうちの1又は複数は、承認ポリシーに基づいてトランザクションの承認若しくは推奨又はその両方を行ってもよく、ブロックチェーンアーキテクチャ100内のすべてのブロックチェーンノード102に対して順序付けサービスを提供してもよい。ブロックチェーンノードは、ブロックチェーン認証を開始し、ブロックチェーンレイヤ116に格納されているブロックチェーン不変台帳への書き込みを試みてもよく、そのコピーは、支えとなる物理的インフラストラクチャ114に格納されてもよい。ブロックチェーン構成には、参加者によって求められるカスタマイズされた構成に従って作成でき、各自の状態を維持し、各自の資産をコントロールし、外部情報を受け取ることができる、格納されたプログラム/アプリケーションコード120(例えば、チェーンコード、スマートコントラクトなど)にアクセスしてこれを実行するためにアプリケーションプログラミングインタフェース(API)122にリンクされている、1又は複数のアプリケーション124が含まれ得る。これをトランザクションとして展開し、分散型台帳へのアペンドを介して、すべてのブロックチェーンノード104~110にインストールすることができる。
ブロックチェーンベース又はプラットフォーム112は、ブロックチェーンデータ、サービス(例えば、暗号トラストサービス、仮想実行環境など)、及び、新たなトランザクションを受け取って格納し、データ項目へのアクセスを試みるオーディタにアクセスを提供するために使用され得る、支えとなる物理的コンピュータインフラストラクチャの様々なレイヤを含み得る。ブロックチェーンレイヤ116は、プログラムコードを処理して物理的インフラストラクチャ114を関与させるのに必要な仮想実行環境へのアクセスを提供するインタフェースを呈してもよい。暗号トラストサービス118は、資産交換トランザクションなどのトランザクションを検証し、情報をプライベートに保つのに使用され得る。
図1Aのブロックチェーンアーキテクチャ100は、ブロックチェーンプラットフォーム112によって呈される1又は複数のインタフェース、及び提供されるサービスを介して、プログラム/アプリケーションコード120を処理及び実行し得る。アプリケーションコード120は、ブロックチェーン資産をコントロールし得る。例えば、アプリケーションコード120は、データを格納及び譲渡することができ、スマートコントラクトと、実行の対象となる条件又は他のコード要素を有する関連付けられたチェーンコードとの形態でピア104~110によって実行され得る。非限定的な例として、スマートコントラクトは、資産/リソースの譲渡、資産/リソースの生成などを実行するために生成され得る。スマートコントラクト自体を使用して、権限付与(例えば、資産譲渡ルール、制限など)、アクセス要件(例えば、データストアの、オフチェーンデータストアの、トランザクションに参加し得る対象者などの)、若しくは台帳の使用、又はその組み合わせに関連付けられるルールを識別することができる。例えば、検証可能なクレデンシャル126は、ブロックチェーンレイヤ116に含まれる1又は複数の処理エンティティ(例えば、仮想マシン)によって処理され得る。結果128は、複数のリンクされた共有ドキュメントを含み得る(例えば、各々のリンクされた共有ドキュメントは、資産交換スキーマ、発行者ポリシーなどに基づいて、選択されたピアのグループによってコミットされる、検証可能なクレデンシャル126に関するスマートコントラクトの発行を記録している)。いくつかの実施形態において、物理的インフラストラクチャ114は、本明細書に記載されるデータ/情報/資産などのいずれかを取得するために用いられてもよい。
スマートコントラクトは、ハイレベルアプリケーション及びプログラミング言語を介して作成され、次に、ブロックチェーン内のブロックに書き込まれてもよい。スマートコントラクトは、ブロックチェーン(例えば、ブロックチェーンピアの分散型ネットワーク)に登録される、格納される、若しくは複製される、又はその組み合わせである実行可能コードを含み得る。トランザクションは、スマートコントラクトに関連付けられた条件が満たされたことに応答して実行され得るスマートコントラクトコードの実行である。スマートコントラクトの実行は、デジタルブロックチェーン台帳の状態に対する信頼された修正をトリガし得る。スマートコントラクトの実行によってもたらされたブロックチェーン台帳に対する修正は、1又は複数のコンセンサスプロトコルを通して、ブロックチェーンピアの分散型ネットワーク全体で自動的に複製され得る。
スマートコントラクトは、キーと値のペアのフォーマットでブロックチェーンにデータを書き込み得る。さらに、スマートコントラクトコードは、ブロックチェーンに格納されている値を読み取って、アプリケーション動作においてこれらを使用することができる。スマートコントラクトコードは、様々な論理演算の出力をブロックチェーンに書き込むことができる。コードは、仮想マシン又は他のコンピューティングプラットフォームにおける一時データ構造を作成するのに使用され得る。ブロックチェーンに書き込まれるデータは、パブリックとすることができるか、若しくは暗号化され、プライベートとして維持することができるか、又はその両方である。スマートコントラクトによって使用/生成される一時データは、供給される実行環境によってメモリに保持され、次に、ブロックチェーンのために必要なデータが識別されたら、削除される。
チェーンコードは、追加の特徴と共に、スマートコントラクトのコード解釈を含み得る。本明細書に記載されるように、チェーンコードは、コンピューティングネットワーク上に展開され、コンセンサス処理中に一緒にチェーンバリデータによって実行され有効性検証される、プログラムコードであり得る。チェーンコードは、ハッシュを受け取り、ブロックチェーンから、事前に格納されている特徴抽出部を使用することによって作成されたデータテンプレートに関連付けられているハッシュを取得する。ハッシュ識別子のハッシュと、格納されている識別子テンプレートデータから作成されたハッシュとがマッチする場合、チェーンコードは、リクエストされたサービスに対する権限付与キーを送信する。チェーンコードは、暗号の詳細に関連付けられたデータをブロックチェーンに書き込むことができる(例えば、これによって、資産などに関連付けられたトランザクションをコミットする)。
図1Bは、例示的な実施形態に係る、ブロックチェーンのノード間のブロックチェーントランザクションフロー150の一例を示している。図1Bを参照すると、トランザクションフローは、アプリケーションクライアントノード160によって承認ピアノード181に送信されるトランザクションプロポーザル191を含み得る(例えば、いくつかの実施形態において、トランザクションプロポーザル191は、特定のトランザクションに使用される、選択されたピアのセット[ピアノード181~184]を規定するスキーマを含み得る)。承認ピアノード181は、クライアント署名を検証し、チェーンコード関数を実行して、トランザクションを開始することができる。出力は、チェーンコード結果、チェーンコードにおいて読み取られたキー/値バージョンのセット(読み取りセット)、及びチェーンコードに書き込まれたキー/値のセット(書き込みセット)を含み得る。プロポーザル応答192は、認可された場合、承認署名と共にクライアントノード160に送り返される。クライアントノード160は、承認をトランザクションペイロード193へとアセンブルし、これを順序付けサービスノード184にブロードキャストする。順序付けサービスノード184は、次に、順序付けられたトランザクションを、ブロックとして、チャネル上のすべてのピアノード181~183に配信する。ブロックチェーンへのコミットの前に、各ピアノード181~183は、トランザクションの有効性検証を行い得る。例えば、ピアは、正しく割り当てられた指定のピアが結果に署名し、トランザクションペイロード193に対して署名を認証している(例えば、スキーマからのすべての指定されたピアが、トランザクションのブロックチェーンへのコミットメントの有効性検証を行い、認可している)ことを確実にするために、承認ポリシーをチェックしてもよい。
再び図1Bを参照すると、クライアントノード160は、リクエストを構築し、この例では承認者であるピアノード181に送信することにより、トランザクションプロポーザル191を開始する。クライアントノード160は、サポートされているソフトウェア開発キット(SDK)を利用したアプリケーションを含んでいてもよく、SDKは、利用可能なAPIを用いてトランザクションプロポーザル191を生成する。このプロポーザルは、データを読み取る、若しくは台帳に書き込む、又はその両方を行うことができるように、チェーンコード関数を呼び出すためのリクエストである。SDKは、トランザクションプロポーザル191のパッケージを、適切に構築されたフォーマット(例えば、リモートプロシージャ呼び出し(RPC)上のプロトコルバッファ)に縮小し、クライアントの暗号クレデンシャルを取得して、トランザクションプロポーザル191のユニークな署名を生成してもよい。
これに応答して、承認ピアノード181は、(a)トランザクションプロポーザル191が良好に形成されていること、(b)トランザクションが過去に既にサブミットされていないこと(リプレイアタック保護)、(c)署名が有効であること、及び(d)サブミッタ(この例ではクライアントノード160)がそのチャネルで提案された動作を実行するよう適切に権限付与されていることを検証してもよい。承認ピアノード181は、呼び出されたチェーンコード関数への引数としてトランザクションプロポーザル191入力を取得し得る。次に、チェーンコードが、現在の状態データベースに対して実行され、応答値、読み取りセット、及び書き込みセットを含むトランザクション結果が生成される。しかしながら、この時点では台帳に更新は行われない。いくつかの実施形態において、値のセットは、承認ピアノード181の署名と共に、プロポーザル応答192として、アプリケーションが消費するペイロードを解析するクライアントノード160のSDKに戻される。
これに応答して、クライアントノード160のアプリケーションは、承認ピアの署名を検査/検証し、プロポーザル応答を比較して、プロポーザル応答が同じであるかどうかを判定する。チェーンコードが台帳のみを照会した場合、アプリケーションは、クエリ応答を検査し、通常は、トランザクションを順序付けサービスノード184にサブミットしない。クライアントアプリケーションが台帳を更新するために順序付けサービスノード184にトランザクションをサブミットすることを意図する場合、アプリケーションは、指定された承認ポリシーがサブミット前に履行されているかどうかを判定する。ここで、クライアントは、トランザクションに対する複数の当事者のうちの1つのみを含み得る。この場合、各クライアントは各自の承認ノードを有していてもよく、各承認ノードはトランザクションを承認する必要がある。アーキテクチャは、アプリケーションが応答を検査しないことを選択した場合、又はさもなければ未承認のトランザクションを転送した場合でも、承認ポリシーが依然としてピアによって施行され、コミット有効性検証段階で支持されるようになっている。
検査が成功した後、トランザクションペイロード段階193において、クライアントノード160は、承認をトランザクションへとアセンブルし、トランザクションプロポーザル191及びトランザクションメッセージ内の応答を順序付けノード184にブロードキャストする。トランザクションには、読み取り/書き込みセット、承認ピアの署名、及びチャネルIDが含まれる場合がある(例えば、特定の[オフチェーン]データストアが用いられる場合)。順序付けノード184は、その動作を実行するためにトランザクションのコンテンツ全体を検査する必要はなく、その代わりに、順序付けノード184は、単にネットワーク内のすべてのチャネルからトランザクションを受け取り、これらをチャネルごとに時系列に順序付けし、チャネルあたりのトランザクションのブロックを作成してもよい。
トランザクションのブロックは、順序付けノード184からチャネル上のすべてのピアノード181~183に配信される。ブロック内のトランザクション194は、任意の承認ポリシーが履行されることを確実にするために、また、トランザクション実行によって読み取りセットが生成されてから読み取りセット変数に関する台帳状態の変更がないことを確実にするために、有効性検証される。ブロック内のトランザクションには、有効又は無効のタグが付けられる。さらに、段階195において、各ピアノード181~183が、チャネルのチェーンにブロックをアペンドし、有効なトランザクション各々について、書き込みセットが現在の状態データベースにコミットされる。イベントが発行されることで、トランザクション(呼び出し)がチェーンに不変にアペンドされたことがクライアントアプリケーションに通知されるとともに、トランザクションが有効化されたか無効化されたかが通知される。
ここで図2を参照すると、本開示の実施形態に係る、監査可能なトランザクションのプライバシー維持のための例示的なブロックチェーンネットワーク200が示されている。いくつかの実施形態において、ブロックチェーンネットワークは、ピア1 104で動作可能なプライベート監査可能トランザクションエンジン202を備える。プライベート監査可能トランザクションエンジン202は、許可制又は無許可制のブロックチェーンネットワーク上で動作可能なプライベート監査可能トランザクションの生成若しくは実行又はその両方を行うことができるコンピュータプログラムである。プライベート監査可能トランザクションエンジン202はピア1 104で動作可能であるように示されているが、プライベート監査可能トランザクションエンジン202は、ブロックチェーンネットワーク内の1又は複数のブロックチェーンノード102(例えば、ピア2 106、ピア3 108、及びピア4 110)で動作可能であってもよい。さらに、1又は複数のプライベート監査可能トランザクションエンジン202は、ブロックチェーンネットワーク内に、かつブロックチェーンネットワークの特定のチャネル内に、別個のノードとして位置付けられていてもよい。ブロックチェーンネットワーク内の各ピアは、プライベート監査可能トランザクションサービスにおいて、1又は複数の役割で機能し得る。
いくつかの実施形態において、プライベート監査可能トランザクションエンジン202は、エポックをセットアップし、各エポックに関連付けられた世界時計を保持する。エポックは、トランザクションが入り得る既定量の時間(例えば、1時間、2時間、1日など)である。例えば、1又は複数のノードが、ブロックチェーンネットワークに関連付けられた世界時計の保持及び維持を担当し得る。世界時計は、単一の時間帯に基づいてもよく、又は所与の時間でイニシャライズされる24時間制で動作してもよい。さらに、世界時計の維持を担当するピアノードは、エポックが終了するときに通知を送信し、それにしたがってブロックチェーンを更新することができる。
いくつかの実施形態において、プライベート監査可能トランザクションエンジン202は、トランザクションに関連付けられたトークンを生成することができる。トランザクション内で生成されたトークンは、未消費のトランザクション出力に基づく方法において、トークンのオーナーを隠すことができる。例えば、受取人ブロックからのトークンのセットを入力トークンとすることができる。入力トークンは、以前のトランザクションへと追跡可能でなければならない。入力トークンは、プライベート監査可能トランザクションエンジン202によって生成される出力トークンと同じタイプでなければならない。入力トークンの合計値は、生成される出力トークンと同じでなければならない。入力トークンのオーナーは、トランザクションをサインオフするためのプライベートキーを提供しなければならない。入力トークンは、以前のトランザクションにおいて消費されていてはならない。
一実施形態では、プライベート監査可能トランザクションエンジン202は、以下の方式で出力トークンを生成することができる。以下の例は、便宜上、1つの入力トークンからの1つの出力トークンのみに言及することに留意されたい。トランザクション中、プライベート監査可能トランザクションエンジン202により、1つより多くのトークンが生成されてもよい。トークンは、以下を含むデータの部分であり得る:
Tok=commit(owner,type,value,e,transferrable,seed,r)
ここで、commitは、隠れているコンポーネントであり、eは、現在のエポックの識別子である。Transferrableは、トークンが譲渡可能であるか否かを示すブール用語である。Seedは、トークンのシリアルナンバーを生成するために使用されるランダムシードであり、rは、ブラインディングファクタである。
Tok=commit(owner,type,value,e,transferrable,seed,r)
ここで、commitは、隠れているコンポーネントであり、eは、現在のエポックの識別子である。Transferrableは、トークンが譲渡可能であるか否かを示すブール用語である。Seedは、トークンのシリアルナンバーを生成するために使用されるランダムシードであり、rは、ブラインディングファクタである。
一実施形態では、プライベート監査可能トランザクションエンジン202は、トークンを監査し得る。ブロックチェーンネットワーク内の1又は複数のノードが、オーディタ(例えば、ピア2 106、ピア3 108)の役割を占めることができる。例えば、各エポックの最後に、ユーザは、各エポック中に受け取ったトークンを提示する。オーディタは、トークンの鮮度をチェックすることができる。鮮度は、クローズした直近のエポックにおいてトークンが生成されたかどうかの指標である。上記の当該例において、オーディタは、トークン内のeをチェックする。オーディタは、トークンが新鮮であると判定した場合、トークンのステータスを譲渡可能に更新することができる。オーディタは、トークンが新鮮ではないと判定した場合、トークンのステータスを譲渡不可に更新することができる。場合によっては、譲渡不可のトークンは本質的に役に立たないので、焼却される。
一実施形態では、プライベート監査可能トランザクションエンジン202は、オーナーが登録されており、トークンが適切な情報をエンコードすることを示すために、ゼロ知識証明を生成することができる。例えば、発行者は、トークンがオーナー、トークンタイプ、値、e、偽、及びrをエンコードすることを示すゼロ知識証明ψを発行する、ブロックチェーンネットワーク内のノードであり得る。
一実施形態では、プライベート監査可能トランザクションエンジン202は、発行者が署名をメッセージに追加して署名されたトランザクションをサブミットすることを可能にするよう構成されていてもよい。例えば、メッセージは、tok、タイプ、ψ、及びpkIを含み得る(pkIは、発行者の公開鍵を指す)。よって、署名されたトランザクションは、以下のとおりであり得る:
Tx=(issue,tok,owner,type,value,ψ,pkI,σ)。一実施形態では、プライベート監査可能トランザクションエンジン202は、1)発行がその「タイプ」のトークンを作成する許可範囲内にあるかどうか、2)σが公開鍵pkIのもとで有効であるかどうか、及び3)ψが有効なゼロ知識証明であるかどうかをチェックすることにより、オーディタノードがトランザクションを検証することを可能にするよう構成されていてもよい。
Tx=(issue,tok,owner,type,value,ψ,pkI,σ)。一実施形態では、プライベート監査可能トランザクションエンジン202は、1)発行がその「タイプ」のトークンを作成する許可範囲内にあるかどうか、2)σが公開鍵pkIのもとで有効であるかどうか、及び3)ψが有効なゼロ知識証明であるかどうかをチェックすることにより、オーディタノードがトランザクションを検証することを可能にするよう構成されていてもよい。
一実施形態では、プライベート監査可能トランザクションエンジン202は、トークンの所有権を譲渡するトランザクションを生成するよう構成されていてもよい。例えば、入力トークンは、入力トークンが再ランダム化された、以前のトランザクションからの出力トークンであり得る。例えば、関連付けられたエポックがないオリジナルのトークンは、以下のとおり:Tok=commit(owner,type,value,true,--,seed,r)であり得、オリジナルのトークンは、以下の方式、tok'=commit(owner',type,value,false,e,seed',r')で再ランダム化され得る。オーナーが新しいオーナーである場合、eは、現在のエポックシード'であり、r'は、乱数である。さらに、プライベート監査可能トランザクションエンジン202は、ランダム化されたトークンのために新しいシリアルナンバーを生成することができる。例えば、トークンシリアルナンバーは、以下のとおり:sn=VRF(sk,seed)であり得、ここで、VRFは、検証可能な擬似ランダム関数であり、skは、オーナーの秘密鍵である。VRFは、出力の正確性のパブリックに検証可能な証明を提供する。
一実施形態では、プライベート監査可能トランザクションエンジン202は、トークンのオーナーによるゼロ知識証明を生成するよう構成されていてもよい。ゼロ知識証明は、以下のうちの1又は複数を含み得る。Tok"は、有効なトークンのランダム化であり、tok'は、正しく生成されている(すなわち、トークンのタイプ及び値を維持し、transferrableは、偽に設定され、エポックは、現在のエポックである)。オーナーは、ブロックチェーンネットワークの登録ユーザである。Snは、正しくコンピューティングされている(すなわち、snは、オーナーの秘密鍵及びtok"においてエンコードされたシードを使用してコンピューティングされている)。
一実施形態では、プライベート監査可能トランザクションエンジン202は、署名者がトークンの秘密鍵のオーナーを知っていることを示す匿名署名をトークンのオーナーが生成することを可能にするよう構成されていてもよい。例えば、匿名署名をメッセージ(sn,tok",tok',ψ)上のσとする。σは、署名者がtok"におけるオーナーの秘密鍵を知っていることを示す。譲渡トランザクションは、以下のTx=(transfer,sn,tok".tok',ψ,σ)に対応することになる。
一実施形態では、プライベート監査可能トランザクションエンジン202は、ユーザがエポックの最後でトークンを報告することを可能にするよう構成されていてもよい。例えば、ユーザが所有する各トークンについて、以下:オーナー、値、タイプ、e、シード、及びrをオーディタに提供してもよい。オーディタは、オーナーがユーザであるかどうかと、トークンが、提供されたデータとマッチする有効なトランザクションの出力であるかどうかとをチェックすることができる。提供されたデータが有効であれば、オーディタは、トークンを検査済みとしてマークすることができる。
一実施形態では、プライベート監査可能トランザクションエンジン202は、オーディタが検査済みトークン中のデータを変更することを可能にするよう構成されていてもよい。例えば、オーディタは、提示されたトークンをtok=commit(owner,value,type,e,false,seed,r)からtok'=commit(owner,value,type,--,true,seed,r')に変更してもよく、ここで、エポックは、トークンに関連付けられず、トークンが別のユーザに譲渡され得るかどうかのブール値は、真に設定される。さらに、会計のトランザクション全体は、以下のとおりであり得る:tx=(account,tok,tok',ψ,σ)。これにより、Ψは、tok'が、譲渡可能であること及びそのエポックが編集されていることを除いては、tokと同じ情報をエンコードすることを示す、ゼロ知識証明であり、σは、メッセージ(account,tok,tok',ψ)上のオーディタの署名である。
一実施形態では、プライベート監査可能トランザクションエンジン202は、トークンの所有権を変更することなくマージ及び分割トークンを可能にするよう構成されていてもよい。例えば、オーディタは、ユーザが現在のエポックにおけるアカウントセッションに参加した最後の時間を監視することができる。この例において、ブールのtransferrableは、エポックフィールドの存在から除去又は推測され得る。エポックフィールドがオーディタによって設定されている場合は、トークンを費やすことはできないが、エポックフィールドがヌルであれば、トークンを費やすことができる。さらに、プライベート監査可能トランザクションエンジン202は、オーディタが1回のアカウントトランザクションで複数のトークンを監視してバッチすることを可能にするよう構成されていてもよく、これにより、マルチラテラルなトランザクションが順に発生することが可能になる。
一実施形態では、プライベート監査可能トランザクションエンジン202は、トランザクション及びトークンをマージ及び分割するよう構成されていてもよい。例えば、ユーザは、トランザクション又はトークンをマージ又は分割することにより、現在のエポックにおいて参加したトランザクションの数を隠すことができる。トランザクションは、以下の性質を有し得る:transferrableのブールは、偽に設定され、出力におけるオーナーは、入力と同じであり、出力におけるエポックは、入力と同じである。よって、任意のトークン及びトランザクションに関連付けられたデータは、ユーザが以前に所有していたかのようにしか見えないため、オーディタ及びネットワークの他の参加者から隠される。
図2及び本明細書全体を通して具現化され、実装されているように、提示される新しさが乗法的であることに留意されたい。
ここで図3を参照すると、プライバシーを維持した監査可能なブロックチェーントランザクションの例示的な方法300のフローチャートが示されている。いくつかの実施形態において、方法300は、ブロックチェーンネットワーク(図2のブロックチェーンネットワーク200など)におけるプロセッサ、ノード、若しくはピアノード、又はその組み合わせによって実行されてもよい。
いくつかの実施形態において、方法300は、段階302に進み、ここで、プロセッサが、ブロックチェーンアーキテクチャ100内のピア(例えば、ピア1 104、ピア2 106、ピア3 108、ピア4 110)を介して、現在のエポック中のトークンをエンコードする。例えば、プライベート監査可能トランザクションエンジン202は、ユーザが現在のエポック中に受け取った入力トークンをエンコードして、それが現在のエポック中に受け取られたことを示す出力トークンにすることを可能にし得る。
いくつかの実施形態において、方法300は、段階304に進み、ここで、1又は複数のトークンが、ブロックチェーンアーキテクチャ100内のピアを介して、検査のために受け取られる。例えば、プライベート監査可能トランザクションエンジン202は、オーディタノードがブロックチェーンネットワークのユーザからトークンを受け取ることを可能にするよう構成されていてもよい。
いくつかの実施形態において、方法300は、段階306に進み、ここで、監査ノードが、受け取られたトークンの監査チェックを実行する。例えば、プライベート監査可能トランザクションエンジン202は、ブロックチェーンネットワーク内の監査ノードが、受け取られたトークンの監査チェックを実行することを可能にするよう構成されていてもよく、ここで、監査ノードは、トークンが譲渡可能であり、かつ直近のエポックにおいて生成されたかどうかを、チェックして判定することができる。
いくつかの実施形態において、方法300は、段階308に進み、ここで、プライベート監査可能トランザクションエンジン202は、監査ノードによる監査チェックが成功したかどうかを判定するよう構成されていてもよい。例えば、エンコードされたトークンが有効なトランザクションからのものである(例えば、トークンが譲渡可能であり、直近のエポックにおいて生成された)と監査ノードが判定した場合、監査チェックは成功と判定され得る。さらに、監査ノードは、段階302においてユーザによってエンコードされたゼロ知識証明を介して、ユーザがトークンのオーナーであるかどうかを判定することができる。
いくつかの実施形態において、方法300は、段階310に進み、ここで、プライベート監査可能トランザクションエンジン202は、監査チェックをサブミットするよう構成されていてもよい。例えば、監査ノードは、監査チェックの署名を提供し、ブロックチェーンネットワークの台帳にアペンドされ得るトランザクションにトークンが含まれることを可能にすることができる。
以下に記述されるいくつかの実施形態において、方法300の1又は複数の動作は、簡潔さのために示されていない。
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載される教示の実装はクラウドコンピューティング環境に限定されるものではないことを理解されたい。むしろ、本開示の実施形態は、現在知られている、又は後に開発される任意の他のタイプのコンピューティング環境と併せて実装することが可能である。
クラウドコンピューティングは、管理の労力又はサービスのプロバイダとのインタラクションを最小限に抑えながら迅速にプロビジョニング及びリリースできる構成可能コンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールに対する簡便なオンデマンドネットワークアクセスを可能にするための、サービス配信モデルである。このクラウドモデルは、少なくとも5つの特性と、少なくとも3つのサービスモデルと、少なくとも4つの展開モデルとを含み得る。
特性は以下のとおりである。
オンデマンドセルフサービス:クラウド消費者は、サービスのプロバイダとの人的対話を要することなく、必要に応じて自動的に、サーバ時間及びネットワークストレージなどのコンピューティング能力を一方的にプロビジョニングすることができる。
幅広いネットワークアクセス:複数の機能が、ネットワーク経由で利用可能であり、異種のシンクライアントプラットフォーム又はシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準メカニズムを通じてアクセスされる。
リソースプール:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数の消費者にサービス提供するようプールされ、異なる物理リソース及び仮想リソースが、需要に従って動的に割り当て及び再割り当てされる。消費者は、提供されるリソースの正確な部分に対してコントロールも知識も持たないことが一般的であるが、より高い抽象化レベル(例えば、国、州、又はデータセンタ)において部分を指定することが可能な場合があるという点で、部分的独立性の感覚がある。
迅速な柔軟性:機能を素早くかつ柔軟に、場合によっては自動的にプロビジョニングして、素早くスケールアウトし、迅速にリリースして素早くスケールインすることができる。消費者にとって、プロビジョニングに利用可能な機能は、無制限であるように思えることが多く、いつでも任意の量で購入することができる。
測定されるサービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブユーザアカウント)に適切な何らかの抽象化レベルにおける計測能力を利用することによって、リソース使用を自動的にコントロールして最適化する。リソース使用量を監視し、コントロールし、レポートすることで、利用されるサービスのプロバイダ及び消費者の両方に透明性を提供することができる。
サービスモデルは以下のとおりである。
サービスとしてのソフトウェア(SaaS:Software as a Service):消費者に提供される能力は、クラウドインフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)のようなシンクライアントインタフェースを通して様々なクライアントデバイスからアクセス可能である。消費者は、限定されたユーザ固有のアプリケーション構成設定を例外とする可能性があるが、ネットワーク、サーバ、オペレーティングシステム、ストレージ、又は更には個々のアプリケーション機能を含む、基礎となるクラウドインフラストラクチャを管理することもコントロールすることもない。
サービスとしてのプラットフォーム(PaaS:Platform as a Service):消費者に提供される能力は、プロバイダによってサポートされるプログラミング言語及びツールを使用して作成される、消費者が作成又は取得したアプリケーションをクラウドインフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、又はストレージを含む、基礎となるクラウドインフラストラクチャを管理することもコントロールすることもないが、展開されるアプリケーションと、場合によっては、アプリケーションホスティング環境構成とをコントロールする。
サービスとしてのインフラストラクチャ(IaaS:Infrastructure as a Service):消費者に提供される能力は、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティングリソースをプロビジョニングすることであり、ここで消費者は、オペレーティングシステム及びアプリケーションを含み得る任意のソフトウェアを展開し実行することが可能である。消費者は、基礎となるクラウドインフラストラクチャを管理することもコントロールすることもないが、オペレーティングシステム、ストレージ、展開されたアプリケーションをコントロールし、場合によっては選択されたネットワーキングコンポーネント(例えば、ホストファイアウォール)を限定的にコントロールする。
展開モデルは以下のとおりである。
プライベートクラウド:クラウドインフラストラクチャは、ある組織のためにのみ動作される。これは組織又はサードパーティにより管理されてもよく、オンプレミス又はオフプレミスで存在してもよい。
コミュニティクラウド:クラウドインフラストラクチャは、幾つかの組織によって共有され、共通の関心事項(例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。これは組織又はサードパーティにより管理されてもよく、オンプレミス又はオフプレミスで存在してもよい。
パブリッククラウド:クラウドインフラストラクチャは、一般大衆又は大規模な業界団体に利用可能とされ、クラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:クラウドインフラストラクチャは、2つ又はそれより多くのクラウド(プライベート、コミュニティ、又はパブリック)の複合体であり、これらのクラウドは、ユニークなエンティティのままであるが、データ及びアプリケーションのポータビリティ(例えば、クラウド間のロードバランスをとるためのクラウドバースト)を可能にする標準化技術又は独自技術によって一緒に結合されている。
クラウドコンピューティング環境は、ステートレス性、低結合性、モジュール性、及びセマンティック相互運用性に焦点を当てたサービス指向である。クラウドコンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャが存在する。
図4Aには、クラウドコンピューティング環境410が示されている。図示されているように、クラウドコンピューティング環境410は、1又は複数のクラウドコンピューティングノード400を含み、これと、クラウド消費者が使用するローカルコンピューティングデバイス、例えばパーソナルデジタルアシスタント(PDA)若しくは携帯電話400A、デスクトップコンピュータ400B、ラップトップコンピュータ400C、若しくは自動車コンピュータシステム400N、又はその組み合わせなどが通信し得る。ノード400は、互いに通信し得る。これらは、上記で説明したようなプライベートクラウド、コミュニティクラウド、パブリッククラウド、若しくはハイブリッドクラウド、又はそれらの組み合わせなどの、1又は複数のネットワークにおいて物理的又は仮想的にグループ化されていてもよい(図示していない)。
これにより、クラウドコンピューティング環境410は、クラウド消費者がローカルコンピューティングデバイス上にリソースを維持する必要のない、サービスとしてのインフラストラクチャ、プラットフォーム、若しくはソフトウェア、又はその組み合わせを提供することが可能となる。図4Aに示されているコンピューティングデバイス400A~Nのタイプは、例示のみを意図したものであり、コンピューティングノード400及びクラウドコンピューティング環境410は、任意のタイプのネットワーク若しくはネットワークアドレス指定可能な接続又はその両方を介して(例えば、ウェブブラウザを使用して)、任意のタイプのコンピュータ化されたデバイスと通信できることが理解される。
図4Bには、クラウドコンピューティング環境410(図4A)によって提供される機能抽象化レイヤのセットが示されている。図4Bに示されているコンポーネント、レイヤ、及び機能は、例示のみを意図したものであり、本開示の実施形態はこれに限定されるものではないことを事前に理解されたい。以下のレイヤ及び対応する機能は、下記に示すように提供される。
ハードウェア及びソフトウェアレイヤ415は、ハードウェア及びソフトウェアのコンポーネントを含む。ハードウェアコンポーネントの例は、メインフレーム402、RISC(Reduced Instruction Set Computer:縮小命令セットコンピュータ)アーキテクチャベースのサーバ404、サーバ406、ブレードサーバ408、ストレージデバイス411、並びにネットワーク及びネットワーキングコンポーネント412を含む。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア414及びデータベースソフトウェア416を含む。
仮想化レイヤ420は、抽象化レイヤを提供し、ここから、仮想エンティティの以下の例:仮想サーバ422、仮想ストレージ424、仮想プライベートネットワークを含む仮想ネットワーク426、仮想アプリケーション及びオペレーティングシステム428、並びに仮想クライアント430が提供され得る。
1つの例では、管理レイヤ440は、以下に記載する機能を提供し得る。リソースプロビジョニング442は、クラウドコンピューティング環境内でタスクを実行するのに用いられるコンピューティングリソース及び他のリソースの動的な調達を提供する。計測及び価格設定444は、リソースがクラウドコンピューティング環境内で利用される際のコスト追跡、及びこれらのリソースの消費に対する課金又はインボイス作成を提供する。1つの例では、これらのリソースは、アプリケーションソフトウェアライセンスを含み得る。セキュリティは、クラウド消費者及びタスクのアイデンティティ検証、並びにデータ及び他のリソースの保護を提供する。ユーザポータル446は、消費者及びシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理448は、必要なサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当て及び管理を提供する。サービスレベル合意(SLA)の計画及び履行450は、将来の要件がSLAに従って予想されるクラウドコンピューティングリソースの事前構成及び調達を提供する。
ワークロードレイヤ460は、クラウドコンピューティング環境が用いられ得る機能の例を提供する。このレイヤから提供され得るワークロード及び機能の例は、マッピング及びナビゲーション462、ソフトウェア開発及びライフサイクル管理464、仮想教室教育配信466、データ分析処理468、トランザクション処理470、及びプライバシーを維持した監査可能なブロックチェーントランザクション472を含む。
図5は、本開示の実施形態に係る、本明細書に記載される方法、ツール、及びモジュール、並びに任意の関連機能のうちの1又は複数を(例えば、コンピュータの1又は複数のプロセッサ回路又はコンピュータプロセッサを使用して)実装するのに使用され得る例示的なコンピュータシステム501のハイレベルブロック図を示している。いくつかの実施形態において、コンピュータシステム501の主要なコンポーネントは、1又は複数のCPU502と、メモリサブシステム504と、端末インタフェース512と、ストレージインタフェース516と、I/O(入力/出力)デバイスインタフェース514と、ネットワークインタフェース518とを含み得る。これらのすべては、メモリバス503、I/Oバス508、及びI/Oバスインタフェースユニット510を介してコンポーネント間通信のために直接的又は間接的に通信可能に結合されていてもよい。
コンピュータシステム501は、本明細書ではCPU502と総称される、1又は複数の汎用プログラマブル中央処理ユニット(CPU)502A、502B、502C、及び502Dを含み得る。いくつかの実施形態において、コンピュータシステム501は、比較的大きなシステムに典型的な複数のプロセッサを含んでいてもよい。しかしながら、他の実施形態において、コンピュータシステム501は、代替的には、シングルCPUシステムでもよい。各CPU502は、メモリサブシステム504に格納されている命令を実行してもよく、1又は複数のレベルのオンボードキャッシュを含んでいてもよい。
システムメモリ504は、ランダムアクセスメモリ(RAM)522又はキャッシュメモリ524などの、揮発性メモリの形態のコンピュータシステム可読媒体を含み得る。コンピュータシステム501は、他のリムーバブル/ノンリムーバブル揮発性/不揮発性コンピュータシステム記憶媒体をさらに含んでいてもよい。単なる例として、ストレージシステム526を、「ハードドライブ」などのノンリムーバブル不揮発性磁気媒体に対して読み取り及び書き込みを行うように設けることができる。図示していないが、リムーバブル不揮発性磁気ディスク(例えば、「フロッピディスク」)に対して読み取り若しくは書き込みを行う磁気ディスクドライブ、又は、CD-ROM、DVD-ROM、若しくは他の光学媒体などのリムーバブル不揮発性光ディスクに対して読み取り及び書き込みを行う光ディスクドライブを設けてもよい。加えて、メモリ504は、フラッシュメモリ、例えばフラッシュメモリスティックドライブ又はフラッシュドライブを含むことができる。メモリデバイスは、1又は複数のデータ媒体インタフェースによってメモリバス503に接続できる。メモリ504は、様々な実施形態の機能を行うように構成されているプログラムモジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含んでいてもよい。
プログラムモジュール530の少なくとも1つのセットを各々有する、1又は複数のプログラム/ユーティリティ528が、メモリ504内に格納されていてもよい。プログラム/ユーティリティ528は、ハイパーバイザ(別称、仮想マシンモニタ)、1又は複数のオペレーティングシステム、1又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータを含んでいてもよい。オペレーティングシステム、1又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータの各々、又はそれらの何らかの組み合わせは、ネットワーキング環境の実装形態を含み得る。プログラム528若しくはプログラムモジュール530又はその組み合わせは、概して、様々な実施形態の機能又は方法を実行する。
メモリバス503は、CPU502、メモリサブシステム504、及びI/Oバスインタフェース510の間の直接通信経路を提供するシングルバス構造として図5に示されているが、メモリバス503は、いくつかの実施形態において、階層、星形、又はウェブ構成、複数の階層型バス、並列冗長パス、又は任意の他の適切なタイプの構成のポイントツーポイントリンクのような様々な形態のいずれかで構成され得る複数の異なるバス又は通信経路を含んでいてもよい。さらに、I/Oバスインタフェース510及びI/Oバス508は単一のそれぞれのユニットとして示されているが、コンピュータシステム501は、いくつかの実施形態において、複数のI/Oバスインタフェースユニット510、複数のI/Oバス508、又はその両方を含んでいてもよい。さらに、様々なI/Oデバイスに通じる様々な通信経路からI/Oバス508を分離する複数のI/Oインタフェースユニットが示されているが、他の実施形態において、I/Oデバイスのいくつか又はすべては、1又は複数のシステムI/Oバスに直接接続されてもよい。
いくつかの実施形態において、コンピュータシステム501は、マルチユーザメインフレームコンピュータシステム、シングルユーザシステム、若しくはサーバコンピュータ、又は、直接的なユーザインタフェースをほとんど若しくは全く有しないが、他のコンピュータシステム(クライアント)からのリクエストを受け取る同様のデバイスであり得る。さらに、いくつかの実施形態において、コンピュータシステム501は、デスクトップコンピュータ、ポータブルコンピュータ、ラップトップ若しくはノートブックコンピュータ、タブレットコンピュータ、ポケットコンピュータ、電話、スマートフォン、ネットワークスイッチ若しくはルータ、又は任意の他の適切なタイプの電子デバイスとして実装され得る。
図5は、例示的なコンピュータシステム501の代表的な主要コンポーネントを示すよう意図されていることに留意されたい。しかしながら、いくつかの実施形態において、個々のコンポーネントは図5に表されているよりも複雑さが多い又は複雑さが少ない場合があり、図5に示されているもの以外の又はそれに加えたコンポーネントが存在する場合があり、このようなコンポーネントの数、タイプ、及び構成は異なる場合がある。
本明細書においてより詳細に記述されるように、本明細書に記載される方法の実施形態のうちのいくつかの動作のうちのいくつか又はすべては、代替的な順序で実行されてもよいし、又は、全く実行されなくてもよく、さらに、複数の動作は、同時に行われてもよいし、又はより大きなプロセスに内在する一部として行われてもよいことが企図される。
本開示は、統合化が任意の可能な技術詳細レベルにあるシステム、方法、若しくはコンピュータプログラム製品、又はその組み合わせであり得る。コンピュータプログラム製品には、プロセッサに本開示の態様を実行させるコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(単数又は複数)が含まれ得る。
コンピュータ可読記憶媒体は、命令実行デバイスにより使用される命令を保持及び格納し得る有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又は上述のものの任意の好適な組み合わせであり得るが、これらに限定されるものではない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピディスク、パンチカード又は命令が記録されている溝内の隆起構造などの機械的にエンコードされたデバイス、及び上述のものの任意の好適な組み合わせを含む。コンピュータ可読記憶媒体は、本明細書において使用される場合、電波若しくは他の自由に伝搬する電磁波、導波路若しくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又はワイヤを通じて伝送される電気信号などの一時的な信号自体と解釈されてはならない。
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスにダウンロードされてもよく、或いは、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、若しくは無線ネットワーク、又はその組み合わせを介して、外部コンピュータ又は外部ストレージデバイスにダウンロードされてもよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、若しくはエッジサーバ、又はその組み合わせを備え得る。各コンピューティング/処理デバイスにおけるネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を転送する。
本開示の動作を行うためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、又は、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、及び、「C」プログラミング言語などの手続き型プログラミング言語若しくは同様のプログラミング言語を含む、1又は複数のプログラミング言語の任意の組み合わせで書き込まれたソースコード若しくはオブジェクトコードのいずれかであり得る。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行されてもよいし、スタンドアロンソフトウェアパッケージとして部分的にユーザのコンピュータ上で実行されてもよいし、部分的にユーザのコンピュータ上で、かつ、部分的にリモートコンピュータ上で実行されてもよいし、又は完全にリモートコンピュータ若しくはサーバ上で実行されてもよい。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)若しくはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、又はその接続は、外部コンピュータに対して(例えば、インターネットサービスプロバイダを使用してインターネットを介して)行われてもよい。いくつかの実施形態において、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラマブルロジックアレイ(PLA)を含む電子回路は、本開示の態様を実行するために、コンピュータ可読プログラム命令の状態情報を用いてコンピュータ可読プログラム命令を実行して、電子回路をパーソナライズすることができる。
本開示の態様は、本明細書において、本開示の実施形態に係る方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図若しくはブロック図又はその両方を参照して、説明されている。フローチャート図若しくはブロック図又はその両方の各ブロック、及び、フローチャート図若しくはブロック図又はその両方におけるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得ることは理解されるであろう。
これらのコンピュータ可読プログラム命令を、コンピュータのプロセッサ、又は機械を生成するための他のプログラマブルデータ処理装置に提供して、その結果、コンピュータのプロセッサ又は他のプログラマブルデータ処理装置を介して実行される命令が、フローチャート若しくはブロック図又はその組み合わせの単数又は複数のブロックにおいて指定された機能/動作を実装する手段を作成するようにしてもよい。また、これらのコンピュータ可読プログラム命令を、コンピュータ、プログラマブルデータ処理装置、若しくは他のデバイス、又はその組み合わせに特定の方式で機能するよう指示し得るコンピュータ可読記憶媒体に格納して、その結果、内部に命令が格納されているコンピュータ可読記憶媒体が、フローチャート若しくはブロック図又はその組み合わせの単数又は複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む製品を構成するようにしてもよい。
また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイス上にロードして、コンピュータ、他のプログラマブル装置、又は他のデバイス上で一連の動作段階を実行させて、コンピュータ実装処理を生成し、その結果、コンピュータ、他のプログラマブル装置、又は他のデバイス上で実行される命令が、フローチャート若しくはブロック図又はその組み合わせの単数又は複数のブロックにおいて指定された機能/動作を実装するようにしてもよい。
図面におけるフローチャート及びブロック図は、本開示の様々な実施形態に係るシステム、方法、及びコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能、及び動作を示している。これに関して、フローチャート又はブロック図における各ブロックは、指定された論理機能を実装する1又は複数の実行可能命令を含む命令のモジュール、セグメント、又は部分を表し得る。いくつかの代替的な実装形態において、ブロックに記されている機能は、図面に記されている順序とは異なる順序で行われ得る。例えば、連続して示されている2つのブロックが、実際には、1つの段階として実現されてもよく、同時に、実質的に同時に、部分的に若しくは全体的に時間重複する方式で実行されてもよく、又は、ブロックは、場合によっては、関与する機能に依存して逆の順序で実行されてもよい。ブロック図若しくはフローチャート図又はその組み合わせの各ブロック、及び、ブロック図若しくはフローチャート図又はその組み合わせにおけるブロックの組み合わせが、指定された機能若しくは動作を実行する、又は特定用途向けハードウェア及びコンピュータ命令の組み合わせを行う、特定用途向けハードウェアベースシステムによって実装され得ることにも留意されたい。
本開示の様々な実施形態の説明を例示の目的で提示してきたが、網羅的であること、又は開示された実施形態に限定されることを意図するものではない。当業者には、記載された実施形態の範囲及び趣旨から逸脱しない、多くの修正及び変形が明らかとなるであろう。本明細書において使用された術語は、実施形態の原理、実際的な適用、若しくは市場で見出される技術についての技術的改善点を最適に説明するために、又は本明細書で開示された実施形態を当業者が理解することを可能にするために選択された。
本開示は、具体的な実施形態に関して記載されているが、当業者には、その変更形態及び修正形態が明らかになることが予想される。したがって、以下の特許請求の範囲は、本開示の真の趣旨及び範囲に入るそのような変更形態及び修正形態のすべてを包含するものとして解釈されることが意図されている。
Claims (20)
- プライバシーを維持した監査可能アカウントのためのコンピュータ実装方法であって、
少なくとも1つのトークンを生成する段階であって、前記少なくとも1つのトークンは、オーナー、タイプ、値、現在のエポック、譲渡可能性、シード、及びr値でエンコードされ、ここで、エポックは、特定の時間範囲である、段階と、
ゼロ知識証明を生成する段階であって、前記ゼロ知識証明は、前記少なくとも1つのトークンの前記オーナーがブロックチェーンネットワークの登録ユーザであることを示す、段階と、
第1のトランザクションメッセージをアセンブルする段階であって、前記第1のトランザクションメッセージは、前記少なくとも1つのトークン、ゼロ知識証明、及び発行者の公開鍵を含む、段階と、
前記第1のトランザクションメッセージに署名する段階であって、前記署名は、前記発行者の公開鍵に関連付けられたプライベートキーに基づく、段階と、
前記第1のトランザクションメッセージを前記ブロックチェーンネットワークにブロードキャストする段階と
を備えるコンピュータ実装方法。 - 前記第1のトランザクションメッセージを検証する段階
をさらに備える、請求項1に記載のコンピュータ実装方法。 - 検証は、
前記発行者が、前記第1のトランザクションメッセージ内の前記トークンに対応する前記タイプのトークンを作成するよう権限付与されているかどうかを判定する段階と、
前記発行者の署名が有効であるかどうかを判定する段階であって、前記署名は、前記第1のトランザクションメッセージ内の前記公開鍵に対してチェックされる、段階と、
前記ゼロ知識証明が有効であるかどうかを判定する段階と
を有する、請求項2に記載のコンピュータ実装方法。 - 監査チェックが有効ではないという判定に応答して、前記エンコードされたトークンを譲渡不可としてマークする段階
をさらに備える、請求項2又は3に記載のコンピュータ実装方法。 - 監査チェックが成功であることの検証に応答して、前記エンコードされたトークンを譲渡可能としてマークする段階
をさらに備える、請求項2又は3に記載のコンピュータ実装方法。 - 1又は複数のトークンの所有権を譲渡する段階であって、譲渡は、譲渡しようとするトークンを消費する段階と、前記トークンと同じ値及びタイプをもち、前記現在のエポック、第2のシード、及び第2のr値、新しいオーナー、及びこれらが未だ譲渡可能ではないことを示すビットをエンコードする、1又は複数のトークンを作成する段階とを有する、段階と、
前記1又は複数の入力トークンの各々についてトークンシリアルナンバーを生成する段階と、
前記1又は複数の入力トークンが譲渡可能であり、前記新しく作成されたトークンが譲渡可能でないことを示す、第2のゼロ知識証明を生成する段階と、
前記第1のトランザクションメッセージに対して第2の匿名署名を生成する段階であって、前記第2の匿名署名は、署名者が前記1又は複数の入力トークンの前記オーナーの秘密鍵を知っていることを実証する、段階と
をさらに備える、請求項5に記載のコンピュータ実装方法。 - 譲渡は、
前記トークンシリアルナンバー、前記第2のゼロ知識証明、及び前記新しく作成された1又は複数のトークンを含む第2のトランザクションメッセージをアセンブルする段階と、
前記第2のトランザクションメッセージに署名する段階と
をさらに有する、請求項6に記載のコンピュータ実装方法。 - 前記第2のトランザクションメッセージの有効性検証を行う段階であって、有効性検証は、前記第2のトランザクションメッセージ内の前記1又は複数の新しく作成されたトークンが、前記現在のエポックでエンコードされており、かつ未だ譲渡可能でないかどうかの判定に少なくとも部分的に基づく、段階
をさらに備える、請求項7に記載のコンピュータ実装方法。 - 前記第2のトランザクションメッセージの有効性検証に応答して、前記1又は複数の作成済みトークンを譲渡可能としてマークする第2のアカウントトランザクションを発行する段階をさらに備え、
アカウントトランザクションは、ゼロ知識証明及びオーディタの署名から成る、
請求項8に記載のコンピュータ実装方法。 - プライバシーを維持した監査可能アカウントのためのコンピュータシステムであって、
メモリと、
前記メモリと通信しているプロセッサと
を備え、
前記プロセッサは、
少なくとも1つのトークンを生成する手順であって、前記少なくとも1つのトークンは、オーナー、タイプ、値、現在のエポック、譲渡可能性、シード、及びr値でエンコードされ、ここで、エポックは、特定の時間範囲である、手順と、
ゼロ知識証明を生成する手順であって、前記ゼロ知識証明は、前記少なくとも1つのトークンの前記オーナーがブロックチェーンネットワークの登録ユーザであることを示す、手順と、
第1のトランザクションメッセージをアセンブルする手順であって、前記第1のトランザクションメッセージは、前記少なくとも1つのトークン、ゼロ知識証明、及び発行者の公開鍵を含む、手順と、
前記第1のトランザクションメッセージに署名する手順であって、前記署名は、前記発行者の公開鍵に関連付けられたプライベートキーに基づく、手順と、
前記第1のトランザクションメッセージを前記ブロックチェーンネットワークにブロードキャストする手順と
を有する動作を実行するよう構成されている、コンピュータシステム。 - 前記第1のトランザクションメッセージを検証する動作
をさらに有する、請求項10に記載のコンピュータシステム。 - 前記検証する動作は、
前記発行者が、前記第1のトランザクションメッセージ内の前記トークンに対応する前記タイプのトークンを作成するよう権限付与されているかどうかを判定する手順と、
前記発行者の署名が有効であるかどうかを判定する手順であって、前記署名は、前記第1のトランザクションメッセージ内の前記公開鍵に対してチェックされる、手順と、
前記ゼロ知識証明が有効であるかどうかを判定する手順と
を含む、請求項11に記載のコンピュータシステム。 - 監査チェックが有効ではないという判定に応答して、前記エンコードされたトークンを譲渡不可としてマークする動作
をさらに有する、請求項10から12のいずれか一項に記載のコンピュータシステム。 - 監査チェックが成功であることの検証に応答して、前記エンコードされたトークンを譲渡可能としてマークする動作
をさらに有する、請求項10から12のいずれか一項に記載のコンピュータシステム。 - プライバシーを維持した監査可能アカウントのためのコンピュータプログラムであって、
プロセッサに、
少なくとも1つのトークンを生成する手順であって、前記少なくとも1つのトークンは、オーナー、タイプ、値、現在のエポック、譲渡可能性、シード、及びr値でエンコードされ、ここで、エポックは、特定の時間範囲である、手順と、
ゼロ知識証明を生成する手順であって、前記ゼロ知識証明は、前記少なくとも1つのトークンの前記オーナーがブロックチェーンネットワークの登録ユーザであることを示す、手順と、
第1のトランザクションメッセージをアセンブルする手順であって、前記第1のトランザクションメッセージは、前記少なくとも1つのトークン、ゼロ知識証明、及び発行者の公開鍵を含む、手順と、
前記第1のトランザクションメッセージに署名する手順であって、前記署名は、前記発行者の公開鍵に関連付けられたプライベートキーに基づく、手順と、
前記第1のトランザクションメッセージを前記ブロックチェーンネットワークにブロードキャストする手順と
を実行させるためのコンピュータプログラム。 - 前記プロセッサに、
前記第1のトランザクションメッセージを検証する手順
をさらに実行させる、請求項15に記載のコンピュータプログラム。 - 前記検証する手順は、
前記発行者が、前記第1のトランザクションメッセージ内の前記トークンに対応する前記タイプのトークンを作成するよう権限付与されているかどうかを判定する手順と、
前記発行者の署名が有効であるかどうかを判定する手順であって、前記署名は、前記第1のトランザクションメッセージ内の前記公開鍵に対してチェックされる、手順と、
前記ゼロ知識証明が有効であるかどうかを判定する手順と
を含む、請求項16に記載のコンピュータプログラム。 - 前記プロセッサに、
監査チェックが有効ではないという判定に応答して、前記エンコードされたトークンを譲渡不可としてマークする手順
をさらに実行させる、請求項15から17のいずれか一項に記載のコンピュータプログラム。 - 前記プロセッサに、
監査チェックが成功であることの検証に応答して、前記エンコードされたトークンを譲渡可能としてマークする手順
をさらに実行させる、請求項15から17のいずれか一項に記載のコンピュータプログラム。 - 譲渡は、
トークンシリアルナンバー、第2のゼロ知識証明、及び再ランダム化された1又は複数のトークンを含む第2のトランザクションメッセージをアセンブルする動作と、
前記第2のトランザクションメッセージに署名する動作と
を含む、請求項19に記載のコンピュータプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/404,230 | 2021-08-17 | ||
US17/404,230 US11888981B2 (en) | 2021-08-17 | 2021-08-17 | Privacy preserving auditable accounts |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023027775A true JP2023027775A (ja) | 2023-03-02 |
Family
ID=85180734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022129877A Pending JP2023027775A (ja) | 2021-08-17 | 2022-08-17 | プライバシーを維持した監査可能アカウントのためのコンピュータ実装方法、コンピュータシステム及びコンピュータプログラム(プライバシーを維持した監査可能アカウント) |
Country Status (3)
Country | Link |
---|---|
US (1) | US11888981B2 (ja) |
JP (1) | JP2023027775A (ja) |
CN (1) | CN115705571A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11888981B2 (en) | 2021-08-17 | 2024-01-30 | International Business Machines Corporation | Privacy preserving auditable accounts |
JP7484037B1 (ja) | 2023-04-20 | 2024-05-16 | シーピーラブス インコーポレイテッド | 使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法及びそれを利用したブロックチェーンシステム |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230370273A1 (en) * | 2022-05-10 | 2023-11-16 | Microsoft Technology Licensing, Llc | Bootstrapping a code transparency system |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019028026A1 (en) * | 2017-07-31 | 2019-02-07 | Chronicled, Inc. | SYSTEM, METHOD AND DEVICE FOR SECURE AND CONFIDENTIAL DETENTION TRANSACTION USING NO KNOWLEDGE PROTOCOL |
US10298395B1 (en) * | 2018-09-26 | 2019-05-21 | Accenture Global Solutions Limited | Interoperability of zero-knowledge proof enabled blockchains |
US11848917B2 (en) * | 2020-07-10 | 2023-12-19 | Toposware, Inc. | Blockchain-based anonymous transfers zero-knowledge proofs |
CN112418834A (zh) | 2020-10-21 | 2021-02-26 | 西安电子科技大学 | 比特币兼容的支持链下交易的安全混币处理方法及系统 |
US11888981B2 (en) | 2021-08-17 | 2024-01-30 | International Business Machines Corporation | Privacy preserving auditable accounts |
US20230208640A1 (en) * | 2021-12-29 | 2023-06-29 | International Business Machines Corporation | Selective audit process for privacy-preserving blockchain |
-
2021
- 2021-08-17 US US17/404,230 patent/US11888981B2/en active Active
-
2022
- 2022-07-22 CN CN202210866285.1A patent/CN115705571A/zh active Pending
- 2022-08-17 JP JP2022129877A patent/JP2023027775A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11888981B2 (en) | 2021-08-17 | 2024-01-30 | International Business Machines Corporation | Privacy preserving auditable accounts |
JP7484037B1 (ja) | 2023-04-20 | 2024-05-16 | シーピーラブス インコーポレイテッド | 使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法及びそれを利用したブロックチェーンシステム |
Also Published As
Publication number | Publication date |
---|---|
US20230057898A1 (en) | 2023-02-23 |
US11888981B2 (en) | 2024-01-30 |
CN115705571A (zh) | 2023-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220027348A1 (en) | Cross-shard private atomic commit | |
US20190173854A1 (en) | Decentralized information sharing network | |
US10944560B2 (en) | Privacy-preserving identity asset exchange | |
US11853291B2 (en) | Privacy preserving architecture for permissioned blockchains | |
US11431503B2 (en) | Self-sovereign data access via bot-chain | |
JP2023027775A (ja) | プライバシーを維持した監査可能アカウントのためのコンピュータ実装方法、コンピュータシステム及びコンピュータプログラム(プライバシーを維持した監査可能アカウント) | |
WO2022007548A1 (en) | Blockchain implementation to securely store information off-chain | |
JP2023524659A (ja) | 低信頼の特権アクセス管理 | |
CN116325833A (zh) | 将设备标识集成到区块链的许可框架中 | |
JP2023535605A (ja) | 仮想通貨の有効期限を可能にする電子ウォレット | |
US11943360B2 (en) | Generative cryptogram for blockchain data management | |
US11573952B2 (en) | Private shared resource confirmations on blockchain | |
US11804950B2 (en) | Parallel processing of blockchain procedures | |
US20220311595A1 (en) | Reducing transaction aborts in execute-order-validate blockchain models | |
US11876903B2 (en) | Decentralized broadcast encryption and key generation facility | |
JP2023538497A (ja) | 編集可能なブロックチェーン | |
US20220171763A1 (en) | Blockchain selective world state database | |
US20230267220A1 (en) | Privacy preserving asset token exchange | |
US20230267457A1 (en) | Privacy preserving asset transfer between networks | |
US11755562B2 (en) | Score based endorsement in a blockchain network | |
US11683173B2 (en) | Consensus algorithm for distributed ledger technology | |
US20220353086A1 (en) | Trusted aggregation with data privacy based on zero-knowledge-proofs |