JP2022508948A - プライバシーを守る検証およびコミットアーキテクチャ - Google Patents
プライバシーを守る検証およびコミットアーキテクチャ Download PDFInfo
- Publication number
- JP2022508948A JP2022508948A JP2021547049A JP2021547049A JP2022508948A JP 2022508948 A JP2022508948 A JP 2022508948A JP 2021547049 A JP2021547049 A JP 2021547049A JP 2021547049 A JP2021547049 A JP 2021547049A JP 2022508948 A JP2022508948 A JP 2022508948A
- Authority
- JP
- Japan
- Prior art keywords
- node
- transaction
- domain
- nodes
- confirmation
- 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
- 238000012795 verification Methods 0.000 title claims description 32
- 238000012790 confirmation Methods 0.000 claims abstract description 371
- 238000000034 method Methods 0.000 claims abstract description 248
- 230000008569 process Effects 0.000 claims abstract description 106
- 230000009471 action Effects 0.000 claims description 94
- 238000012546 transfer Methods 0.000 claims description 63
- 239000003999 initiator Substances 0.000 claims description 58
- 238000010200 validation analysis Methods 0.000 claims description 28
- 238000013475 authorization Methods 0.000 claims description 25
- 230000036961 partial effect Effects 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 8
- 230000002776 aggregation Effects 0.000 claims description 5
- 238000004220 aggregation Methods 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 claims description 5
- 230000004931 aggregating effect Effects 0.000 claims description 4
- 230000008859 change Effects 0.000 description 34
- 230000004044 response Effects 0.000 description 24
- 239000003973 paint Substances 0.000 description 20
- 238000010586 diagram Methods 0.000 description 18
- 238000007689 inspection Methods 0.000 description 15
- 239000008186 active pharmaceutical agent Substances 0.000 description 12
- 230000001960 triggered effect Effects 0.000 description 12
- 238000012384 transportation and delivery Methods 0.000 description 11
- 238000012360 testing method Methods 0.000 description 10
- 238000010422 painting Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000003860 storage Methods 0.000 description 7
- 230000006399 behavior Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000002123 temporal effect Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000010076 replication Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000012550 audit Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 239000007858 starting material Substances 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000002730 additional effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012797 qualification Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000002747 voluntary effect Effects 0.000 description 2
- RZVAJINKPMORJF-UHFFFAOYSA-N Acetaminophen Chemical compound CC(=O)NC1=CC=C(O)C=C1 RZVAJINKPMORJF-UHFFFAOYSA-N 0.000 description 1
- UWNXGZKSIKQKAH-UHFFFAOYSA-N Cc1cc(CNC(CO)C(O)=O)c(OCc2cccc(c2)C#N)cc1OCc1cccc(c1C)-c1ccc2OCCOc2c1 Chemical compound Cc1cc(CNC(CO)C(O)=O)c(OCc2cccc(c2)C#N)cc1OCc1cccc(c1C)-c1ccc2OCCOc2c1 UWNXGZKSIKQKAH-UHFFFAOYSA-N 0.000 description 1
- 101100274406 Schizosaccharomyces pombe (strain 972 / ATCC 24843) cid1 gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Images
Classifications
-
- 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/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- 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
-
- 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/3236—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 cryptographic hash functions
- H04L9/3239—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 cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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
-
- 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/3297—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 time stamps, e.g. generation of time stamps
-
- 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
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/121—Timestamp
Abstract
Description
ノードまたは一連の関連するノードによって、
A. 参加者が複数いるプロセスを構成する複数のトランザクションに対応する複数のメッセージの順序を決定するステップと、
B. 参加者が複数いるプロセスの参加者に関連する提出ノードから、部分的に暗号化されたメッセージを含む提案されるトランザクションを受信するステップであって、部分的に暗号化されたメッセージが、少なくとも、ノードまたは一連の関連するノードによって読み取り可能な暗号化されていないサブメッセージを含む、ステップと、
C. 暗号化されていないサブメッセージに基づいて、参加者が複数いるプロセスの参加者に関連する受信者ノードを決定するステップと、
D. 部分的に暗号化されたメッセージを受信者ノードに送信するステップと、
E. 受信者ノードから部分的に暗号化されたメッセージの妥当性の確認を受信するステップと、
F. 確認を提出ノードに送信するステップとを含む、方法が提供される。
アイデンティティマネージャノード170、270は、いくつかのサービス、たとえば、
a. メンバーシップ管理
b. 仮名(pseudonym)管理
を提供することができる。
外部ノード130、230は、複数の参加者を含むプロセスを構成する複数のトランザクションに対応する複数のメッセージに順番を付けることができる。一例において、外部ノード130、230は、たとえば、外部ノード130、230によって与えられた一意のタイムスタンプによってメッセージが一意に配列される(ドメインに関する)大域的全順序マルチキャストを提供することができる。したがって、大域的順序付けは、タイムスタンプから導出され得る。しかし、一部の例において、複数のメッセージの順序は、タイムスタンプ以外の暗号化されていないサブメッセージの情報に少なくとも部分的に基づく可能性があることを理解されたい。その他の筋書きにおいては、別箇所で説明されるように、外部ノード130、230によって与えられるタイムスタンプは、物理的または論理的タイムスタンプであることが可能である。
仲介者ノード280は、図2bに示されるようにシステムの一部を形成し得る。仲介者ノード280を有するシステムにおいて、仲介者ノード280は、受信者ノードから確認を受信し、提案されるトランザクションの検証に関する合意があるかどうかを判定するために確認を集約する可能性がある。これは、場合によっては、仲介者ノード280がより広いネットワーク中で送信される確認の総量を減らすために使用され得ることを意味する。一例において、仲介者ノード280は、トランザクションが受け付けられた/確認されたと考えられるために仲介者ノード280が受信することを期待するべきすべての期待される確認を記載するメッセージを受信し得る。仲介者ノード280は、仲介者ノード280が受信する確認を、トランザクションが受け付けられる/確認されるべきであるかどうかを判定するために仲介者ノード280が期待する確認と比較することができる。
ドメインメッセージングAPIは、そのドメイン内の各参加者ノードおよびシステムエンティティ(たとえば、提出ノード110、受信者ノード120など)に対して公開される。ドメインメッセージングAPIがメッセージを「Send」する単一のコマンドおよび3つのイベントタイプ、すなわち、「Receipt」、「Deliver」、および「Heartbeat」を有する非限定的な例が、以降で説明される。
・messageIdがメッセージ識別子であり、bがバッチ、つまり、0 <= i < nとしてmiがメッセージであり、recipientsiがmiの受信者のリストであるn個のタプル(mi , recipientsi)のリストであるコマンドSend(messageId, b, Sig(b, sksender ))。バッチbは、送信する参加者の秘密鍵sksenderによって署名されなければならない。sendコマンドは、(異なる受信者を有する)複数のメッセージが同じタイムスタンプの元で送信されることが可能であるようにメッセージをバッチで送信するために使用され得る。
・messageIdがメッセージ識別子であり、tsがタイムスタンプであり、senderがノードの識別子であり、bがバッチであるイベントReceipt(messageId, ts, proof(sender, messageId, ts, b))。receiptイベントは、受信者にそれらが提出したメッセージの暗号学的証拠を与える。proofは、署名を含む可能性がある。
・ctrが各受信者に関して単調に増加するカウンタであり、tsが順序を定義するタイムスタンプであり、b'がメッセージバッチであり、proofが受信者のアイデンティティを含む配信の暗号学的証明であるイベントDeliver(ctr, ts, b', proof(recipient, ctr, ts, b'))。直観的に、ノードは、そのノードにアドレス指定されたすべてのメッセージと、各メッセージのその他の受信者を知る(これはbがバッチであることにより可能である)。
・ctrが減少しないカウンタであり、tsがタイムスタンプであり、proofがハートビートの発信の暗号学的証明であるイベントHeartbeat(ctr, ts, proof(recipient, ctr, ts))。
・確実な配信: すべてのメッセージが、最終的に、それらのメッセージのすべての受信者に配信される。Send(messageId, b, Sig(b, sksender ))が正しく機能するノードsenderによって呼び出される場合、Deliver(ctr, ts, b', proof(p, ctr, ts, b'))イベントが最終的に受信者の集合(つまり、recipientsiからのすべての要素の和)内の各ノードpにおいてトリガされるようなtsおよびctrが存在し、
b' = [ (m, recipients)∈b | p∈recipients ]
である。
・創作不可(no creation): ノードpにおいてトリガされるあらゆるDeliver(ctr, ts, b', proof(p, ctr, ts, b'))に関して、
b' = [ (m, recipients)∈b | p∈recipients ]
であるように、あるノードがあるmessageIdを用いてSend(messageId, b, Sig(b, sksender ))を既に呼び出した。
さらに、SubmitイベントへのDeliverイベントの誘発されるマッピングは、単射である(つまり、対応するSubmitイベントよりも多いDeliverイベントは存在しない)。このプロパティは、Sendコマンドのために必要とされる署名のおかげで検証され得ることに留意されたい。したがって、senderは、メッセージを送信したことを否定することができない。
・順序通りの配信: Deliver(ctr, ts,-,-)がノードにおいてトリガされる場合、以下のうちのちょうど1つだけが成り立つ。
○ctr = 0であり、このノードにおいてそれより前にDeliverまたはHeartbeatイベントがトリガされていない。
○ctrがctr' + 1に等しく、ctr'はすぐ前のDeliverまたはHeartbeatイベントのカウンタである。
さらに、tsは、いずれの以前のDeliverまたはHeartbeatイベントのtsよりも大きくなければならない。タイムスタンプの順序付けが、バッチ内の順序付けと一緒に大域的全順序を提供する。これは、メッセージがメッセージストリームに以前に遡って挿入され得ず、省略されたメッセージが受信者によって検出され得ることを暗号学的証明と一緒に保証する。
・同意: Deliver(ctr, ts, b, proof(p1, ctr, ts, b))およびDeliver(ctr', ts, b', proof(p2, ctr', ts, b'))がそれぞれノードp1およびp2においてトリガされる場合、
filter bothReceive b = filter bothReceive b'
であり、
bothReceive (m, recipients) = {p1, p2}⊆recipients
である。
・本物の配信証明: Deliver(ctr, ts, b, proof(p, ctr, ts, b))がノードpにおいて既にトリガされていない限り、何者もproof(p, ctr, ts, b)を生成し得ない。実際には、これは、証明のための署名を使用することによって実現される。
・提出の証明: Send(messageId, b, Sig(b, sksender ))がノードsenderによって呼び出され、senderがクラッシュしない場合、Receipt(messageId, ts, proof(sender, messageId, ts, b))が最終的にsenderにおいてトリガされるようなtsが存在する。タイムスタンプtsは、Sendに対応するDeliverイベントに関するものと同じタイムスタンプでなければならない。
・因果関係: Send(messageId, b,-)が正しく機能するノードsenderによって呼び出される場合、レシートReceipt(messageId, ts, _)のタイムスタンプtsが、senderノードにおいてトリガされたいずれの以前のDeliverまたはHeartbeatイベントのタイムスタンプよりも真に大きくなければならない。
・規則的ハートビート: 規則的な間隔で、DeliverイベントかまたはHeartbeatイベントかのどちらかが、各参加者110、120においてトリガされる。
・順序通りのハートビート: Heartbeat(ctr, ts, proof(ctr, ts))イベントが参加者においてトリガされるときにはいつも、以下のうちのちょうど1つだけが成り立つ。
○ctr = 0であり、この参加者においてそれより前にDeliverまたはHeartbeatイベントがトリガされていない。
○ctrがctr' + 1に等しく、ctr'はすぐ前のHeartbeatまたはDeliverイベントのカウンタである。
さらに、tsは、いずれの以前のDeliverまたはHeartbeatイベントのtsよりも大きくなければならない。ハートビートイベントにおいてカウンタを増やすことは、あらゆるカウンタがちょうど1つのタイムスタンプにマッピングされることを保証する。
提出ノード110は、提案されるトランザクションを提出することによってトランザクションを提出し得る。概して、トランザクションプロトコルは、提出ノードがアクション/トランザクションについて知らされる必要がある関係者(つまり、宣言された利害関係者)を指定することを必要とする。提案されるトランザクションは、その他の受信者ノードにアドレス指定され得る(提案されるトランザクションは、容量モニタ(capacity monitor)、手数料またはリソース会計ユニット(fee or resource accounting unit)、外部ノード、仲介者などのシステムのその他の部分をアドレス指定する可能性もある)。提案されるトランザクション内の情報は、暗号化されていないサブメッセージおよび暗号化されたサブメッセージを含み得る。暗号化されたサブメッセージは、トランザクションの利害関係者(たとえば、提案されるトランザクションによって影響を受ける受信者ノード)にトランザクションを示す実際のペイロードを暗号化された形態で含み得る。
当業者は、本開示において使用されるとき、トランザクションがツリー状の構造を有する可能性があることを認めるであろう。トランザクションは、利害関係者および/またはオブザーバ(observer)を有する可能性があり、それに応じて、異なる利害関係者に可視であるこのツリー状の構造の一部(たとえば、部分木)が、変わる可能性がある。それらの物理的転送記憶形態の中で、これらのトランザクションの部分木は、サブビューと呼ばれる。一例において、各受信者ノード120、122、220、222は、その受信者ノードが見る資格を与えられるトランザクションの部分のみを、意味的にはトランザクションの部分木のサブセットとしておよび物理的には転送されたトランザクションメッセージのサブビューのサブセットとして取得する。
図2aおよび図2bの240などの提案されるトランザクションは、暗号化されていないサブメッセージ242を含み得る。暗号化されていないサブメッセージは、公的に利用可能であるまたはトランザクションプロセスのすべての参加者が利用可能である提案されるトランザクション240についての情報を含むことが可能であり、概して、参加者のうちのいずれかの内密の情報を含まない可能性がある。たとえば、暗号化されていないサブメッセージは、トランザクション時間を含むことが可能であるか、または台帳の利害関係者の間で同意された(暗黙的なもしくは明示的な、おそらくは同時に存在する)物理的-時間的規則のブランチ(branch)バージョン(たとえば、どの容量もしくはシャーディングモデルが使用され得るか)の選択を含む可能性がある。概して、そのような情報は、トランザクションについての公的に利用可能な情報であることが可能である。
暗号化されたサブメッセージは、対称暗号化、または非対称暗号化、またはそれら両方によって暗号化される可能性がある。非対称暗号化は、データを暗号化および復号するために複数の鍵、公開鍵および秘密鍵を利用する。任意の好適な暗号化方法が使用される可能性があり、たとえば、RSAまたは楕円曲線暗号が使用される可能性がある。
・(たとえば、公開鍵暗号化と呼ばれる)任意のメッセージmを所与の公開鍵pkによって暗号化する決定性の非対称暗号化方式Epub(pk, m)。
・任意のメッセージmを所与の対称鍵symkによって暗号化する対称的な認証された暗号化方式Esym(symk, m)。認証は、外部ノード230による潜在的な修正から保護することができる(対称暗号化と呼ばれる)。
・所与のトークンを用いて所与の参加者の仮名を導出する仮名導出方式pseudonym(participant, token)。
暗号化されたサブメッセージ144、244を準備するために、提出ノード110、210は、まず、(一例においてはアイデンティティマネージャ170から)秘密のトークンtokaを取得し、各アクション「a」のために新しいナンスkeyaを準備することができる。stkhaは、アクションaの利害関係者を表すものとする。subsaは、aを順序通りにたどることによって得られる(a自体を含む)aのサブビューのリストである。
1. 暗号化されたアクションは、Esym (keya, (bound(a), desc(a)))であり、boundは、影響を受ける利害関係者が自身を縛る任意の予め指定された共有された物理的-時間的制約を表す関数である。たとえば、boundは、(リソースモデルによって与えられる)アクションaのリソース消費を推定することができ、desc(a)は、aを説明する何らかの完全な手段(たとえば、明かされた入力をともなうモデル表現またはeval trace)であることが可能である。
2. 鍵は、aのサブビューに関連付けられた鍵のリストであるものとする([ key a' | a' <- subsa]、「サブビューを復号する鍵のリスト」として読まれる)。そのとき、鍵は、トランザクションの利害関係者毎のエントリを有する鍵リストの公開暗号化のリストとしてラッピングされた鍵の形態で記憶および転送に関して保護される([Epub (pk(stkh), keys) | stkh <- stkha ])。言い換えると、暗号化されたサブメッセージのこの部分は、たとえば、トランザクションの各利害関係者に対応する公開鍵の暗号化されたリストであることが可能であり、対応する秘密鍵が関連する利害関係者に知られている(たとえば、利害関係者が暗号化されたサブメッセージを復号することを許す)。
3. アクションの期待される確認者の仮名を生成するために使用されるトークンは、[toka' | a' <- subsa]である。言い換えると、暗号化されたサブメッセージのこの部分は、たとえば、トークンのリストを含むことが可能であり、そのトークンのリストから、特定のアクションを確認する必要がある期待される確認者の各々の仮名(たとえば、16進アドレス)が導出され得る。そのような情報は、たとえば、ネットワーク内のノード(たとえば、外部ノード230)がネットワーク内のどのノードが特定のアクションを確認する必要があるかを決定することを可能にするために有用であり得る。
type RequestPayload = {
metadata :: RequestMetadata
, stakeholders :: [Pseudonym]
, descriptions :: [(EncryptedActionDescription, [Participant])]
}
それぞれの提案されるトランザクション(たとえば、図2a~図2bの提案されるトランザクション240)に関して、提案されるトランザクションを受け付ける/確認するために必要とされる可能性がある確認が存在し、ノードがトランザクションに関して受信することを期待すべき確認の決定をそのノードが行うと仮定する。期待される確認は、提案されるトランザクションが受け付けられ/確認され、台帳に入力されるための、プロセスの参加者ノードからの必要な肯定的応答であることが可能である。一部の実施形態において、各ノードは、(たとえば、その特定のノードのトランザクションの範囲のビューによって)どのノードが確認を与えることを求められるのかを決定し得る。つまり、ノード210、220、222は、提案されるトランザクション240を受け付けるまたは確認するために受信者ノード220、222のうちのどれが確認を与えることを要求されるかを評価することができる。たとえば、全確認の確認条件を有する提案されるトランザクション240を提出する提出ノード210は、期待される確認がすべての参加者ノードからであり、すべての確認が受信されたと判定し得る。
一部の例においては、確認150、152、250、252が適時行われることを保証するために、タイムアウトの概念が使用される。たとえば、ドメインの規則(以下を参照)によって定義される可能性があるタイムアウトパラメータの後にトランザクションの妥当性が決定され得ない場合、トランザクションは拒否され得る。
ノードは、トランザクションの妥当性を判定するためにいくつかの検査を実行することができる。トランザクションの妥当性の検査の例は、以下の通りである。
a. 競合
i. この検査は、プロセスの一部を形成する関連する契約(たとえば、DAMLの契約)または入力を既に消費したいずれかの以前のトランザクションが存在するかどうかを判定することを含む。
b. 認可
i. この検査は、認可規則に基づいて提出ノードがそのトランザクションを提出することを可能にされると判定することを含む。
c. 準拠
i. これは、準拠規則に従ってトランザクションの形式が整っているかどうかを判定することを含む。
d. 時間制約
i. これは、トランザクション時間が時間制約を満たすかどうかを判定することを含む。
e. 物理的-時間的制約
i. これは、物理的または時間的なトランザクションの取り決めが台帳の利害関係者の間で同意された物理的-時間的要件の規則のブランチバージョンの選択(たとえば、どの容量またはシャーディングモデルが使用され得るか)を満たすかどうかを判定することを含む。
f. リソース検査
i. これは、トランザクションのリソースの要件が正しく指定されたかどうかを検査することを含む。たとえば、ノードは、トランザクションの一部として指定されたトランザクションのリソースの要件を読むことができ、ノードは、ノードによって使用されるリソースが指定されたリソースの要件以内である場合にトランザクションを実行することができ、一例において、ノードは、トランザクションを実行するためにそのノードが使用するリソースが指定されたリソースの要件を超えている場合、トランザクションを行わないことが可能である。これは、ネットワーク内のノードがノードによって指定されたリソースの要件から外れているトランザクションを提出することを防止し、その結果、何も起こらないという有益な利点を持ち得る。
ノード110、120、122、210、220、222が実行することができる検査のうちの1つは、提案されるトランザクション140、240が以前の提案されるトランザクションまたは以前の確認されたトランザクションと競合するかどうかを判定することである。そのような競合は、システムの同時性に内在しており、必ずしも意図的な不正な行動(悪意)または運用上の問題が原因で起こるとは限らない。競合は、プロセスの一部である契約(たとえば、DAMLの契約)または入力が1つまたは複数のトランザクションによって既に消費されたかどうかを含む可能性がある。
ノード110、120、122、210、220、222が実行することができる別の検査は、提案されるトランザクション140、240がきちんと認可されたかどうかを判定することである。これは、提出ノードが、トランザクションを提出することを台帳の状態および規則によって認可されるかどうかを判定することを含む。
ノード110、120、122、210、220、222が実行することができる別の検査は、提案されるトランザクション140、240が各ノードの台帳準拠規則に関して形式が整っていたかどうかを判定することである。提案されるトランザクションが形式が整っていたと判定することは、提案されるトランザクションがその提案されるトランザクションに関する1組の準拠規則に準拠するかどうかを判定することを含む可能性がある。これは、たとえば、提案されるトランザクションが指定されたフォーマットもしくは特定の台帳のワークフローを忠実に守ったかどうか、または提案されるトランザクションがすべての必要なデータを含んでいたかどうかを判定することを含む可能性がある。規則のうちの1つは、提案されるトランザクションが認可されたかどうかを含む可能性がある。これは、たとえば、提案されるトランザクションの(下でさらに詳細に検討される)物理的-時間的要件が既に定義されたかまたは利害関係者によって同意された規則を忠実に守るかどうかを判定することをやはり含む可能性がある。したがって、要求が準拠の基準を達成しない(たとえば、台帳のワークフローの選択もしくは物理的-時間的要件を不適切に実行した)かまたは認可の基準を達成しない(たとえば、ノードの台帳のワークフローが提案されるトランザクションの提出者がトランザクションを提出することを許さない)場合、要求は、何らかの形で不正な形式(整っていない形式としても知られる)であるとみなされる可能性がある。これは、概して、参加者におけるプラットフォームコンポーネントの悪意または正しさの問題(たとえば、ソフトウェアのバグ)が原因でしか起こらない。
ノードが実行する可能性があるさらなる検査は、トランザクション時間を判定し、そのトランザクション時間が時間制約内にあるかどうかを判定することである。たとえば、ノードは、提案されるトランザクションのトランザクション時間が提案されるトランザクションに関する外部ノードのタイムスタンプから離れすぎていないかどうかを判定する可能性がある。トランザクションの期待されるリソース消費が提案されるトランザクションに追加される場合、提出者がトランザクションを提出する前にトランザクションを処理する必要がある可能性があるので、ずれに関して許容される期間は、リソース消費に依存し得る。つまり、ずれに関して許容される期間は、規定された期待されるリソース消費についての因子としてドメインの規則内で定義され得る。
ノードが実行する可能性があるさらなる検査は、物理的または時間的なトランザクションの取り決めがトランザクションまたはドメインの利害関係者の間で同意された物理的-時間的要件の規則のブランチバージョンを満たすかどうかを判定することである。たとえば、ノードは、トランザクションのコスト計算が指定された物理的-時間的要件の規則に適合しないと判定する可能性がある。たとえば、提出者ノードは、提案される論理的時間をトランザクションの規定されたリソース消費に結びつけるためにその提出者ノードが使用している規則を表明する可能性があり、提出者は、利用されるシャーディングモデルが外部ノードおよび仲介者ノードの複数のインスタンスの選択にどのようにして結びつけられるのかを表明する可能性がある。
信頼と、完全性と、可用性との間のトレードオフを提供するため、システムは、異なる確認条件を認め得る。下でより詳細に説明されるように、確認条件は、トランザクションが受け付けられるかまたは確認され、台帳に入力され得ると判定するのに十分な確認の閾値であることが可能である。
ドメインの規則は、ドメインのすべての参加者が同意した1組の規則である。ドメインの規則は、紛争解決プロセスまたは罰などの結果を律する可能性がある。
提案されるトランザクション140、240は、いくつかの理由で拒否され得る。拒否の1つの根拠は、提案されるトランザクション140、240がそのように表明することなく複数のドメインを有すること、つまり、提案されるトランザクション140、240がマルチドメイントランザクションであることを示すことなく提案されるトランザクション140、240が異なるドメインにあるプロセス102、202または契約(たとえば、DAMLの契約)を使用しようと試みたことである可能性がある。場合によっては、これは許される可能性があるが、通常の規則は提案されるトランザクション140、240が単一のドメインを有するべきであることであり得る。
トランザクションを構成するアクティブな契約102、202(またはプロセス)を共有する参加者の各ペアは、ときどき、本明細書において確認ハートビートと呼ばれるそれらの契約についての署名されたステートメントを交換し、したがって、二者間で(または多者間で)参加者が契約/トランザクションの状態を確認することができる。ステートメントは、「タイムスタンプtsにおいて、これらはすべて最終的に確認されたアクティブな相互の契約である」という形態である。それらのステートメントは、紛争解決の際に使用され得る。たとえば、参加者Aは、契約cを含んでいたBからの最新のハートビートおよびタイムスタンプtsにおけるハートビート内の発言(say)を示し、tsとtとの間に発生したすべてのトランザクションを明らかにすることによって参加者Aが参加者Bと結んでいる契約cが何らかの時間tにおいてまだアクティブであることを裁定者に証明する可能性がある。アクションの記述の慎重な設計およびメッセージングレイヤの配信の証明によって、裁定者は、開示されたトランザクションから契約ID以外何も知る必要がない。
開示されるシステムは、以下のプライバシーの特徴のうちの1つまたは複数を含む可能性がある。
システムのプライバシーは、下で説明される様々なノードの観点からのトランザクションビューによってさらに示され得る。
1. サブアクションが、tx内に親アクションを持たない。
2. tx内のサブアクションの親アクションが、サブアクションと異なる利害関係者または異なる確認者を有する。
図17は、フェンス塗装トランザクション1701を表す候補データ構造1700を示す。これは、以下のグループを含み得る。
(1) 1710および1711によって表されるPaintOfferの受け付け
(2) 1720および1721によって表されるIOUの転送
(3) 1730によって表される転送の一部としての新しいIOUの生成
・あらゆる部分木がハッシュを有する。
・部分木がそのハッシュによって置き換えられる場合に、木全体のハッシュが変化しない。
・攻撃者が部分木のハッシュからその部分木の内容を導出することができることが、実質的にあり得ない。これを実現するために、ハッシュは、トランザクションツリーに含まれるブラインディングファクタ(blinding factor)に応じて決まらなければならない。
(1) トランザクションビューの内容がブラインディングされる。
(2) 台帳有効時間がブラインディングされる。
(3) 確認ポリシーはブラインディングされない。
(4) 選択されたトランザクションビューのハッシュはブラインディングされない。
(5) トランザクションビューのハッシュがブラインディングされない場合、ビューの利害関係者はブラインディングされない。
一部の例において、トランザクションプロトコルは、仮想的な共有された台帳を暗黙的に生成する。仮想的な共有された台帳のプロパティは、トランザクションプロトコルによって強制される。仮想的な共有された台帳は、仮想的な概念である。概して、仮想的な共有された台帳全体を記憶する単一の参加者は存在しない。しかし、すべての参加者がトランザクションプロトコルによるインタラクションの結果として得られるメッセージを開示する場合、仮想的な共有された台帳は、これらのメッセージから導出され得る。
i. アクションが、トランザクションプロトコルによって承認されたトランザクションの一部である。
ii. アクションが、基礎となるシステムモデル(たとえば、DAMLシステムのためのDAMLモデル)に準拠する。
iii. (アクション自体を含む)アクションのあらゆるサブアクションAに関して、Aの宣言された利害関係者が、システムのセマンティクス(たとえば、DAMLのセマンティクス)によって正しくAの利害関係者である。
1. トランザクションtxが、トランザクションプロトコルによって提出され、txのすべてのアクションが、仮想的な共有された台帳の一部である。
2. トランザクションtxが、別のトランザクションptxの一部としてトランザクションプロトコルによって提出された。トランザクションtxは、仮想的な共有された台帳の一部ではないアクションをptxから削除した結果として得られる。
i. 仮想的な共有された台帳が、トランザクションのシーケンスである。そのシーケンスが、上で検討されたように「仮想的な共有された台帳の一部」であるトランザクションを含む。
ii. 仮想的な共有された台帳上のトランザクションの順序が、提出の順序に対応する。代替的に、「論理的な並べ替え」として検討された順序などの、プロトコルに従った指定された順序において。
iii. 仮想的な共有された台帳上のあらゆる記録されたアクションが、そのアクションの確認者および確認者の署名(たとえば、受信ノードの署名)を付けられる。
iv. 仮想的な共有された台帳上のトランザクションが提出されたトランザクションと一致する場合、トランザクションは、その提出者および提出ノードの署名を付けられる。
図4は、システム200によって実行される例示的な方法を示す。方法は、システム100を使用して実行されることも可能であることを理解されたい。
図5は、本明細書において開示されるノード110、120、122、130、210、220、222、230、330、340、342のいずれかである可能性がある例示的なノードを示す。図5に示されるノード210は、プロセッサ502、メモリ503、ネットワークインターフェースデバイス508、510、台帳260とインターフェースを取る分散型台帳インターフェースデバイス509、およびユーザインターフェース512を含む。メモリ503は、命令504およびデータ506を記憶することができ、プロセッサ502は、図3に示されたようにプロセスを実施するためにメモリ503からの命令を実行することができる。
提案されるトランザクション140、240は、各受信者がトランザクションを検証し、確認するための、予め指定された共有された物理的-時間的制約(処理時間、メモリ、ネットワーク、ストレージ)の選択を表すリソースユニットを単位とする1つまたは複数のリソースの要件、一例において、要求メッセージ毎に1つの確認可能なサブブロック(one per request message confirmable sub-block)を含む可能性がある。
リソースモデルに関連して、場合によっては、提出手数料またはリソース手当が、提出ノード110、210によって支払われることを要求され(提出手数料)、トランザクションの契約(たとえば、DAMLの契約)に関する選択を遂行する適用可能な受信者ノード120、122、220、222によって支払われることを要求される(検証手数料)可能性がある。手数料は、ドメインを運営する運用者および/またはトランザクションの利害関係者に支払われ得る。手数料は、トランザクション、プロセス、およびドメインによって使用されるために必要とされるリソースの量によって決定されるトランザクションのコストに応じて決定され得る。これを簡単に行うために、各ノードは、手数料アカウントを持つことが可能であり、その手数料アカウントにおいて手数料が引き落とされ、手数料アカウントに支払われる。
紛争は、参加者が同意された期間内にトランザクションを確認しないか、検証に通らないトランザクションを組織的に要求するか、または不十分なリソースの要件を宣言するときなど、参加者が不正を働いているかまたは故障しているときに起こされ得る。
上述のように、一例において、確認条件は、参加者が提案されるトランザクションに適時応答することを求める。参加者が適時応答しない場合、そのトランザクションの参加者ノード(または代行者)は、裁定者ノードに対してタイムアウトの紛争を開始し得る。これは、違反を決定し、より重要なことに、違反を起こした特定の参加者ノードを決定するために使用され得る。そのようなタイムアウトの紛争を処理する例は、以下のうちの1つまたは複数を含み得る。
・影響を受けた確認要求のタイムスタンプを、メッセージングAPIによって配信された関連する証明および応答し損なった(責任を問われる参加者の)仮名と一緒に裁定者ノードに提出する。知られている場合、仮名の裏側のアイデンティティも送信される。
・アイデンティティが提供されなかった場合、裁定者ノードが、アイデンティティマネージャ170にアイデンティティを明かすように求める。責任を問われる参加者のアイデンティティを決定した後、裁定者ノードが、参加者に、参加者(特に参加者のそれぞれのノード)が応答した証拠の要求を送信する。証拠は、責任を問われる参加者かまたは容量モニタ(要求がOutOfQuota応答によって拒否された場合)かのどちらかからの確認応答を含む、メッセージングサービスからのタイムスタンプ付きのメッセージである。
・証拠が提供される場合、要求の開始者が永続的に「確認のみ」モードに移される、つまり、開始者は、システムにさらなる確認要求を送信することを禁じられるが、我々は、開始者がメッセージを受信し、確認応答を送信することを引き続き許す。
・責任を問われる参加者が応答しない場合、メッセージがブロードキャストされ、その参加者にオフラインとして印を付ける。オフラインの参加者は、確認のみモードに移され、それ以外の参加者は、それらのオフラインの参加者の確認要求を拒否することを許される。提出者は現在の方式において匿名であるので、拒否は、容量モニタまたは手当の会計担当者(allowance accountant)によって行われる可能性がある。責任を問われる参加者がオンラインに復帰した後、その参加者は、裁定者ノードによるなどして再び印を付けられる要求を発行することができる。要求は、利用可能でいるように参加者に奨励するために、特定の「冷却」期間の後にのみ承諾される可能性がある。
・責任を問われる参加者が無効な証拠によって応答する場合、その参加者は、永続的に(または指定されたペナルティ期間の間)確認のみモードに移される。
参加者の不正行為は、悪意のあるアクションが原因で起こり得る。例は以下を含む。
・参加者が、基礎となるシステムモデル(たとえば、DAMLシステムのDAMLモデル)に準拠しないトランザクションを提出する。
・参加者が、参加者がホストしない提出者の代わりにトランザクションを提出する。
・参加者が、提出者以外の関係者によって認可される必要があるトランザクションを提出する。
・参加者が、形式が整っていないトランザクションを提出する。
・参加者が、宣言された利害関係者の参加者をDAML(またはその他の代替的システム)のセマンティクスによる利害関係者の参加者と異なるように定義する。したがって、誤った参加者が、アクションについて知らされる。
・トランザクションを確認する受信者ノードが、アクションを検証するためにプロトコルによって規定されたアルゴリズムを適用しない。たとえば、アクションがアーカイブされた契約を使用するが、トランザクションを確認する受信者ノードがアクションを承認する。または、トランザクションを確認する受信者ノードが、検証アルゴリズムによって承認されるべきアクションを拒否する。
・外部ノードが、受信者ノードの誤ったリストを用いてメッセージを配信するか、または受信者ノードにメッセージを配信することに失敗する。
1. 確認要求(たとえば、提出された提案されるトランザクション)が、不正な形式としてフラグを立てられる。
2. 確認要求に対して(受信者ノードから期待されるものへの)競合する応答が到着する。
3. トランザクションが、容量の取り決めの枯渇(たとえば、リソースの欠乏)を誤って主張することによって拒否される。
1. 2者が同じ確認要求に関して競合する確認を発行する場合、2者のうちの1者が悪意を持っている(またはその者の参加者ノードがクラッシュではない形で正常に機能していない)。
2. 不正を働かない関係者が、裁定者ノードの助けを借りて、誰がごまかしていたのかを正確に特定するのに十分なデータを得る。
1. 上述のように準拠および認可の検査に通らない。
2. 提出ノード110による誤ったリソースの宣言。
1. 拒否する関係者が認可または準拠の問題のためにトランザクションを拒否した場合、確認要求自体で十分であり、または
2. 拒否する関係者が一貫性の検査のためにトランザクションを拒否した場合、拒否する関係者は、現在のトランザクションと競合する以前の最終的に確認されたトランザクションを提供すべきである。
我々が集中型メッセージングブローカ(たとえば、外部ノード230)を使用する場合、メッセージングブローカの不正行為が、必要とされるメッセージングレイヤのプロパティの違反を引き起こし得る。直観的に、ブローカのいかなる関連する不正行為も、参加者の状態の逸脱につながる。逸脱は、参加者が確認および/もしくはハートビートをやりとりするとき、または参加者が紛争を起こそうと試みるとき、参加者がブローカの不正行為を指し示す競合する証拠を持つので検出される。不正行為が影響を受ける関係者によって検出可能であるが、証明され得ない2つの場合が存在し、それらは、(i)ブローカが参加者からのすべてのメッセージを阻止するとき、および(ii)ブローカが参加者のメッセージを拒否するときである。
3つのその他の例示的な方法が、以降で説明される。第1は、単一のドメインにおける方法の例である。第2のおよび第3の例は、複数のドメインに関する。特に、第2は、ドメイン変更プロトコルに関する。第3は、マルチドメイントランザクションに関する。
図10から図13は、単一のドメイン1000における引き渡し対支払い(DvP: delivery-versus-payment)の例1001を示す。アリス1010およびボブ1012は、銀行1014によってアリス1010に与えられたIOUをボブ1012が持ついくらかの株式と交換したい。我々は、4人の関係者、すなわち、アリス(別名A)1010、ボブ(別名B)1012、銀行、および株式登録簿(share registry)SR 1016を有する。以下の3種類の契約も存在する。
1. 常に銀行1014を支援者とするIOU契約1031
2. 常にSR 1016を登録簿とする株式契約1033
3. アリス1010とボブ1012との間のDvP契約1035
1. 台帳のモデル内で定義された妥当性、すなわち、一貫性(主に、二重支払いがないこと)、準拠(ビューが有効なDAMLの解釈の結果である)、ならびに認可(アクタおよび提出者がビューのアクションを実行することを可能にされることを保証する)
2. 真正性(アクタおよび提出者がそれらのアクタおよび提出者がそうであると主張する者であることを保証する)
3. 透明性(通知されるべき参加者が通知を受けることを保証する)
1. 各ビューに関する正しい確認応答は、DAMLモデルを使用する一部の例においてはその確認応答が決定性であるので常に一意に決定される。しかし、性能的な理由で、我々は、参加者が不正を企んでまたは争いの下で行動し始めるとき、時折起こる誤った否定的応答を許す。システムは、不正を働かない参加者に、それらの参加者の応答の正しさかまたは誤った拒否の理由かのどちらかの証拠を提供する。
2. 大域的順序付けは、シーケンサ(外部ノード1018)において測定されるドメイン内の(仮想的な)大域的時間(global time)を生成し、参加者1010、1012、1014、1016は、それらの参加者がシーケンサ1018からメッセージを受信するときにはいつも時間が進んだことを知る。この大域的時間は、競合を検出し、解決し、タイムアウトが発生するときを判定するために使用される。概念的に、我々は、したがって、この大域的時間に関して同時にいくつかの参加者において行われるステップについて語り得るが、各参加者1010、1012、1014、1016は、このステップを異なる物理的時間に実行する。たとえば、図12のメッセージシーケンス図において、アリス1010、ボブ1012、銀行1014、および株式登録簿1016の参加者は、異なる物理的時間に確認要求1071、1072、1073、1074を受信するが、概念的に、これは、大域的時間のタイムスタンプts1において起こり、同様に、結果メッセージ1081に関してタイムスタンプts6において起こる。
・タイムアウトの使用: トランザクションの妥当性が(ドメイン中で一定である)タイムアウトの後に決定され得ない場合、トランザクションは拒否される。
・確認要求がタイムアウトする場合、システムは、参加者が確認応答を送信し損なった要求を提出する参加者1010に知らせる。これは、提出する参加者が不正行為に対して帯域外(out of band)アクションを行うことを可能にする。
・柔軟な確認ポリシー: 信頼と、完全性と、ライブネス(liveness)との間のトレードオフを提供するために、一部のドメインは、それらのドメインのそれぞれの確認ポリシーに合わせて調整される可能性がある。確認ポリシーは、どの参加者がどのビューを確認する必要があるかを指定する。これは、仲介者1020が要求が承認されたと宣言するのに十分な条件を決定することを可能にする。特に興味深いのは、あらゆるアクションに関して信頼された(VIP)関係者を情報の受取人として含むトランザクションに適用可能なVIP確認ポリシーである。VIP関係者の例は、市場運営者である。ポリシーは、VIP関係者の参加者が正しく行動すると仮定して台帳の妥当性を保証し、誤った行動は、この場合、引き続き検出され、証明されることが可能であるが、付随的結果(fallout)は、システム外で処理されなければならない。別の重要なポリシーは、すべての署名者およびアクタが確認することを求められる署名者確認ポリシーである。これは、署名者またはアクタをホストする参加者が無反応であるときにライブネスを犠牲にするVIP確認ポリシーと比べて低いレベルの信頼を必要とする。(軽視されている)別のポリシーは、すべての情報の受取人が確認することを求められる全確認ポリシーである。これは、最も低いレベルの信頼を必要とするが、含まれる参加者の一部が無反応であるとき、ライブネスを犠牲にする。
・アテステータ(attestator)ノード。アテステータノードは、オンデマンドのVIP参加者と考えられ得る。VIP関係者があらゆるアクションに関して情報の受取人であるようにDAMLモデルを構築する代わりに、アテステータノードは、オンデマンドでのみ使用される。トランザクションをコミットさせたい参加者は、アテステータノードにサブトランザクションの妥当性の明白な証拠を提供するのに十分な量の履歴を開示しなければならない。それから、アテステータのステートメントが、無反応の参加者の確認の代わりをする。
一部の例において、システムは、システムが複数のドメインおよび異なるドメインにまたがるトランザクションをサポートするという点において構成可能性を有する。構成可能性は、(アプリケーションレイヤではなく)同期レイヤにおいてドメイン間トランザクションに関するアトミック性の保証を提供する。これは、アプリケーションレベルでいくつかのドメインを1つの概念的な台帳に構成することを可能にし得る。ドメイン間トランザクションの手法は、以下を含む。
1. ドメイン変更プロトコル。これは、契約をあるドメインから別のドメインに転送するためのプロトコルである。そのようなプロトコルは、多くの必要とされる契約を単一のドメインに移すことによってマルチドメイントランザクションをシングルドメイントランザクションに変えるために使用され得る。つまり、それは、すべての影響を受ける契約のすべての利害関係者がその1つの共通のドメインに接続されることを要求する。
2. マルチドメイントランザクションのためのプロトコル。この手法は、異なるドメインの間の中継者として働き得る参加者ノードの一部を含む。この手法は、すべての利害関係者が単一のドメインに接続されることを要求しない。しかし、そのようなシステムは、トランザクションがすべてのドメインにまたがってアトミックに実行されるように利害関係者によるアクティブな参加を有することが重要である。
ドメイン変更プロトコルは、個々の契約を移動元のあるドメインから移動先の別のドメインに移す。契約は、以下の異なる理由で移される可能性がある。
・後続のトランザクションが単一のドメインの契約に関して働き得ることを保証するための準備ステップとして。
・異なるドメイン間の負荷を分散させるため(利害関係者によって行われる)。
・より良い市場の規則、手当、またはサービス品質を利用するため(やはり利害関係者によって行われる)。
・契約は、1つのドメインにのみ存在するかまたは別のドメインに転送中である。契約は、最終的に、契約の常駐先(residence)であるドメインに存在しなければならない。契約のすべての利害関係者は、その常駐先のドメインに直接接続されなければならない(または中継者を介して間接的に接続されなければならない)。
・すべての利害関係者は、それらの利害関係者の契約のすべてがどこに存在するかを知らなければならず、この情報をそれらの利害関係者のそれぞれの契約ストアにメタデータとして保存することができる。
・契約IDは、常駐先が変わるときに変化しない。
1. 開始者I 614が、移動元ドメインのメッセージブローカ610(すなわち、外部ノード)に転出要求621を送信する。転出要求TOは、契約ID、提出者、移動先ドメイン、および移動先ドメインのタイムスタンプts0を含む。
2. 移動元メッセージブローカ610が、時間ts1において要求TOにタイムスタンプを付け、その要求TOを利害関係者612および開始者614に送信する(623、624)。それらは、契約cidが時間ts1以降転送中であるとみなす。
3. 開始者614が、タイムスタンプを付けられた転出要求を含む転入要求TI 625を移動先ドメインのメッセージブローカ616(すなわち、移動先ドメインの外部ノード)に送信する。
4. 移動先メッセージブローカ616が、時間ts2において転入要求にタイムスタンプを付け、その転入要求を利害関係者612(すなわち、受信者ノードおよび/または提出ノードに関連付けられた利害関係者)ならびに開始者614に送信する(627、629)。そのとき、利害関係者612は、時間ts2以降、契約が移動先ドメインにあるとみなす。
3. 利害関係者P 612が、移動先ドメイン616に転送中止メッセージを送信する(731)。
4. 移動先ドメイン616が、時間ts2において転送中止にタイムスタンプを付け、その転送中止を利害関係者および開始者に転送する(733、735)。
5. 利害関係者P 612が、タイムスタンプを付けられた転送中止を転送中止通知として移動元ドメインのメッセージブローカ610に転送する(737)。
6. 移動元メッセージブローカ610は、時間ts1'においてこの通知にタイムスタンプを付け、この通知を利害関係者612および開始者ノード614に転送する(739、741)。それらは、やはりts1'以降、契約が移動元ドメインにあるとみなす。
7. ドメイン2から転送中止メッセージを受信する(735)とき、開始者ノード614は、利害関係者P 612がそれらの排他性時間期間に割り込まなかったことを保証するために、移動先ドメインのタイムスタンプが排他性タイムアウト630の後であることを検査する。
data TransferOutRequest = TransferOutRequest
{ contractID :: ContractID
, initiator :: Party
, proxiedInitiator :: Maybe Party
, targetDomainID :: SiriusDomainID
, targetTimestamp :: Signature SiriusDomainID Timestamp
, justification :: (ProvenanceProof, Randomness) }
i. 利害関係者612のリストが完全である。
ii. 提出者が、要求内で指定された開始者614である。
iii. 移動先ドメインが、すべての利害関係者に受け入れ可能である。
iv. 移動先のタイムスタンプが、移動先ドメインによって署名された。
v. 正当化する理由が、妥当である。
vi. 契約が、移動元ドメインに存在する。
vii. より小さな物理的なタイムスタンプを有する競合するドメインの変更またはトランザクションが存在せず、同じ転出要求に関して移動先ドメインに転送中止メッセージが存在しなかった。
data TransferInMessage = TransferInMessage
{ inContracts :: [TransferInRequest]
, submitter :: Party
, transaction :: Maybe RequestPayload }
data TransferInRequest = TransferInRequest
{ out :: TransferOutRequest
, originTimestamp :: Timestamp
, originSignature :: Signature }
(i) 参加者612が、転出ステップで説明されたように移動元ドメインにおいて転出要求を確認した。
(ii) 参加者612が、この転出要求に関してそれより前のタイムスタンプを有する転入確認要求または転送中止通知を見なかった。
(iii) 転出要求が、正しい移動先ドメインを指定する。
(iv) メッセージ内の転送の提出者が転出要求の開始者でない場合、少なくとも排他性タイムアウト630が、転出要求内のtargetTimestampと転入確認要求に対する移動先ブローカのタイムスタンプとの間に経過した。
(v) 開始者614が転送される契約の利害関係者でない場合、参加者が、メッセージブローカからの次のタイムスタンプが転送される契約に関する選択を遂行するトランザクションにあることを忘れずに検査する。
マルチドメイントランザクションは、複数のドメインからの契約にまたがり、明示的な契約のドメインの変更を必要としない。この節は、以下のプロパティおよび仮定を有するマルチドメイントランザクションのためのプロトコルを説明する。
・提出者が、トランザクションにおいて使用されるまたは生成される契約が存在するすべてのドメインに接続されなければならない。
・参加者がサブトランザクションの利害関係者であり、そのサブトランザクションの入力の契約が1つのドメインにあり、そのサブトランザクション自体が別のドメインにおいて発生するサブトランザクションを有する場合、参加者は中継者と呼ばれる。
・マルチドメイントランザクションの提出者が、常に中継者である。すべての中継者が、すべてのドメインに接続されなければならない。
・すべてのその他の利害関係者が、それらの利害関係者の契約があるドメインにのみ接続される必要がある。特に、すべての含まれる参加者が接続される単一のドメインが存在するとは限らない。
・複数のドメインに接続された参加者が、異なるドメインのアイデンティティの管理者に異なる鍵を登録した可能性がある。
・すべての中継者またはメッセージブローカのうちの1つが適時動作しないか、またはすべての中継者およびメッセージブローカのうちの1つの間の接続性の問題が起こるのでない限り、マルチドメイントランザクションが、すべてのドメインにまたがってアトミックに実行される。
・同じ台帳有効時間が、すべてのドメインで使用される。
・異なるドメインの間のクロックの差およびクロックドリフト(clock drift)に知られている限界が存在する。
・マルチドメイントランザクションが、確認要求の規則の悲観的拒否(pessimistic reject)および条件付き評決(conditional verdict)を用いて働く。
・すべての含まれるドメインが、同じ確定(finality)モデル(全確認または楽観的VIP確認)に従わなければならない。
・シングルドメイントランザクションは、マルチドメイントランザクションに先行し得る。
・あらゆる契約は、すべての利害関係者が接続される単一のドメインにあり、契約のすべての利害関係者は、その契約がどこにあるか常に知っている。
1. 期待される確認851、852が、その他のドメインの仮名性のある参加者も含む。そのとき、(この例においては提出者ノード815である)中継者が、その他のドメインのメッセージブローカ813、817を介して意図される受信者811、819に確認を転送する(853、854)責任を負う。
2. 参加者811、819がローカルのメッセージブローカ817、813にそれらの参加者の確認応答851、852を送り終えていなければならない時間を決定する確認期限845、846は、何らかの制約を受ける、提出者815が選択する確認期限のオフセットだけ(メッセージブローカのクロックに関してさえ)判断時間847、848よりも早い。リモートドメインからの確認851、852は、判断時間848、847までにドメインのメッセージブローカ(外部ノード)813、817に届いていなければならない。確認期限と判断時間との間のオフセットは、1つのドメインから確認を集め、もう1つのドメインにそれを転送するため、ならびにドメイン803、805の間のクロックスキュー(clock skew)および変化する確認応答のタイムアウトを隠すための時間を中継者に与える。
・評価のための台帳有効時間(LET)909
・論理的時間オフセット911、913
・確認期限のオフセット915、917
・論理的時間=物理的時間+論理的時間オフセット911, 913
・判断時間847, 848=論理的時間+確認応答のタイムアウト915, 917
・確認期限845, 846=判断時間848, 847 -確認期限のオフセット915, 917
マルチドメイントランザクションの例が、以降で、マルチドメイントランザクションに関するグローバルな担保の文脈で説明される。グローバルな担保の鍵の同期およびプライバシーの要件は、一般的なアトミックスワップにおいて捉えられる。
マルチドメイントランザクションを提出することは、シングルドメイントランザクションとは以下の点で異なる。
・サブトランザクションの契約(入力もしくは生成)が、親ノードの入力の契約と異なるドメインにある、または
・(シングルドメインの場合のように)利害関係者の集合が異なるあらゆるボックスは、そのボックスが関連付けられるドメインによってアノテーションされる。
・リソース要求内のリソースフィールドおよび手当フィールドが、Dを介して送信されるビューのリソースの要件および転送される手当のみを集約する。さらに、あらゆる中継者が、確認応答を中継するためのすべてのドメインにおけるリソースの限界を割り振られる。
・帯域幅が、Dを介して送信されるペイロードのサイズを指す。
・ペイロードデータが、Dを介して送信されるビューのアクションの記述のみを含む。
・リスト「allStakeholders」が、Dを介して送信されるボックスの利害関係者の仮名のみを含む。(提出者を含む)ある中継者Pがそれらの中にないが、それにもかかわらずDに接続される場合、提出者は、Pの仮名を人為的に生成し、その仮名を「allStakeholders」に追加する。
・期待される確認のリストが、すべてのドメインから必要とされる確認を含む。あらゆる確認に関して、たとえ確認がペイロードメッセージが送信されるドメインを介して送信されるとしてもドメインIDが設定される。
・「multiDomain」フィールドが、以下で説明されるようにリソース要求内で設定される。このフィールドは、特に、確認期限のオフセットおよび許容範囲を定義し、これは、下で説明される。
data MultiDomainData = MultiDomainData
{ confirmationDeadlineOffset :: TimeDistance
, confirmationTolerance :: TimeDistance
}
・logTimeOffsetが、確認期限のオフセットによって増やされる。
・要求のペイロードのメタデータ内の「multiDomain」フィールドは、その他のドメインのリソースIDのリストを用いて設定される。
data MultiDomainPayloadData = MultiDomainPayloadData
{ remoteRequestIds :: [(DomainID, RequestID)]
}
・提出者が、各ドメインのために、確認期限に関するオフセットを選択する。所与のドメインの参加者が、それらの参加者の確認を
論理的時間+ crt
の代わりに
論理的時間+ crt = confirmationDeadLineOffset
の前に送信しなければならず、式中、crtは、シングルドメインの場合からの確認応答のタイムアウトである。確認期限のオフセットは、次の制約を満たさなければならない。
confirmationDeadLineOffset < crt - 2 *Δ
式中、Δは、ドメインのメッセージブローカとの通信に関する予測されるネットワーク遅延である。さらに、確認期限のオフセットは、
2 *Δmax + confirmationTolerance + skew≦confirmationDeadLineOffset
を満たさなければならず、Δmaxは、任意の含まれる参加者からその参加者が接続される任意の含まれるドメインまでの最大の予測されるネットワーク遅延であり、skewは、任意の2つのドメインの間のクロックスキューの上限である。
・確認期限のオフセットが、あるドメインから別のドメインに確認を転送するための中継者として働くための時間を提出者(およびその他の参加者)に与える。上限は、すべての参加者がそれらの参加者が論理的時間を観測した後に確認応答を送信するための十分な時間を有することを保証する。下限は、ドメイン間で確認応答を転送するための時間を中継者に与える。
・確認許容範囲が、異なるドメインの確認期限がどれだけ離れている可能性があるかを指定する。提出者が異なるドメインの物理的なタイムスタンプをより正しく予測し得るほど、実際の確認期限は近くなり、より狭い許容範囲をその提出者が選択し得る。
・リソース要求が、ドメインのうちの1つにおいて拒否される。したがって、トランザクション全体が、拒否されなければならない。
・確認許容範囲が超えられるように、物理的なタイムスタンプがあまりにも大きくずれた。
確認要求831、833、835、837は、以下の点を除いてシングルドメイントランザクションと同様に処理される。
・参加者が、「RemoteRequestIDs」フィールドが重複するドメインIDを含まず、期待される確認に記載されたあらゆるドメインに関してちょうど1つのエントリを含むことを検査する。あらゆる参加者が、ペイロード要求内で与えられた要求IDおよびリモート要求IDから新しい要求識別子を導出する。導出は、リモート要求IDの順序に依存してはならない。新しい要求識別子は、確認応答のために使用される。
・トランザクションに関する確認期限が、
phys_ts + logTimeOffset + crt - confirmationDeadlineOffset
によって決定される。
・容量モニタが、トランザクションが容量の取り決めに合うかどうかを判定するために修正された確認期限を使用する。
・参加者が、
2 *Δmax + confirmationTolerance + skew≦confirmationDeadlineOffset < crt - 2 *Δ- skew
であることを検査する。
・リソース要求831、835および要求のペイロード833、837が、同じドメイン803、805を介して送信された。遂行に関して、入力の契約が、確認要求が送信されたドメインに存在する。生成に関して、要求のペイロードのドメインが、すべての利害関係者にとって受け付け可能である。
・各アクションに関して、参加者が、その参加者が確認応答を送信するときまでにその参加者が利害関係者であるすべてのサブトランザクションに関するボックスをその参加者が受信し終えていることを検査する。
・ビューのサブアクションが異なるドメインにおいて働く場合、参加者は、自身を中継者とみなす。
・ビューのサブアクションが異なるドメインにおいて働く場合、参加者は、その参加者がその参加者の確認を送信する前に以下のすべてを検査する。
- 「remoteRequestIDs」内のすべてのリモート要求IDの物理的なタイムスタンプが、ビューの確認期限の少なくともconfirmationTolerance +Δmax + skew前にある。
- その参加者が、「remoteRequestIDs」に挙げられたすべてのドメインのリソース要求を受信した。
- すべてのそれらの要求の確認期限のあらゆるペアが、最大で「confirmationTolerance」離れている。
・正しいドメインIDが、参加者に送信されるアクションボックスに関する期待される確認に関して設定される。
・メタデータおよびアクションボックスを照合するとき、参加者が、同じドメインのすべてのサブアクションを検査する。参加者が中継者である場合、参加者が、対応するドメインを介して送信された「allStakeholders」リストを用いてその他のドメインのすべてのサブアクションに対してもこの照合を実行する。(期待される確認者のリストが、どんな場合もすべてのサブアクションに関して検査される。)
data MultiDomainConfirmationData = MultiDomainConfirmationData
{ confirmationTolerance :: TimeDistance
}
あらゆる参加者が、確認内のマルチドメインデータがその参加者がリソース要求831、835で受信した同じ確認許容範囲を含むことをさらに検査することを除いて、(受信ノードとして動作する参加者のノード811、819などの)確認者は、シングルドメイントランザクションとまったく同様に確認応答を処理する。参加者は、すべての期待される確認が所与のドメイン803、805を介して到着した場合、トランザクションがこのドメインにおいて最終的に承認されるとみなす。特に、参加者が異なるドメインに異なる仮名で現れる場合、その参加者は、その参加者が2つの別々のエンティティであるかのように最終的な承認に関して働かなければならない。したがって、参加者は、トランザクションが1つのドメイン(たとえば、805)においてまだ保留中である一方で、別のドメイン(たとえば、803)においてそのトランザクションが最終的に承認されたとみなす可能性がある。特に、参加者は、その参加者がその他のドメインにおいてそのようにしてはならない一方で、後続の確認に関するその参加者の判断の根拠を1つのドメインにおける最終的な承認に置くことができる。それにもかかわらず、シングルドメイントランザクションのセマンティクスは、契約が1つのドメインにのみ存在し得るので、契約のすべての利害関係者がその状態について同意することを保証する。さらに、確定に関連する異なる状態は、タイムアウト、紛争、およびクラッシュが起きない限り、最も新しい判断時間が過ぎたときには収束している。
・その中継者は、すべてのドメインから確認応答を集める。
・(期待される確認のリストによって決定されるように)1つのドメインからの十分に多い確認応答が到着したとき、中継者は、その他のドメインのすべての参加者にすべての確認を送信する。複数のドメインに接続されたあらゆる参加者はその参加者が各ドメインにおいて別々のエンティティであるかのように働くので、中継者は、たとえそれらが契約利害関係者であるとしてもその他のドメインの仮名を有する参加者を省略してはならない。
一部の例において、確認応答851、852は、ローカルの確認期限845、846までに送信されなければならない。その他のドメインからの応答は、判断時間847、848までに着きさえすればよい。これらの2つのタイムスタンプは、2フェーズコミットプロトコルの2つのフェーズの終わりを表し、つまり、すべての参加者は、確認期限までに提出者にコミットの準備を送信しなければならず、それらの参加者は、判断時間847、848までのコミットまたは中止を期待し得る。
・参加者が、txの1つのサブトランザクションtx1が何らかのドメイン(たとえば、第1のドメインD1)において承認され、txの別のサブトランザクションtx2が別のドメイン(たとえば、第2のドメインD2)において拒否される場合、マルチドメイン(サブ)トランザクションtxのアトミック性が破られたとみなす。
・シングルドメインサブプロトコルが1つのドメイン内の完全性およびアトミック性を保証するので、D1 = D2またはtx1 = tx2、つまり、単一のドメインまたは単一のサブトランザクションに関する競合を考える必要がない。特に、我々は、中継者ではない参加者を無視し得る。
・したがって、D1≠D2であり、結果として、tx1≠tx2である。アトミック性の違反は、トランザクションtx全体に関するすべての期待される確認がドメインD1に届いたが、D2には届かなかった場合にのみ起こり得る。時間内に確認応答を転送することによって参加者がこの状況を回避することを示せば十分である。
・txiが、確認応答がD1に届いたが、D2には届かなかったいずれかのサブトランザクションであるものとする。Diが、txiが送信されるドメインを表すものとする。中継者がトランザクションに関与するすべてのドメインに接続されるので、中継者は、特に、Diに接続される。中継者がDiを介してリソース要求およびペイロード要求を受信したので、中継者は、Diを介して送信された「allStakeholders」リストの一部である。txiに関する確認がD1に届いたので、それらの確認は、確認期限の前にドメインDi上で送信されたはずである。メッセージブローカがメッセージングAPIを正しく実施すると仮定すると、中継者は、これらの確認を時間内に受信した。中継者は、これらの応答をすべてのドメイン、特に、D2に転送する。したがって、応答は、ドメインD2に到着する。
・中継者が確認応答を時間内に転送し得ることを示すことが残っている。中継者は、(D2のメッセージブローカによって測定される)時間
confirmationDeadlinei +Δmax + skew
の前にドメインDiからそれらの確認応答を受信する。したがって、参加者がそれらの確認応答を直ちに転送する場合、それらの確認応答は、
confirmationDeadlinei + 2*Δmax + skew
の前にD2のメッセージブローカに届く。中継者は、確認応答を処理する間に、
confirmationDeadlinei≦confirmationDeadline2 + confirmationTolerance
2 *Δmax + confirmationTolerance + skew≦confirmationDeadlineOffset2
であることを検査した。decisionTime2 = confirmationDeadline2 + confirmationDeadlineOffset2であるので、我々は、所望の関係
confirmationDeadlinei + 2 *Δmax + skew≦decisionTime2
を有する。
様々なドメイン803、805におけるタイムアウトを選択するのは、パラメータを選択する提出者815である。したがって、提出者815が、それ自体のために提出者ノード815が設定するタイムアウト以内に提出者815が転送を実際に実現することができるようなパラメータを選択すべきであるので、提出者815が、ドメイン間で確認応答を転送する(853、854)責任を負う。トランザクションのすべてのその他の参加者811、819は、それらの参加者がそれらの参加者のそれぞれのタスクを時間内に行い、トランザクションへのそれらの参加者の関心を押し通すことができる可能性が高いようなタイミングパラメータを提出者815が選択したかどうかを検査するだけである。
シングルドメイントランザクションと同様に、参加者は、マルチドメイントランザクション内で不正を働き得る。この節は、マルチドメイントランザクションに固有の不正行為の場合を特定する。シングルドメイントランザクションで起こり得る不正行為に対する対策は、同じままである。
リソース要求831、835および要求のペイロード833、837のメッセージがドメイン803、805に分けられるので、メッセージングAPIは、すべての参加者が同じメッセージの部分を受信することをもはや保証することができない。詳細には、提出者815が、異なるドメイン803、805に一貫性がない情報を送信する可能性がある。参加者のノード811、819は、以下の不整合を検出し、それらのドメインにおいて適切な紛争を起こすことができる。紛争の規則は、すべてのこれらの場合に適用されるようにやはり拡張される必要がある。
・LET: あらゆる参加者は、ペイロード要求からのLETをその確認応答に含める。参加者が確認応答を処理するとき、その参加者は、LETがその参加者が見たLETと同じであることを検査する。提出者が異なるビューに関するLETを送信する場合、少なくともすべての中継者が違いに気付く。(中継者のいずれも検査しない場合、不正を働かない参加者は、アトミック性に、つまり、LETの一貫性に注意を払わない。)
・リモート要求ID: すべての参加者は、すべての要求IDからトランザクション識別子を導出し、それらの参加者は、そのトランザクション識別子をそれらの参加者の確認応答に使用する。参加者が要求IDの異なるリストを受信する場合、導出されるトランザクション識別子が異なる。したがって、その他の参加者は、これらの確認を承認せず、参加者(同じドメイン)または提出者(その他のドメイン)に対して(形式が整っていないことかまたは確認がないことかどちらかの理由で)紛争を起こす。同じドメインの場合は、メッセージブローカが指定されたようにメッセージングAPIを実装しない場合にのみ起こり得る。
・期待される確認: あらゆる確認応答は、期待される確認のハッシュを含む。期待される確認の異なるリストは、異なるハッシュを有し、したがって、整っていない形式の確認応答についての紛争を生じる。
・確認許容範囲: 確認許容範囲は、確認応答に含まれ、参加者は、確認内の値がそれらの参加者が受信したリソース要求と同じであることを検査する。異なる確認許容範囲は、したがって、整っていない形式の確認応答についての紛争を生じる。
マルチドメイントランザクションにおいて、提出者は、シングルドメイントランザクションに関するパラメータに加えて以下のパラメータを指定する。
・タイミングパラメータ「confirmationDeadlineOffset」(ビュー毎)および「confirmationTolerance」
・期待される確認内のドメインID
・リモート要求ID
アトミック性は、マルチドメイントランザクションの中継者が確認が時間内に転送されることを積極的に保証しなければならないのでそれらの中継者に負担をかける。したがって、参加者811、819は、いずれのマルチドメイントランザクションにおいても中継者として働くことを控えたい可能性がある。しかし、参加者が単一のドメインにのみ接続されるのでない限り、参加者は、これを保証し得ない。
1つまたは複数のアイデンティティマネージャノード170、270が、提供されることが可能であり、一部の例においては、異なるドメインが、それぞれのアイデンティティマネージャ170、270を有する。アイデンティティマネージャノード(およびアイデンティティマネージャシステム全般)は、同期システムと同じ信頼およびトポロジーを持ち得る。システムは、ドメインが任意のノードによって生成されることが可能であり、参加者がドメインの運用者から認可を得る限り任意の参加者ノードが任意のドメインに接続することが可能であるように構成される可能性がある。つまり、システムは、単一の大域的なアイデンティティマネージャを持たないかまたは必要としない。
・参加者への関係者のマッピング。特定の時間に状態を問い合わせ、関係者の知られている識別子を1組の参加者に関連付け、ローカルの参加者を1組のホストされる関係者に関連付ける更新のストリームに申し込む。1組の参加者へのマッピングは、複数の参加者を使用する関係者に関する高レベルの要件を満たす。
・参加者の資格。特定の時間に状態を問い合わせ、信頼できない(信頼レベル0)かまたは信頼できる(信頼レベル1)かのどちらかを示す参加者の信頼レベルについて私に知らせる更新のストリームに申し込む。
・参加者の関係の資格。関係者と参加者の関係が、資格を与えられ、(確認を含む)提出、確認、および観察(読み取りのみ)に制限される。これは、読み取りのみの参加者に関する高レベルの要件をやはり満たす。
・鍵への参加者のドメインを意識したマッピング。特定の時間に状態を問い合わせ、同期ドメイン毎に1組の鍵に参加者をマッピングする更新のストリームに申し込む。
・ドメインのエンティティの鍵。現在の状態を問い合わせ、ドメインのエンティティの鍵に関する更新のストリームに申し込む。
・鍵のライフタイムおよび目的。受信された任意の鍵に関して、その鍵が何のために使用され得るか、その鍵がどの暗号プロトコルに関連するか、およびその鍵がいつ失効するかを知る。
・署名の検査。ブロブ、IPSから取得された鍵、および署名が与えられると、署名が、特定の時間にそれぞれの鍵によって署名された、与えられたブロブに関して有効な署名であることを確かめる。
・不変性。すべての鍵の履歴は、それが参加者またはドメインのエンティティのログを監査するために使用され得るように監査ログと同じ期限内は保存される。
・証拠。アイデンティティマネージャから受信された任意のデータに関して、法的紛争における主張を証明するための1組の関連する証拠を得る。関連する証拠は、そうでなければ不透明なブロブの定義に関する資料を読んで調べるために使用され得るディスクリプタを含む。
・競争条件なし。飛行中の鍵の変更(in-flight key change)が原因であるトランザクションの妥当性に関する不同意が存在し得ないようにトランザクションに関連して鍵の妥当性についての確実性を確認する。
・関係者に関する問い合わせ。不透明な問い合わせステートメントを使用して、関係者に関してアイデンティティマネージャに問い合わせ、特定の参加者ノード/IPSクライアントに知られていないプライバシーポリシーに基づいて結果を受信する。
・関係者メタデータ。表示する目的で関係者に関連するメタデータにアクセスする。
・同等の信頼の仮定。参照アイデンティティ管理サービスのフェデレーション(federation)プロトコルは、2者の能力の間の不一致が存在しないように相互運用プロトコルと同等の信頼の仮定に基づく必要がある。
/**公開鍵のフィンガープリントによって張られる名前空間
*
*これは、フィンガープリントが公開鍵に対して一意であるという仮定に基づく*/
final case class Namespace(fingerprint: Fingerprint)
/**名前空間内の一意識別子*/
final case class UniqueIdentifier(id: Identifier, namespace: Namespace) {
上述の開示は、各ドメインがそのドメイン内またはそのドメイン中でトランザクションを行うための1組のコンポーネントを含み得ることを明記する。たとえば、ドメインは、ドメイン内の参加者ノード(たとえば、ノード110、120、210、220、811、815、819)によって提出されたトランザクションを順序付けるためのシーケンサまたは外部ノード(たとえば、ノード130、230、813、817、1018)と、ドメイン内の確認を集約し、確認の忠実さを保証するための仲介者ノード280とを含み得る。ドメインの代替的な構築も可能であり、本開示によって想定されることを理解されたい。
102 プロセス
104 ネットワーク
110 提出ノード
120 受信者ノード
122 第2の受信者ノード
130 外部ノード
140 提案されるトランザクション
142 暗号化されていないサブメッセージ
144 暗号によって保護されたサブメッセージ、暗号化されたサブメッセージ
150 確認
152 確認
160 台帳
170 アイデンティティマネージャ、アイデンティティマネージャノード
200 システム
210 提出ノード
220 受信者ノード
222 受信者ノード
224 受信者ノード
230 外部ノード
240 提案されるトランザクション
242 暗号化されていないサブメッセージ
244 暗号化されたサブメッセージ
246 暗号化されたサブメッセージ
250 確認
252 確認
260 台帳
262 台帳
264 台帳
270 アイデンティティマネージャ、アイデンティティマネージャノード
280 仲介者、仲介者ノード
300 例
302 提案されるトランザクション、PaintOfferプロセス
310 サブアクション、IOUの転送
312 IOU
320 PaintAgree
330 参加者A
340 参加者P
342 銀行
502 プロセッサ
503 メモリ
504 命令、プログラムコード
506 データ
508 ネットワークインターフェースデバイス
509 分散型台帳インターフェースデバイス
510 ネットワークインターフェースデバイス
512 ユーザインターフェース
514 出力
516 参加者
610 移動元ドメインのメッセージブローカ、メッセージブローカドメイン1
612 利害関係者
614 開始者ノード、開始者
616 移動先ドメインのメッセージブローカ
621 転出要求
623 転出要求確認
624 転出要求
625 転入要求TI、転入メッセージ
630 排他性タイムアウト
803 ドメイン1
805 ドメイン2
811 参加者1
813 メッセージブローカ
815 提出ノード、提出者
817 メッセージブローカ
819 参加者2
831 リソース要求
833 要求のペイロード
835 リソース要求
837 要求のペイロード
845 確認期限
846 確認期限
847 判断時間
848 判断時間
851 確認応答
852 確認応答
853 転送
854 転送
909 台帳有効時間(LET)
911 論理的時間オフセット
913 論理的時間オフセット
915 確認期限のオフセット
917 確認期限のオフセット
921 論理的時間
923 論理的時間
925 許容範囲
927 許容範囲
953 確認許容範囲
1000 単一のドメイン
1001 引き渡し対支払い(DvP)の例
1010 アリス
1012 ボブ
1014 銀行
1016 株式登録簿SR
1018 シーケンサ、外部ノード
1020 仲介者
1031 IOU契約
1033 株式契約
1035 DvP契約
1041 トランザクションの確認要求
1051 妥当性の検査
1053 妥当性の検査
1055 妥当性の検査
1057 妥当性の検査
1061 応答
1062 応答
1063 応答
1064 応答
1071 確認要求
1072 確認要求
1073 確認要求
1074 確認要求
1300 確認要求の状態遷移図
1410 第1のボックス
1410' ボックス
1420 第2のボックス
1510 第1のアクション、PaintOfferの受け付け
1520 PaintAgreementの生成
1530 アクション、IOUの転送
1540 アクション、IOUの転送
1610 第1のビュー
1610' 第1のビューのコア
1620 第2のビュー
1630 第3のビュー
1700 候補データ構造
1701 フェンス塗装トランザクション
1710 PaintOfferの受け付け
1711 PaintOfferの受け付け
1720 IOUの転送
1721 IOUの転送
1730 サブビュー
1800 候補表現
1900 候補表現
1913 利害関係者の情報
1923 利害関係者の情報
1933 利害関係者の情報
1950 その他の情報
Claims (62)
- 参加者が複数いるプロセスをスケジューリングし、検証する方法であって、
前記参加者が複数いるプロセスの参加者に関連する提出ノードによって、暗号によって保護されたメッセージを1つまたは複数の受信者ノードに送信することによって、提案されるトランザクションを提出するステップであって、前記暗号によって保護されたメッセージが、少なくとも、外部ノードによって読み取り可能な暗号化されていないサブメッセージ、および少なくとも前記外部ノードからプライバシーを守るための暗号によって保護されたサブメッセージを含む、ステップと、
前記外部ノードによって、その他のトランザクションに対する前記提案されるトランザクションの順序を決定するステップと、
前記受信者ノードの少なくとも一部によって、前記暗号によって保護されたメッセージを検証するステップと、
前記受信者ノードの少なくとも一部から前記暗号によって保護されたメッセージの妥当性の確認を受信するステップと、
確認条件を満たす前記受信者ノードの少なくとも一部からの1つまたは複数の確認を受信することに基づいて、前記提案されるトランザクションを確認されたトランザクションとして確定するステップと、
前記外部ノードによって決定された前記順序に従って、前記確認されたトランザクションを分散型台帳に書き込むステップとを含む、方法。 - 前記1つまたは複数の受信者ノードが、少なくとも第1の受信者ノードおよび第2の受信者ノードを含み、前記暗号によって保護されたサブメッセージが、前記第1の受信者ノードによって読み取り可能であるが、前記第2の受信者ノードによって読み取り可能でない請求項1に記載の方法。
- 前記第1の受信者ノードが、前記暗号によって保護されたサブメッセージを復号するための復号鍵にアクセスすることができるが、前記第2の受信者ノードが、前記復号鍵にアクセスすることができない請求項2に記載の方法。
- 前記暗号によって保護されたメッセージが、前記外部ノードに送信され、前記外部ノードが、前記暗号によって保護されたメッセージを前記1つまたは複数の受信者ノードに送信する請求項1に記載の方法。
- 前記1つまたは複数の受信者ノードが、前記1つまたは複数の受信者ノードのアイデンティティをその他の受信者ノードから隠すために仮名性のあるアドレスを使用する請求項1から4のいずれか一項に記載の方法。
- 前記提出ノードと仮名性のあるアドレスとの間および前記1つまたは複数の受信者ノードと仮名性のあるアドレスとの間の関連付けを維持するアイデンティティマネージャをさらに含む請求項5に記載の方法。
- 前記暗号によって保護されたメッセージの妥当性を決定することが、前記暗号化されていないサブメッセージに基づく請求項1から6のいずれか一項に記載の方法。
- 前記暗号化されていないサブメッセージに基づいて、前記暗号によって保護されたメッセージの妥当性を決定することが、前記提案されるトランザクションのトランザクション時間が前記外部ノードによって与えられたタイムスタンプの期間内にあるかどうかを判定することを含む請求項7に記載の方法。
- 前記提案されるトランザクションの前記トランザクション時間が、タイムスタンプの範囲である請求項8に記載の方法。
- 前記暗号によって保護されたメッセージの妥当性を決定することが、前記暗号によって保護されたサブメッセージに基づく請求項1から9のいずれか一項に記載の方法。
- 前記暗号によって保護されたサブメッセージに基づいて前記暗号によって保護されたメッセージの妥当性を決定することが、前記提案されるトランザクションが前のトランザクションと競合するかどうかを特定することを含む請求項10に記載の方法。
- 暗号化されたサブメッセージに基づいて前記暗号によって保護されたメッセージの妥当性を決定することが、前記提案されるトランザクションの形式が整っているかどうかを判定することを含む請求項10または11に記載の方法。
- 前記暗号によって保護されたサブメッセージに基づいて前記暗号によって保護されたメッセージの妥当性を決定することが、前記提案されるトランザクションが1組の準拠規則に準拠するかどうかを判定することを含む請求項10から12のいずれか一項に記載の方法。
- 前記提案されるトランザクションが前記前のトランザクションと競合するかどうかを特定することが、前記前のトランザクションが前記分散型台帳に記録されたかどうかを検査することを含む請求項11に記載の方法。
- 前記暗号によって保護されたメッセージの妥当性を決定することが、前記暗号化されていないサブメッセージおよび前記暗号によって保護されたサブメッセージに基づく請求項1から14のいずれか一項に記載の方法。
- 妥当性を決定することが、前記暗号化されていないサブメッセージが前記暗号によって保護されたサブメッセージと一貫性があるかどうかを判定することを含む請求項15に記載の方法。
- 前記確認条件が、
前記参加者が複数いるプロセスの参加者に対応する各受信者ノードから確認を受信すること、
割り当てられた時間期間内に指定された量の確認を受信すること、
前記1つもしくは複数の受信者ノードの指定されたサブセットから確認を受信すること、または
暗号学的証明器またはトラステッドハードウェアなどの確かめることが可能なアテステーションメカニズムから確認を受信すること
のうちの1つまたは複数である請求項1から16のいずれか一項に記載の方法。 - 前記1つまたは複数の受信者ノードがそれぞれの受信者ノードに関する期待されるアクションに従って働かないかどうかを判定する裁定者ノードをさらに含む請求項1から17のいずれか一項に記載の方法。
- 前記裁定者ノードが、
前記提案されるトランザクションの形式が整っているかどうか、
前記1つもしくは複数の受信者ノードによって提供された前記確認が1つもしくは複数のその他の確認と競合するかどうか、および
前記提案されるトランザクションが容量の取り決めの枯渇を誤って示すかどうかのうちの1つまたは複数を判定する請求項18に記載の方法。 - 前記裁定者ノードが紛争解決プロセスを実行するステップをさらに含む請求項18に記載の方法。
- 前記提案されるトランザクションの形式が整っているかどうかを判定することが、
前記提案されるトランザクションが前記準拠規則に準拠すること、
前記提案されるトランザクションが前記1つもしくは複数の受信者ノードの必要とされるサブセットによって認可されること、および
前記提案されるトランザクションがリソースの要件の正しい宣言を有することのうちの1つまたは複数を検査することを含む請求項19に記載の方法。 - 前記1つまたは複数の受信者ノードのうちの第1の受信者ノードが、前記紛争解決プロセスを開始するために前記裁定者ノードに前記提案されるトランザクションを転送する請求項18から21のいずれか一項に記載の方法。
- 前記紛争解決プロセスが、前記提出ノードまたは前記1つもしくは複数の受信者ノードから決定された不正を働くノードに前記裁定者ノードが罰を科すことによって解決される請求項22に記載の方法。
- 前記罰が、
前記不正を働くノードがトランザクションを提出する能力を取り除くこと、
前記不正を働くノードに関連する前記提案されるトランザクションに、凍結されたものとしてフラグを立てること、
前記裁定者ノードによって決定された、前記不正を働くノードに関するカスタムの罰、および
ドメインの規則で定義された、前記不正を働くノードに関する罰のうちの1つまたは複数である請求項23に記載の方法。 - 前記裁定者ノードが、前記紛争解決プロセスの結果を前記提出ノードおよび/または前記第1の受信者ノードに伝達する請求項22から24のいずれか一項に記載の方法。
- 前記紛争解決プロセスが、ドメインの規則で定義される請求項22から25のいずれか一項に記載の方法。
- 前記第1の受信者ノードに加えてその他の受信者ノードが、1つまたは複数のメッセージを前記紛争解決プロセスのための証拠として前記裁定者ノードに提供する請求項22から26のいずれか一項に記載の方法。
- 前記提案されるトランザクションの前記順序を決定するステップが、前記暗号化されていないサブメッセージに基づく請求項1から27のいずれか一項に記載の方法。
- 前記提案されるトランザクションが、前記暗号によって保護されたメッセージが前記外部ノードによって受信される時間に対応する物理的なタイムスタンプを与えられる請求項28に記載の方法。
- 前記その他のトランザクションに対する前記提案されるトランザクションの前記順序が、前記物理的なタイムスタンプに基づく請求項29に記載の方法。
- 前記提案されるトランザクションの前記順序が、前記提案されるトランザクションに割り振られた論理的なタイムスタンプに基づく請求項1から30のいずれか一項に記載の方法。
- 前記論理的なタイムスタンプが、前記物理的なタイムスタンプの定義された時間期間内の時間に対応する、請求項29または30の記載を引用する場合における請求項31に記載の方法。
- 前記暗号によって保護されたサブメッセージが暗号化されたサブメッセージである請求項1から32のいずれか一項に記載の方法。
- 参加者が複数いるプロセスをスケジューリングし、検証する方法であって、
前記参加者が複数いるプロセスの参加者に関連する提出ノードによって、暗号によって保護されたメッセージを1つまたは複数の受信者ノードに送信することによって、提案されるトランザクションを提出するステップであって、前記暗号によって保護されたメッセージが、少なくとも、外部ノードによって読み取り可能な暗号化されていないサブメッセージ、および少なくとも前記外部ノードからプライバシーを守るための暗号によって保護されたサブメッセージを含む、ステップと、
前記外部ノードによって、その他のトランザクションに対する前記提案されるトランザクションの順序を決定するステップと、
前記暗号化されていないサブメッセージに基づいて、前記参加者が複数いるプロセスの参加者に関連する1つまたは複数の受信者ノードを前記外部ノードによって決定するステップと、
前記外部ノードによって少なくとも前記暗号によって保護されたサブメッセージを前記1つまたは複数の受信者ノードに送信するステップと、
前記暗号によって保護されたサブメッセージの妥当性を前記1つまたは複数の受信者ノードによって決定するステップと、
前記外部ノードによって前記1つまたは複数の受信者ノードから前記暗号によって保護されたサブメッセージの妥当性の確認を受信するステップと、
前記確認を受信するべき1つまたは複数のノードを前記外部ノードによって決定するステップと、
前記外部ノードによって前記確認を前記1つまたは複数のノードに送信するステップと、
前記1つまたは複数の受信者ノードによって提供された前記確認が確認条件を満たすかどうかに基づいて、前記提出ノードによって前記提案されるトランザクションを確認されたトランザクションとして確定するステップと、
前記外部ノードによって決定された前記順序に従って前記提出ノードによって前記確認されたトランザクションを分散型台帳に書き込むステップとを含む、方法。 - 前記1つまたは複数の受信者ノードによって提供された前記確認を仲介者ノードによって受信し、集約するステップをさらに含む請求項1から34のいずれか一項に記載の方法。
- 前記確認の集約を記憶するステップ、
前記確認の前記集約を別のノードに送信するステップ、および
前記確認の前記集約に基づいて前記提案されるトランザクションを確認するステップ
のうちの1つまたは複数をさらに含む請求項35に記載の方法。 - 実行されるときにノードまたは一連の関連するノードに請求項1から36のいずれか一項に記載の方法を実行させるプログラム命令を含む有形のコンピュータ可読記録媒体。
- 参加者が複数いるプロセスにおいてトランザクションまたは一連のトランザクションをスケジューリングし、検証する方法であって、
少なくとも、前記参加者が複数いるプロセスの参加者に関連する1つまたは複数の受信者ノードに部分的に暗号化されたメッセージを送信することによって、提案されるトランザクションを提出するステップであって、前記部分的に暗号化されたメッセージが、少なくとも、外部ノードによって読み取り可能な暗号化されていないサブメッセージ、および少なくとも前記外部ノードからプライバシーを守るための暗号化されたサブメッセージを含む、ステップと、
前記受信者ノードから前記部分的に暗号化されたメッセージの妥当性の確認を受信するステップと、
確認条件を満たす前記受信者ノードの少なくとも一部からの1つまたは複数の確認を受信することに基づいて、前記提案されるトランザクションを確認されたトランザクションとして確定するステップと、
その他のトランザクションに対する前記確認されたトランザクションの順序を前記外部ノードから受信するステップと、
前記外部ノードによって決定された前記順序に従って、前記確認されたトランザクションを台帳に書き込むステップとを含む、方法。 - 前記1つまたは複数の受信者ノードが、少なくとも第1の受信者ノードおよび第2の受信者ノードを含み、前記方法が、前記暗号化されたサブメッセージを前記第1の受信者ノードに送信するステップであって、前記暗号化されたサブメッセージが、前記第1の受信者ノードによって制御される復号鍵によって復号可能であるが、前記第2の受信者ノードによって制御される復号鍵によって復号可能でない、ステップをさらに含む請求項38に記載の方法。
- 前記暗号化されたサブメッセージが、前記第2の受信者ノードに送信されない請求項39に記載の方法。
- 各受信者ノードの仮名性のあるアドレスを決定するステップをさらに含み、それぞれの仮名性のあるアドレスが、それぞれの受信者ノードのアイデンティティをその他の受信者ノードから隠すために使用される請求項38から40のいずれか一項に記載の方法。
- 実行されるときに提出ノードに請求項38から41のいずれか一項に記載の方法を実行させるプログラム命令を含む有形のコンピュータ可読記録媒体。
- 参加者が複数いるプロセスにおいて複数のトランザクションをスケジューリングし、検証する方法であって、
ノードまたは一連の関連するノードによって、
A. 前記参加者が複数いるプロセスを構成する前記複数のトランザクションに対応する複数のメッセージの順序を決定するステップと、
B. 前記参加者が複数いるプロセスの参加者に関連する提出ノードから、部分的に暗号化されたメッセージを含む提案されるトランザクションを受信するステップであって、前記部分的に暗号化されたメッセージが、少なくとも、前記ノードまたは前記一連の関連するノードによって読み取り可能な暗号化されていないサブメッセージを含む、ステップと、
C. 前記暗号化されていないサブメッセージに基づいて、前記参加者が複数いるプロセスの参加者に関連する受信者ノードを決定するステップと、
D. 前記部分的に暗号化されたメッセージを前記受信者ノードに送信するステップと、
E. 前記受信者ノードから前記部分的に暗号化されたメッセージの妥当性の確認を受信するステップと、
F. 前記確認を前記提出ノードに送信するステップとを含む、方法。 - 前記受信者ノードの仮名性のあるアドレスを決定するステップをさらに含み、前記仮名性のあるアドレスが、前記受信者ノードのアイデンティティをその他のノードから隠すために使用される請求項43に記載の方法。
- 実行されるときにノードまたは一連の関連するノードに請求項42から44のいずれか一項に記載の方法を実行させるプログラム命令を含む有形のコンピュータ可読記録媒体。
- 前記分散型台帳が、前記提出ノード、前記外部ノード、および/または前記受信者ノードの間のメッセージを記録し、前記分散型台帳に書き込まれた前記確認されたトランザクションが、前記記録されたメッセージを含み、それによって、前記外部ノードによって決定された前記順序が、前記記録されたメッセージから立証されるかまたは導出され得る請求項1から36のいずれか一項に記載の方法。
- 前記分散型台帳が、それぞれが前記分散台帳のそれぞれの部分的なコピーを保有する複数の異なる台帳を含み、前記分散型台帳が、前記複数の異なる台帳の部分的な記録から構築される請求項1から36および46のいずれか一項に記載の方法。
- 前記外部ノードに関連する第1のドメインから目標外部ノードに関連する目標ドメインへの前記参加者が複数いるプロセスの変更をさらに含み、
前記第1のドメインの前記外部ノードによって開始者ノードから転送要求を受信するステップであって、前記転送要求が、前記目標ドメインおよび前記目標外部ノードを指定する、ステップと、
前記第1のドメインの前記外部ノードによって、前記提案されるトランザクションをホストするための前記目標ドメインおよび前記目標外部ノードの妥当性を決定するステップと、
前記目標ドメインが前記提案されるトランザクションを正当にホストし得ると決定することに基づいて、前記目標ノードにおいて前記提案されるトランザクションをスケジューリングし検証する認可を、前記開始者ノードに送信するステップとを含み、前記提案されるトランザクションを順序付けるステップが、前記目標外部ノードによって実行される請求項1から36のいずれか一項に記載の方法。 - 前記提出ノードおよび/または前記受信者ノードにおいて前記転送要求を受信するステップと、
前記提出ノードおよび/または前記受信者ノードにおいて、前記提案されるトランザクションをホストするための前記目標ドメインおよび前記目標外部ノードの妥当性を決定するステップと、
前記目標ドメインが前記提案されるトランザクションを正当にホストし得ると決定することに基づいて、前記目標ノードにおいて前記提案されるトランザクションをスケジューリングし検証する認可を、前記開始者ノードに送信するステップとをさらに含む請求項48に記載の方法。 - 前記開始者ノードへの前記認可が、指定されたタイムアウト条件に関連付けられ、前記認可が、前記指定されたタイムアウト条件に基づいて有効および/または排他的である請求項48または49に記載の方法。
- 参加者が複数いるプロセスをスケジューリングし、検証する方法であって、前記参加者が複数いるプロセスが、
第1の外部ノード、第1の受信者ノード、および前記参加者が複数いるプロセスの参加者に関連付けられる提出ノードに関連付けられる第1のドメイン、
第2の外部ノード、第2の受信者ノード、および前記提出ノードまたは別個の中継ノードに関連付けられる第2のドメインを含み、前記提出ノードまたは前記中継ノードが、前記第1の外部ノードと前記第2のノードとの両方と通信し、
前記方法が、
- 前記提出ノードによって、前記第1のドメインのための第1の提案されるトランザクションおよび前記第2のドメインのための第2の提案されるトランザクションを決定し、前記第1の提案されるトランザクションおよび前記第2の提案されるトランザクションが、前記第1の受信者ノードおよび前記第2の受信者ノードを含む提案される参加者が複数いるトランザクションを共同で形成し、
前記第1の提案されるトランザクションおよび前記第2の提案されるトランザクションの各々が、それぞれの受信者ノードへの暗号によって保護されたメッセージを含み、前記暗号によって保護されたメッセージが、少なくとも、それぞれのドメインの外部ノードによって読み取り可能な暗号化されていないサブメッセージ、および少なくとも前記外部ノードからプライバシーを守るための暗号によって保護されたサブメッセージを含む、ステップと、
- 前記提出ノードおよび/または前記中継ノードによって、前記第1の提案されるトランザクションを前記第1の受信者ノードに提出し、前記第2の提案されるトランザクションを前記第2の受信者ノードに提出するステップと、
- 前記第1の外部ノードによって前記第1の提案されるトランザクションに関する第1の順序を決定するステップと、
- 前記第2の外部ノードによって前記第2の提案されるトランザクションに関する第2の順序を決定するステップと、
- 前記第1の受信者ノードおよび前記第2の受信者ノードによってそれぞれの暗号によって保護されたメッセージを検証するステップと、
- 前記第1の受信者ノードおよび前記第2の受信者ノードから前記暗号によって保護されたメッセージの妥当性の確認を受信するステップと、
- 確認条件を満たす前記第1の受信者ノードおよび前記第2の受信者ノードからの前記確認を受信することに基づいて、前記提案される参加者が複数いるトランザクションを確認された第1のトランザクションおよび確認された第2のトランザクションの組合せとして確定するステップと、
- 前記第1の確認されたトランザクションを前記第1の順序に従って前記第1のドメインに関連する分散型台帳に書き込み、前記第2の確認されたトランザクションを前記第2の順序に従って前記第2のドメインに関連する分散型台帳に書き込むステップとを含む、方法。 - 提出者ノードが、前記第1のドメインと前記第2のドメインとの間のメッセージを受信および送信するための中継者であり、前記方法が、
提出ノードおよび/または前記中継ノードによって、前記暗号によって保護されたメッセージの妥当性の前記確認を前記第1の受信者ノードから前記第2のドメインの前記第2の外部ノードおよび/または前記第2の受信者ノードに送信するステップと、
前記提出ノードおよび/または前記中継ノードによって、前記暗号によって保護されたメッセージの妥当性の前記確認を前記第2の受信者ノードから前記第1のドメインの前記第1の外部ノードおよび/または前記第1の受信者ノードに送信するステップとをさらに含む請求項51に記載の方法。 - 前記提案される参加者が複数いるトランザクションを確定する認可が、指定されたタイミング条件に関連付けられ、前記認可が、前記指定されたタイミング条件に基づいて有効および/または排他的である請求項51または52に記載の方法。
- 前記提案されるトランザクションが、複数のドメインにまたがる提案される参加者が複数いるトランザクションの一部であり、前記方法が、
提案される参加者が複数いるトランザクションから、前記1つまたは複数の受信者ノードおよび前記外部ノードを含む第1のドメインに関する第1の提案されるトランザクション、ならびに少なくとも、1つまたは複数のその他の受信者ノードおよび別の外部ノードを含む別のドメインに関する別の提案されるトランザクションを決定するステップと、
少なくとも、前記別のドメインの前記参加者が複数いるプロセスの参加者に関連する前記1つまたは複数のその他の受信者ノードに、別の部分的に暗号化されたメッセージを送信することによって前記別の提案されるトランザクションを提出するステップであって、前記別の部分的に暗号化されたメッセージが、少なくとも、前記別の外部ノードによって読み取り可能な暗号化されていないサブメッセージ、および少なくとも前記別の外部ノードからプライバシーを守るための暗号化されたサブメッセージを含む、ステップと、
前記1つまたは複数のその他の受信者ノードから別の部分的に暗号化されたサブメッセージの妥当性の別の確認を受信するステップとをさらに含み、
前記提案されるトランザクションを確定する前記ステップが、前記確認条件を満たす前記その他の受信者ノードの少なくとも一部からの1つまたは複数の確認を受信することに基づいて、前記別の提案されるトランザクションを別の確認されたトランザクションとして確定することをさらに含み、前記方法が、
前記別のドメインにおけるその他のトランザクションに対する前記別の確認されたトランザクションの順序を前記別の外部ノードから受信するステップと、
前記別の確認されたトランザクションを前記別の外部ノードによって決定された前記順序に従って台帳またはその他の台帳に書き込むステップとをさらに含む請求項38から41のいずれか一項に記載の方法。 - 前記第1のドメインの前記受信者ノードから前記別のドメインの前記その他の受信者ノードに前記暗号によって保護されたメッセージの妥当性の前記確認を送信するステップと、
前記別のドメインの前記その他の受信者ノードから前記第1のドメインの前記受信者ノードに前記暗号によって保護されたメッセージの妥当性の前記別の確認を送信するステップとをさらに含む請求項54に記載の方法。 - 前記提案されるトランザクションおよび前記別の提案されるトランザクションを確定する認可が、指定されたタイミング条件に関連付けられ、前記認可が、前記指定されたタイミング条件に基づいて有効および/または排他的である請求項54または55に記載の方法。
- 前記暗号化されたサブメッセージが、前記提案されるトランザクションのすべての期待される確認を暗号学的に検証するための期待される確認データを含み、前記方法が、
受信された1つまたは複数の確認の各々が前記期待される確認データと一致することを暗号学的に検証するための暗号関数を実行するステップをさらに含む請求項1から36、38から41、43、44、および46から56のいずれか一項に記載の方法。 - 前記期待される確認データが、公開鍵の形態であり、前記期待される確認が、前記公開鍵に対応する秘密鍵による電子署名を含む請求項57に記載の方法。
- 前記提案されるトランザクションが、それぞれが少なくとも1つの受信者ノードを含む複数のサブトランザクションを含み、各サブトランザクションが、前記サブトランザクションの含まれる受信者ノードによって読み取り可能であるが、前記サブトランザクションに関与しない受信者ノードによって読み取り可能でない内密の情報を有する対応する暗号によって保護されたサブメッセージに関連付けられ、
前記暗号によって保護されたサブメッセージが、前記提案されるトランザクションの少なくとも1つのその他のサブトランザクションの内密の情報を少なくとも部分的に表す確認を検証するための内密の情報検証データを含み、前記方法が、
少なくとも1つのその他のサブトランザクションの前記確認が前記内密の情報検証データと一致することを検証するステップをさらに含む請求項1から36、38から41、43、44、46から56のいずれか一項に記載の方法。 - サブトランザクションの前記確認が、少なくとも部分的に、前記サブトランザクションの前記内密の情報の暗号学的ハッシュを含む請求項59に記載の方法。
- 前記提案されるトランザクションが、複数の部分木を有する木構造を有し、部分木が、前記複数のサブトランザクションのうちの1つまたは複数を含む請求項60に記載の方法。
- 前記暗号によって保護されたサブメッセージが、前記提案されるトランザクションの前記複数のサブトランザクションの前記確認のうちのいずれか1つを暗号学的に検証するための内密の情報検証データを含む請求項59から61のいずれか一項に記載の方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862748315P | 2018-10-19 | 2018-10-19 | |
US201862748327P | 2018-10-19 | 2018-10-19 | |
US62/748,315 | 2018-10-19 | ||
US62/748,327 | 2018-10-19 | ||
PCT/US2019/057248 WO2020082078A1 (en) | 2018-10-19 | 2019-10-21 | Privacy preserving validation and commit architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022508948A true JP2022508948A (ja) | 2022-01-19 |
JPWO2020082078A5 JPWO2020082078A5 (ja) | 2022-10-31 |
Family
ID=70279889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021547049A Pending JP2022508948A (ja) | 2018-10-19 | 2019-10-21 | プライバシーを守る検証およびコミットアーキテクチャ |
Country Status (9)
Country | Link |
---|---|
US (2) | US11575683B2 (ja) |
EP (1) | EP3857422A4 (ja) |
JP (1) | JP2022508948A (ja) |
KR (1) | KR20210082194A (ja) |
CN (1) | CN113196270A (ja) |
AU (1) | AU2019362088A1 (ja) |
CA (1) | CA3116763C (ja) |
SG (1) | SG11202103877SA (ja) |
WO (1) | WO2020082078A1 (ja) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10805352B2 (en) | 2017-04-21 | 2020-10-13 | Netskope, Inc. | Reducing latency in security enforcement by a network security system (NSS) |
CN110428055A (zh) | 2018-04-27 | 2019-11-08 | 阿里巴巴集团控股有限公司 | 量子计算方法和设备 |
CN108876560B (zh) | 2018-07-18 | 2020-10-02 | 阿里巴巴集团控股有限公司 | 一种基于区块链对作品发布者进行信用评价的方法及装置 |
WO2020096996A2 (en) * | 2018-11-05 | 2020-05-14 | Tunnel International Inc. | Methods, systems, and devices for concealing account balances in ledgers |
CN109598149B (zh) * | 2018-11-20 | 2020-04-07 | 阿里巴巴集团控股有限公司 | 业务处理的方法和装置 |
US11087179B2 (en) | 2018-12-19 | 2021-08-10 | Netskope, Inc. | Multi-label classification of text documents |
CN110046156A (zh) * | 2018-12-20 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 基于区块链的内容管理系统及方法、装置、电子设备 |
CN110046482A (zh) | 2018-12-25 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 身份核实方法及其系统 |
US11374910B2 (en) * | 2019-03-13 | 2022-06-28 | Springcoin, Inc. | Method and apparatus for effecting a data-based activity |
US11405365B2 (en) | 2019-03-13 | 2022-08-02 | Springcoin, Inc. | Method and apparatus for effecting a data-based activity |
US11329968B2 (en) * | 2019-03-18 | 2022-05-10 | Microsoft Technology Licensing, Llc | Authentication across decentralized and centralized identities |
KR102260093B1 (ko) * | 2019-08-30 | 2021-06-02 | 연세대학교 산학협력단 | 내결함성 블록체인 네트워크의 신뢰도 기반 샤드 분배 장치 및 방법 |
US11856022B2 (en) | 2020-01-27 | 2023-12-26 | Netskope, Inc. | Metadata-based detection and prevention of phishing attacks |
US11637817B2 (en) * | 2020-03-12 | 2023-04-25 | Springcoin, Inc. | Method and apparatus for effecting a data-based activity |
US20220100733A1 (en) * | 2020-09-29 | 2022-03-31 | International Business Machines Corporation | Transaction reordering in blockchain |
KR102462998B1 (ko) * | 2020-12-30 | 2022-11-03 | 아주대학교산학협력단 | Bft 합의 방식을 이용한 멀티 체인 간의 교차 인증 장치 및 방법 |
US20230015789A1 (en) * | 2021-07-08 | 2023-01-19 | Vmware, Inc. | Aggregation of user authorizations from different providers in a hybrid cloud environment |
CN114090376A (zh) * | 2021-11-09 | 2022-02-25 | 中国银联股份有限公司 | 一种基于联盟链系统的业务处理方法及装置 |
CN114244788B (zh) * | 2022-02-25 | 2022-06-03 | 广州锦行网络科技有限公司 | 数据的响应方法、装置以及系统 |
CN114553603B (zh) * | 2022-04-25 | 2022-07-29 | 南湖实验室 | 一种基于隐私计算的新型数据可信解密的方法 |
CN115396087B (zh) * | 2022-06-20 | 2024-04-30 | 中国联合网络通信集团有限公司 | 基于临时身份证书的身份认证方法、装置、设备及介质 |
CN115033908B (zh) * | 2022-08-11 | 2022-10-21 | 西南石油大学 | 基于云存储的油气勘探细粒度密态数据的检索方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3120309A4 (en) * | 2014-03-18 | 2017-10-11 | Ntrust Technology Solutions Corp. | Virtual currency system |
CA2986164C (en) * | 2015-05-26 | 2021-11-30 | T0.Com, Inc. | Obfuscation of intent in transactions using cryptographic techniques |
US9992028B2 (en) | 2015-11-26 | 2018-06-05 | International Business Machines Corporation | System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger |
US10496976B2 (en) | 2016-03-01 | 2019-12-03 | Wipro Limited | Method and device for validating transactions pertaining to sharing of services in ad hoc network |
US10529042B2 (en) * | 2016-04-18 | 2020-01-07 | Rs Ltd. | System and method for managing transactions in dynamic digital documents |
WO2017189027A1 (en) | 2016-04-29 | 2017-11-02 | Digital Asset Holdings | Digital asset modeling |
US11663609B2 (en) * | 2016-10-04 | 2023-05-30 | International Business Machines Corporation | Method and apparatus to enforce smart contract execution hierarchy on blockchain |
US10708070B2 (en) * | 2017-05-24 | 2020-07-07 | Nxm Labs Canada Inc. | System and method for utilizing connected devices to enable secure and anonymous electronic interaction in a decentralized manner |
AU2019200933B1 (en) | 2017-10-27 | 2019-05-23 | Digital Asset (Switzerland) GmbH | Computer system and method for distributed privacy-preserving shared execution of one or more processes |
EP3529732B1 (en) | 2017-10-27 | 2020-02-19 | Digital Asset (Switzerland) Gmbh | Computer system and method for distributed privacy-preserving shared execution of one or more processes |
US10333902B1 (en) * | 2017-12-19 | 2019-06-25 | International Business Machines Corporation | Data sanitization system for public host platform |
-
2019
- 2019-10-21 SG SG11202103877SA patent/SG11202103877SA/en unknown
- 2019-10-21 CN CN201980084017.0A patent/CN113196270A/zh active Pending
- 2019-10-21 US US16/658,920 patent/US11575683B2/en active Active
- 2019-10-21 CA CA3116763A patent/CA3116763C/en active Active
- 2019-10-21 EP EP19873365.1A patent/EP3857422A4/en active Pending
- 2019-10-21 JP JP2021547049A patent/JP2022508948A/ja active Pending
- 2019-10-21 AU AU2019362088A patent/AU2019362088A1/en active Pending
- 2019-10-21 WO PCT/US2019/057248 patent/WO2020082078A1/en unknown
- 2019-10-21 KR KR1020217015034A patent/KR20210082194A/ko unknown
-
2023
- 2023-01-12 US US18/153,788 patent/US20230231855A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20200128022A1 (en) | 2020-04-23 |
CN113196270A (zh) | 2021-07-30 |
WO2020082078A1 (en) | 2020-04-23 |
US11575683B2 (en) | 2023-02-07 |
SG11202103877SA (en) | 2021-05-28 |
AU2019362088A1 (en) | 2021-06-10 |
CA3116763C (en) | 2024-02-27 |
EP3857422A4 (en) | 2022-06-08 |
US20230231855A1 (en) | 2023-07-20 |
CA3116763A1 (en) | 2020-04-23 |
EP3857422A1 (en) | 2021-08-04 |
KR20210082194A (ko) | 2021-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022508948A (ja) | プライバシーを守る検証およびコミットアーキテクチャ | |
Zhang et al. | Security and privacy on blockchain | |
US20200127813A1 (en) | Method and system for creating a user identity | |
Pagnia et al. | Fair exchange | |
US20200145373A1 (en) | System for blockchain based domain name and ip number register | |
CN110769035B (zh) | 一种区块链资产发行方法、平台、业务节点及存储介质 | |
Ray et al. | Fair exchange in e-commerce | |
JP2019511147A (ja) | デジタルコンテンツの制御及び配信のためのブロックチェーンにより実施される方法 | |
CN110998631A (zh) | 分布式账本技术 | |
Lycklama à Nijeholt et al. | Decreg: A framework for preventing double-financing using blockchain technology | |
JP2002536732A (ja) | 暗号化でサポートされるサービスのためのインフラストラクチャとアプリケーションを運用する方法 | |
KR102569409B1 (ko) | 가상 분산 원장 네트워크를 위한 시스템 및 방법 | |
KR20220093198A (ko) | 전용 및 개방형 블록체인을 이용한 거래의 수행 | |
CN116250210A (zh) | 用于网络化的数据交易的认证和授权的方法、装置和计算机可读介质 | |
Payeras-Capella et al. | Blockchain-based system for multiparty electronic registered delivery services | |
Ahmed et al. | Turning trust around: smart contract-assisted public key infrastructure | |
Buldas et al. | Blockchain Technology: Intrinsic Technological and Socio-Economic Barriers: FDSE’2020 Keynote | |
CN111915308A (zh) | 一种区块链网络的交易处理方法及区块链网络 | |
CN110502905B (zh) | 一种隐私保护的分布式账本交易方法和系统 | |
Mut-Puigserver et al. | Blockchain-based contract signing protocol for confidential contracts | |
Amiri et al. | Separ: A privacy-preserving blockchain-based system for regulating multi-platform crowdworking environments | |
WO2023002640A1 (ja) | 違法な取引を防止しつつ匿名ユーザの参加も許容する暗号資産の取引のための完全分散型ブロックチェーンシステム及びコンピュータープログラム | |
CN112150157B (zh) | 通过区块链发行应收凭证的方法及装置 | |
JP2023106055A (ja) | エビデンス管理方法、エビデンス管理システム及びノード | |
Ellervee | A reference model for Blockchain-based distributed ledger technology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221021 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221021 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231225 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240305 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20240408 |