JP2022548288A - ブロックチェーントランザクションを使用したデジタル資産の割当て - Google Patents

ブロックチェーントランザクションを使用したデジタル資産の割当て Download PDF

Info

Publication number
JP2022548288A
JP2022548288A JP2022517258A JP2022517258A JP2022548288A JP 2022548288 A JP2022548288 A JP 2022548288A JP 2022517258 A JP2022517258 A JP 2022517258A JP 2022517258 A JP2022517258 A JP 2022517258A JP 2022548288 A JP2022548288 A JP 2022548288A
Authority
JP
Japan
Prior art keywords
public key
transaction
payment
proprietary
recipient
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
Application number
JP2022517258A
Other languages
English (en)
Inventor
タータン,クロイー
スティーヴン ライト,クレイグ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
nChain Holdings Ltd
Original Assignee
nChain Holdings Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by nChain Holdings Ltd filed Critical nChain Holdings Ltd
Publication of JP2022548288A publication Critical patent/JP2022548288A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • G06Q20/123Shopping for digital content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Finance (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Development Economics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

ブロックチェーンに関連付けられたトランザクションを生成するコンピュータ実装方法である。前記トランザクションは、デジタル資産の割当てに係る総計を分配するためのものであり、各割当当事者は、前記割当にリンクされた割当公開鍵に関連付けられており、かつ、各受領者は、それぞれの所有権公開鍵に関連付けられている。本方法は、前記1人以上の受領者それぞれの所有権公開鍵それぞれを獲得するステップを含む。前記1人以上の受領者それぞれに対して、(i)受領者ユーザに関連付けられた所有権公開鍵、および、(ii)前記割当公開鍵に基づいて、それぞれの支払公開鍵が生成される。前記トランザクションは、1つ以上の出力スクリプトを含み、各出力スクリプトは、前記割当てに係るそれぞれの総計を、それぞれの支払アドレスに移転するように構成されており、前記それぞれの支払アドレスは、前記それぞれの支払公開鍵に基づいている。

Description

本開示は、ブロックチェーントランザクションを使用して、デジタル資産の総計(amount)を1人以上の受領者(recipient parties)に対して安全に割当てる方法または配布する方法に関する。特に、本方法は、意図された受領者のみが、彼らそれぞれデジタル資産の総計にアクセスできることを確保する。
ブロックチェーンは、分散データ構造の形態を指し、そこでは、ピアツーピア(P2P)ネットワーク内の複数のノードそれぞれにおいて、ブロックチェーンの重複コピーが維持される。ブロックチェーンは、データのブロックのチェーンを含み、そこで、各ブロックは、1つ以上のトランザクションを含んでいる。各トランザクションは、1つ以上のブロックに広がり得るシーケンス内の先行トランザクションに戻り指し示す(point back)ことができる。トランザクションは、「マイニング(“mining”)」として知られているプロセスによって、新しいブロックに含まれるようにネットワークに提出され得る。これは、「プルーフオブワーク(“proof-of-work”)」を実行するために競合している複数のマイニングノードそれぞれを含み、すなわち、ブロックに含まれるのを待つ未解決(pending)のトランザクションのプールに基づいて暗号パズルを解決する。
従来、ブロックチェーン内のトランザクションは、デジタル資産、すなわち、価値のストア(store)として機能するデータを運搬(convey)するために使用されている。しかしながら、ブロックチェーンは、また、ブロックチェーンの上に追加の機能性をレイヤ(layer)するためにも利用することができる。例えば、ブロックチェーンプロトコルは、トランザクションの出力に追加のユーザデータを保管することを可能にする。現代のブロックチェーンは、単一トランザクション内に保管できる最大データ容量を増加させ、より複雑なデータが組み込まれるのを可能にしている。例えば、これは、ブロックチェーン内に電子文書を、もしくは、オーディオまたはビデオデータでさえ、保管するために使用され得る。
ネットワーク内の各ノードは、3つの役割のうち任意の1つ、2つ、または全てを有することができる。移転(forwarding)、マイニング(mining)、およびストレージ(storage)である。移転ノードは、ネットワークのノード全体を通じてトランザクションを伝播させる。マイニングノードは、ブロックへのトランザクションのマイニングを実行する。ストレージノードは、ブロックチェーンのマイニングされたブロックに係るそれ自身のコピーを保管する。トランザクションをブロックチェーンに記録させるために、当事者は、伝搬されるべきネットワークのノードの1つにトランザクションを送信する。トランザクションを受信するマイニングノードは、新しいブロックの中へトランザクションをマイニングするために競合し得る。各ノードは、同じノードプロトコルを尊重(respect)するように設定されており、それは、トランザクションが有効である1つ以上の条件を含む。無効なトランザクションは、伝播されず、または、ブロックの中にマイニングもされない。トランザクションが検証されており、かつ、それによって、ブロックチェーンに受け入れられたと仮定すると、追加のユーザデータは、従って、不変の公的レコード(public record)としてP2Pネットワークにおける各ノードに保管されたままである。
典型的なブロックチェーンプロトコル内で、当事者は、その当事者を識別するために使用され得る唯一の秘密鍵(private key)を所有する。しかしながら、秘密鍵のプライバシーを維持する必要があるため、秘密鍵は、当事者を識別するために直接的に使用することができない。代わりに、各秘密鍵が対応する公開鍵(public key)とペアにされている、暗号署名スキームが使用される。公開鍵は、当事者を唯一に識別するものでもあり、他の当事者と共有することができ、かつ、公に利用可能にすることができる。
ここにおいて開示される一つの態様に従って、ブロックチェーンに関連付けられた少なくとも1つのトランザクションを生成するコンピュータ実装方法が提供される。前記少なくとも1つのトランザクションは、割当当事者から1人以上の受領者に対して、デジタル資産の割当てに係る総計を分配するためのものであり、前記割当当事者は、前記割当にリンクされた割当公開鍵に関連付けられており、各受領者は、それぞれの所有権公開鍵に関連付けられている。かつ、前記方法は、前記1人以上の受領者それぞれの所有権公開鍵それぞれを獲得するステップと、前記1人以上の受領者それぞれに対して、(i)受領者ユーザに関連付けられた所有権公開鍵、および、(ii)前記割当公開鍵に基づいて、それぞれの支払公開鍵を生成するステップと、前記少なくとも1つのトランザクションを生成するステップであり、前記少なくとも1つのトランザクションは、1つ以上の出力スクリプトを含み、各出力スクリプトは、前記割当てに係るそれぞれの総計を、それぞれの支払アドレスに移転するように構成されており、前記それぞれの支払アドレスは、前記それぞれの支払公開鍵に基づいているステップ、を含む。
本開示は、デジタル資産の総計(amount)が、特定の当事者(すなわち、意図された受領者)に配布され、かつ、特定の当事者によってのみアクセス可能であることを確保するために、公開鍵と秘密鍵のペアを利用する方法を認識している。言い換えれば、割当当事者が、特定の受領者に対して支払いを割当て、そして、それらの受領者のみがそれらの支払いにアクセスできる。この開示は、また、複数の受領者が、同時にかつ透明性をもって、彼らのそれぞれのデジタル資産の総計に安全にアクセスできることを確保している。割当当事者は、デジタル資産の割当へのアクセスを有し、かつ、意図された各受領者に固有の支払公開鍵を生成することができる。支払公開鍵は、受領者に固有の所有権公開鍵に基づいている。公開鍵は、ブロックチェーントランザクションを使用して、デジタル資産の総計(またはシェア)を移転するためのブロックチェーンアドレスとして機能し得る。代替的に、アドレスは、公開鍵、例えば、ペイツーパブリック・キーハッシュ(pay-to-public-key-hash、P2PKH)に基づいて生成されてよい。各公開鍵は、公開鍵と秘密鍵のペアの一部である。ブロックチェーン支払アドレスに移転されたデジタル資産にアクセスするためには、公開鍵と秘密鍵のペアからの秘密鍵が必要とされる(例えば、対応する公開鍵またはP2PKH)。受領者(例えば、アリス)の支払公開鍵がアリスの所有権公開鍵に基づいており、かつ、アリスのみが対応する所有秘密鍵にアクセスできるとすれば、支払アドレスに移転されたファンド(fund)にアクセスするために必要とされる支払秘密鍵を、アリスのみが生成することができる。
各受領者の所有権公開鍵を獲得することによって、割当当事者は、それぞれが特定の受領者にリンクされた、対応する支払公開鍵のセットを生成することができる。割当当事者は、デジタル資産の総計(例えば、現実世界の資産の所有権を示すトークン)を、受領者の支払アドレスに割当てることができる。
ここにおいて開示される別の態様に従って、デジタル資産の総計にアクセスするコンピュータに実装された方法が提供される。前記デジタル資産の総計は、ブロックチェーンに関連付けられたトランザクションを使用して、割当当事者の割当公開鍵から受領者の支払アドレスに移転されるデジタル資産の総計であり、前記受領者は、所有権公開鍵に関連付けられている。かつ、前記方法は、前記ブロックチェーン内に含まれる前記所有権公開鍵を含む第1トランザクションをもたらすステップと、前記割当公開鍵とペアにされた割当秘密鍵を獲得するステップと、支払公開鍵に基づいて支払アドレスを決定するステップであり、前記支払公開鍵は、前記所有権公開鍵および前記割当公開鍵に基づいて生成される、ステップと、前記割当秘密鍵を使用して、前記支払公開鍵とペアにされた支払秘密鍵を決定するステップを含む。
この方法において、受領者(例えば、アリス)は、直接的または間接的いずれかでブロックチェーンのトランザクションを使用して、固有の所有権公開鍵を登録する。例えば、ブロックチェーントランザクションの出力の中に含めることにより、アリスは、所有権を直接的に登録することができる。アリスは、彼女の所有権公開鍵をブロックチェーントランザクションの出力の中に含めるように、第三者に依頼することによって、自分の所有権公開鍵を間接的に登録することができる。一旦ブロックチェーンに対してコミットされると、トランザクションは、アリスを彼女の所有権公開鍵にリンクしている不変の記録として機能する。さらに、ブロックチェーン上に所有権公開鍵を保管することによって、割当当時者は、アリスに対する、支払公開鍵、そして、従って支払アドレスを生成するために、それを獲得することができる。アリスは、また、彼女の所有権秘密鍵および割当当事者の秘密鍵の知識を使用して、デジタル資産のシェア(総計)が移転された支払公開鍵を決定することもできる。アリスは、次いで、デジタル資産の彼女のシェアにアクセスすることができる。他の当事者は、アリスの所有権秘密鍵へのアクセスを有していないため、彼らは、アリスの支払アドレスに移転されたデジタル資産にアクセスすることができない。
本開示の実施形態の理解を助け、かつ、そうした実施形態がどのように実施され得るかを示すために、単なる例示として、添付の図面が参照される。
図1は、ブロックチェーンを実装するシステムの模式的なブロック図である。 図2は、ブロックチェーン内に記録され得るトランザクションの例を模式的に示している。 図3は、デジタル資産の総計を受領者に割当てるためのシステムの模式的なブロック図である。 図4は、デジタル資産の総計を複数の受領者に割当てるためのブロックチェーントランザクションの模式的な表現である。 図5aは、受領者の所有権公開鍵(ownership public key)を登録するためのブロックチェーントランザクションの例を模式的に示している。 図5bは、受領者の所有権公開鍵を登録するためのブロックチェーントランザクションの例を模式的に示している。 図6は、受領者の所有権公開鍵を登録するためのブロックチェーントランザクションの別の例を模式的に示している。
例示的なシステムの概要
図1は、ブロックチェーン150を一般的に実装するための例示的なシステム100を示している。システム100は、パケット交換(packet-switched)ネットワーク101、典型的には、インターネットといった広域インターネットワークを含む。パケット交換ネットワーク101は、パケット交換ネットワーク101内にピアツーピア(P2P)オーバーレイネットワーク106を形成するように配置された複数のノード104を含んでいる。各ノード104は、ピア(peer)のコンピュータ機器を含み、ノード104の異なるノードは異なるピアに属している。各ノード104は、1つ以上のプロセッサを含む。例えば、1つ以上の中央処理装置(CPU)、アクセラレータプロセッサ、特定用途向けプロセッサ、及び/又はフィールドプログラマブルゲートアレイ(FPGA)である。各ノードは、また、メモリ、すなわち、非一時的なコンピュータで読取り可能な媒体またはメディアの形態でのコンピュータで読取り可能な記憶装置を備える。メモリは、1つ以上のメモリ媒体を使用する1つ以上のメモリユニットを含み得る。例えば、ハードディスクといった磁気媒体、ソリッドステートドライブ(SSD)、フラッシュメモリ、またはEEPROMといった電子媒体、及び/又は、光ディスクドライブといった光媒体である。
ブロックチェーン150は、データ151のブロックのチェーンを含み、ブロックチェーン150のそれぞれのコピーは、P2Pネットワーク160内の複数のノードそれぞれで維持されている。チェーン内の各ブロック151は、1つ以上のトランザクション152を含み、ここで、このコンテキストにおけるトランザクションは、一種のデータ構造を参照する。データ構造の性質は、トランザクションモデルまたはスキームの一部として使用されるトランザクションプロトコルのタイプに依存する。所与のブロックチェーンは、典型的に、全体を通して、1つの特定のトランザクションプロトコルを使用する。トランザクションプロトコルの1つの一般的なタイプにおいて、各トランザクション152のデータ構造は、少なくとも1つの入力および少なくとも1つの出力を含む。各出力は、出力が暗号的にロックされているユーザ103に属しているデジタル資産の総計を表す総計(amount)を指定する(ロックを解除し、かつ、それによって償還または消費するために、そのユーザの署名を必要とする)。各入力は、先行トランザクション152の出力に戻って指し示し、それによって、トランザクションをリンクしている。
ノード104の少なくとも一部は、移転ノード104Fの役割を担い、トランザクション152を移転し、かつ、それによって伝搬する。ノード104の少なくともいくつかは、ブロック151をマイニングするマイナ(miner)104Mの役割を担う。ノード104の少なくとも一部は、ストレージノード104Sの役割を担い(ときどき、「フルコピー(“full-copy”)」ノードとしても呼ばれる)、各ノードは、それぞれのメモリ内に同じブロックチェーン150のそれぞれのコピーを保管する。各マイナノード104Mは、また、ブロック151へマイニングされるのを待っているトランザクション152のプール154も維持している。所与のノード104は、移転ノード104、マイナ104M、ストレージノード104S、または、これらのうち2つまたは全ての任意の組み合わせであり得る。
所与の現在のトランザクション152jにおいて、入力(または、各入力)は、トランザクションのシーケンスにおいて先行トランザクション152iの出力を参照するポインタを含み、この出力が現在のトランザクション152jにおいて償還(redeemed)されること、または「支払われる(“spent”)」ことを指定する。一般的に、先行トランザクションは、プール154または任意のブロック151内の任意のトランザクションであり得る。先行トランザクション152iは、必ずしも現在のトランザクション152jが作成される時、またはネットワーク106に送信される時でさえ存在する必要はないが、現在のトランザクションが有効であるために、先行トランザクション152iが、存在し、検証される必要がある。従って、ここにおいては、「先行(“preceding”)」とは、ポインタによってリンクされた論理的な順序での先行を指し、必ずしも時間的な順序で作成または送信する時刻を指すのではない。そして、従って、トランザクション152i、152jがアウトオブオーダー(out-of-order)に作成または送信されることを必ずしも排除しない(孤立(orphan)トランザクションに関する後の説明を参照のこと)。先行トランザクション152iは、同様に、先行トランザクションまたは先行トランザクションと呼ばれ得る。
現在のトランザクション152jの入力は、先行トランザクション152iの出力がロックされているユーザ103aの署名も含む。次に、現在のトランザクション152jの出力は、新しいユーザ103bに暗号的(cryptographically)にロックすることができる。従って、現在のトランザクション152jは、先行トランザクション152iの入力に定義された総計を、現在のトランザクション152jの出力に定義された新しいユーザ103bに移転することができる。ある場合に、トランザクション152は、複数のユーザ間で入力総計を分割するために複数の出力を有してもよい(そのうちの一人は、変更を与えるために元のユーザ103aであり得る)。場合によって、トランザクションは、また、複数の入力を有し、1つ以上の先行トランザクションの複数の出力から総計を集め、現在のトランザクションの1つ以上の出力に再配分することもできる。
上記は、「出力ベース(“output-based”)」トランザクションプロトコルと呼ばれ、また、ときどき、未使用トランザクション出力(UTXO)タイプのプロトコルとも呼ばれる(ここで、出力はUTXOとして参照される)。ユーザのトータルバランスは、ブロックチェーン151に保管されたどの1つの番号にも定義されておらず、その代わりに、ユーザは、ブロックチェーン151内の多くの異なるトランザクション152に散在している、そのユーザの全てのUTXOの値を照合(collate)するために、特別な「ウォレット“wallet”」アプリケーション105を必要とする。
代替的なタイプのトランザクションプロトコルは、アカウントベースのトランザクションモデルの一部として、「アカウントベース(“account-based”)」プロトコルと呼ばれ得る。アカウントベースの事例において、各トランザクションは、過去のトランザクションのシーケンスにおいて先行トランザクションのUTXOを戻って参照することによって、移転される総計を定義しない。むしれ、アカウントの絶対的なバランス参照することによる。全てのアカウントの現在の状態は、ブロックチェーンに分離されたマイナによって保管されており、そして、絶えず更新されている。そうしたシステムにおいて、トランザクションは、アカウントの実行中のトランザクション検数(tally)を使用して順序付けされる(「ポジション(“position”)」とも呼ばれる)。この値は、送信者が暗号署名の一部として署名し、そして、トランザクション参照計算の一部としてハッシュ化される。加えて、任意的なデータフィールドも、また、署名されたトランザクションであり得る。このデータフィールドは、例えば、以前のトランザクションIDがデータフィールドに含まれている場合、以前のトランザクションに戻って指し示し得る。
いずれのタイプのトランザクションプロトコルでも、ユーザ103が新しいトランザクション152jを制定することを望む場合に、彼/彼女は、自分のコンピュータ端末102からP2Pネットワーク106のノード104の1つに新しいトランザクションを送信する(それは、今日では、典型的にサーバまたはデータセンタであるが、原理的には他のユーザ端末であり得る)。このノード104は、各ノード104で適用されるノードプロトコルに従って、トランザクションが有効であるか否かをチェックする。ノードプロトコルの詳細は、全体的なトランザクションモデルを形成するとともに、問題のブロックチェーン150で使用されているトランザクションプロトコルのタイプに対応する。ノードプロトコルは、典型的には、新規トランザクション152jにおける暗号署名が、トランザクション152の順序付けされたシーケンスにおける以前のトランザクション152iに依存する、期待される署名と一致することをチェックするために、ノード104を必要とする。出力ベースの事例において、このことは、新しいトランザクション152jの入力に含まれるユーザの暗号署名が、新しいトランザクションが支払う先行トランザクション152iの出力に定義された条件と一致することをチェックすることを含み得る。ここで、この条件は、典型的には、新しいトランザクション152jの入力における暗号署名が、新しいトランザクションの入力が指し示す先行トランザクション152iの出力をアンロックすることを、少なくともチェックすることを含む。いくつかのトランザクションプロトコルにおいて、条件は、少なくとも部分的に、入力及び/又は出力に含まれるカスタムスクリプトによって定義され得る。代替的に、単にノードプロトコルだけで固定され得るし、または、これらの組み合わせによるものであり得る。いずれにせよ、新しいトランザクション152jが有効である場合、現在のノードは、P2Pネットワーク106内のノード104の1つ以上の他のノードに対して、それを移転する。これらのノード104の少なくとも一部は、移転ノード104Fとしても機能し、同じノードプロトコルに従って同じテストを適用し、そして、新しいトランザクション152jを1つ以上のさらなるノード104に移転する、など。このようにして、新しいトランザクションは、ノード104のネットワーク全体に伝搬される。
出力ベースのモデルにおいて、所与の出力(例えば、UTXO)が支払われるか否かの定義は、別の、ノードプロトコルに従った前向き(onward)トランザクション152jの入力によって、いまだ有効に償還されているか否かである。トランザクションが有効であるための別の条件は、それが支払または償還を試みる先行トランザクション152iの出力が別の有効なトランザクションによって既に支払/償還されていないことである。再度、有効でない場合、トランザクション152jは、伝搬されず、または、ブロックチェーンに記録されない。このことは、同じトランザクションのアウトプットを一度ならず支払おうと試みる二重支払を防ぐ。一方で、アカウントベースのモデルは、アカウントバランスを維持することによって、二重支払を防ぐ。再び、トランザクションの定義された順序が存在するので、アカウントバランスは、いつでも単一の定義された状態を有している。
検証に加えて、ノード104Mの少なくとも一部は、また、「プルーフオブワーク」によって支えられている、マイニングとして知られるプロセスにおけるトランザクションのブロックを最初に作成するように競合している。マイニングノード104Mでは、まだブロックに現れていない有効なトランザクションのプールに対して新しいトランザクションが追加される。次いで、マイナは、暗号パズルを解決しようと試みることによって、トランザクションのプール154からトランザクション152の新しい有効なブロック151を組み立てようと競合する。典型的に、このことは、「ナンス(“nonce”)」値を検索することを含み、その結果、ナンスがトランザクションのプール154と連結され、かつ、ハッシュ化されると、ハッシュの出力が規定の条件を満たす。例えば、既定の条件は、ハッシュの出力が、所定の既定数の先頭ゼロ(leading zeros)を有することであり得る。ハッシュ関数の特性は、入力に関して予測不可能な出力を有することである。従って、この探索は、ブルートフォース(brute force)によってのみ実行することができ、従って、パズルを解くように試みている各ノード104Mにおいて、相当量の処理リソースを消費している。
パズルを解くための第1マイナノード104Mは、これをネットワーク106に通知し、その解(solution)を証明として提供し、それは、ネットワーク内の他のノード104によって容易にチェックすることができる(一旦ハッシュに対して解が与えられれば、それがハッシュの出力を条件に合致させることをチェックすることは簡単である)。勝者がパズルを解いたトランザクション154のプールは、次に、そうした各ノードにおいて勝者がアナウンスした解をチェックしたことに基づいて、ストレージノード104Sとして動作しているノード104の少なくとも一部によって、ブロックチェーン150内の新しいブロック151として記録される。ブロックポインタ155は、また、チェーン内の先に生成されたブロック151n-1に戻って指し示す新しいブロック151nにも割当てられる。プルーフオブワークは、新しいブロック151を作成するために多大な労力を要するので、二重支払のリスクを低減するのに役立つ。そして、二重支払を含む任意のブロックは他のノード104によって拒否される可能性が高いので、マイニングノード104Mは、二重支払がそれらのブロックに含まれるのを許可しないように動機付けされている。一旦生成されると、ブロック151は、同じプロトコルに従ってP2Pネットワーク106内のストレージノード104Sそれぞれで認識され、そして、維持されるので、修正することができない。ブロックポインタ155は、また、ブロック151に対して逐次的な順序を課す。トランザクション152は、P2Pネットワーク106内の各ストレージノード104Sにおいて順序付けられたブロックに記録されるので、このことは、従って、トランザクションの不変の公開台帳(public ledger)を提供する。
異なる104Mのマイナが、任意の所与の時間に競合していることは、彼らがいつ解決策を探し始めたかに応じて、任意の所与の時間に、マイニングされていないトランザクションプール154の異なるスナップショットに基づいて、そうすることができることに留意されたい。それぞれのパズルを誰が最初に解くかは、どのトランザクション152が次の新しいブロック151nに含まれるかを定義し、そして、現在のマイニングされていないトランザクションのプール154が更新される。次いで、マイナ104Mは、新たに定義された保留中のプール154からブロックを生成するために競合を継続する、など。生じ得る任意の「フォーク(“fork”)」を解決するためのプロトコルも、また、存在する。それは、二人のマイナ104Mが相互に非常に短い時間内にパズルを解き、その結果、ブロックチェーンの矛盾した見方が伝播されるものである。要するに、フォークのどの突起が伸びても、最も長いものが最終的なブロックチェーン150になる。
ほとんどのブロックチェーンでは、勝ったマイナ104Mは、(あるユーザから別のユーザにデジタル資産の総計を移転する通常のトランザクションとは対照的に)どこからともなく新しい量のデジタル資産を創出する特別な種類の新しいトランザクションで自動的に報酬を受け取る(rewarded)。従って、勝ったノードが、デジタル資産の総計を「マイニングした(“mined”)」と言える。この特別なタイプのトランザクションは、ときどき、「ジェネレーション(“generation”)」トランザクションと呼ばれる。それは、自動的に新しいブロック151nの一部を形成する。この報酬は、マイナ104Mがプルーフオブワークの競争に参加するようにインセンティブを与える。通常の(非ジェネレーション)トランザクション152は、また、その出力の1つに追加のトランザクション料(fee)も指定し、そのトランザクションが含まれたブロック151nを生成した勝ったマイナ104Mにさらに報酬を与える。
マイニングに関与する計算リソースのため、典型的に、少なくともマイナノード104Mそれぞれは、1つ以上の物理的サーバユニット、または、データセンタ全体を含むサーバの形態をとる。各移転ノード104M及び/又はストレージノード104Sは、また、サーバ又はデータセンタの形態をとることもできる。しかしながら、原則として、任意の所与のノード104は、ユーザ端末、または、一緒にネットワーク接続されたユーザ端末のグループの形態をとることができる。
各ノード104のメモリは、それぞれの役割を実行し、かつ、ノードプロトコルに従ってトランザクション152を処理するために、ノード104の処理装置上で実行するように構成されたソフトウェアを保管する。ここにおいてノード104に帰属された任意の動作(action)は、それぞれのコンピュータ機器の処理装置上で実行されるソフトウェアによって実行され得ることが理解されるだろう。また、ここにおいて使用される用語「ブロックチェーン(“blockchain”)」は、一般的な技術の種類を指し、そして、あらゆる特定の専有ブロックチェーンプロトコルまたはサービスに限定されない、一般的な用語である。
また、ネットワーク101に接続されているのは、ユーザを消費する(consuming)役割の複数の当事者103それぞれのコンピュータ機器102である。これらは、トランザクションにおける支払人(payers)および受領者(payee)の役割を果たすが、他の当事者のためにトランザクションのマイニングまたは伝播に必ずしも参加するものではない。それらは、必ずしもマイニングプロトコルを実行するわけではない。二人の当事者103および彼らそれぞれの機器102が、説明のために示されている。第1当事者103aおよび彼/彼女それぞれのコンピュータ機器102a、並びに、第2当事者103bおよび彼/彼女それぞれのコンピュータ機器102bである。より多くのそうした当事者103および彼らそれぞれのコンピュータ機器102がシステムに存在し、かつ、参加することができるが、便宜上、それらは図示されていないことが理解されるだろう。各当事者103は、個人または組織であってよい。純粋に例示として、第1当事者103aは、ここにおいてはアリスとして参照され、そして、第2当事者103bは、ボブとして参照されるが、これは限定的なものではなく、そして、ここにおけるアリスまたはボブに対する参照を、「第1当事者」および「第2当事者」とそれぞれに置き換えることができることが理解されるだろう。
各当事者103のコンピュータ機器102は、1つ以上のプロセッサを含むそれぞれの処理装置を備えている。例えば、1つ以上のCPU、GPU、他のアクセラレータプロセッサ、特定用途向けプロセッサ、及び/又は、である。各当事者103のコンピュータ機器102は、さらに、メモリ、すなわち、非一時的なコンピュータで読取り可能な媒体またはメディアの形態のコンピュータで読取り可能なストレージ装置を備える。このメモリは、1つ以上のメモリ媒体を使用する1つ以上のメモリユニットを含み得る。例えば、ハードディスクといった磁気媒体、SSD、フラッシュメモリ、またはEEPROMといった電子媒体、及び/又は、光ディスクドライブといった光媒体である。各当事者103のコンピュータ機器102上のメモリは、処理装置上で動作するように配置された少なくとも1つのクライアントアプリケーション105それぞれのインスタンスを含むソフトウェアを保管する。ここにおいて所与の当事者103に帰属された任意の動作は、それぞれのコンピュータ機器102の処理装置上で実行されるソフトウェアを使用して実行され得ることが理解されるだろう。各当事者103のコンピュータ機器102は、少なくとも1つのユーザ端末を備えている。例えば、デスクトップまたはラップトップコンピュータ、タブレット、スマートフォン、またはスマートウォッチといったウェアラブルデバイスである。所与の当事者103のコンピュータ機器102は、また、ユーザ端末を介してアクセスされるクラウドコンピューティングリソースといった、1つ以上の他のネットワーク化されたリソースを含んでもよい。
クライアントアプリケーションまたはソフトウェア105は、最初に、適切なコンピュータで読取り可能な記憶媒体またはメディアにおいて、任意の所与の当事者103のコンピュータ機器102に提供され得る。例えば、サーバからダウンロードされたもの、または、リムーバブルSSD、フラッシュメモリキー、リムーバブルEEPROM、リムーバブル磁気ディスクドライブ、磁気フロッピー(登録商標)ディスクまたはテープ、CDまたはDVD ROMといった光ディスク、もしくは、リムーバブル光学ドライブ、等である。
クライアントアプリケーション105は、少なくとも「ウォレット(“wallet”)」機能を備える。これは、2つの主な機能を有している。これらの1つは、それぞれのユーザ当事者103が、ノード104のネットワーク全体にわたり伝搬され、そして、それによってブロックチェーン150に含まれるように、トランザクション152を作成し、署名し、かつ、送信することを可能にすることである。他方は、現在所有しているデジタル資産の総計をそれぞれの当事者に戻って報告することである。出力ベースのシステムにおいて、この第2機能は、問題の当事者に属するブロックチェーン150全体にわたり散在する様々なトランザクション152の出力に定義される総計を照合することを含む。
各コンピュータ機器102上のクライアントアプリケーション105のインスタンスは、P2Pネットワーク106の移転ノード104Fの少なくとも1つに動作可能に結合されている。これにより、クライアント105のウォレット機能は、トランザクション152をネットワーク106に送信することができる。クライアント105は、また、ストレージノード104のうちの1つ、一部、または全部にコンタクトして、それぞれの当事者103が受領者である任意のトランザクションについてブロックチェーン150にクエリ(query)することができる(もしくは、実際には、ブロックチェーン150内の他の当事者のトランザクションを検査する。実施形態でブロックチェーン150は、部分的にその公衆の目に触れてトランザクションの信頼を提供する公共施設(public facility)だからである)。各コンピュータ機器102上のウォレット機能は、トランザクションプロトコルに従って、トランザクション152を形成し、かつ、送信するように構成されている。各ノード104は、ノードプロトコルに従って、トランザクション152を検証するように構成されたソフトウェアを実行し、移転ノード104Fの場合は、ネットワーク106全体にトランザクション152を伝播させるためにトランザクション152を移転する。トランザクションプロトコルおよびノードプロトコルは、相互に対応しており、そして、所与のトランザクションプロトコルは、所与のノードプロトコルと共に、所与のトランザクションモデルを一緒に実装する。同じトランザクションプロトコルが、ブロックチェーン150内の全てのトランザクション152について使用される(ただし、トランザクションプロトコルは、トランザクションの異なるサブタイプを許可し得る)。同じノードプロトコルは、ネットワーク106内の全てのノード104によって使用される(ただし、多くのノードは、そのサブタイプに対して定義されたルールに従って、異なるトランザクションのサブタイプを異なるように処理し、そして、また、異なるノードは、異なる役割を引き受け、従って、プロトコルの異なる対応する態様を実装することができる)。
上述のように、ブロックチェーン150は、ブロック151のチェーンを含み、ここで、各ブロック151は、上述のように、プルーフオブワークプロセスによって作成された1つ以上のトランザクション152のセットを含む。各ブロック151は、また、ブロック151への逐次的な順序を規定するように、チェーン内の先に生成されたブロック151に戻って指し示すブロックポインタ155を含む。ブロックチェーン150は、また、プルーフオブワークプロセスによって新しいブロックに含まれることを待っている有効なトランザクション154のプールも含む。各トランザクション152は、トランザクションの順序を定義するように、以前のトランザクションへ戻るポインタを含む(トランザクション152のシールドは分岐(branch)が許されることに注意する)。ブロック151のチェーンは、チェーン内の第1ブロックであった生成ブロック(genesis block4,Gb)153にはるばる戻る。チェーン150内の初期における1つ以上のオリジナルトランザクション152は、先行トランザクションではなく生成ブロック153を指し示していた。
所与の当事者103、例えばアリス、が、ブロックチェーン150に含まれるように新しいトランザクション152jを送信することを望む場合、彼女は、関連するトランザクションプロトコルに従って(彼女のクライアントアプリケーション105においてウォレット機能を使用して)、新しいトランザクションを策定する。彼女は、次に、クライアントアプリケーション105からトランザクション152を、彼女が接続されている1つ以上の移転ノード104Fの1つに送信する。例えば、これは、アリスのコンピュータ102に最も近いか、または、最も良好に接続されている移転ノード104Fであってよい。任意の所与のノード104が新しいトランザクション152jを受信すると、それは、ノードプロトコルおよびそれぞれの役割に従って処理する。このことは、新たに受信されたトランザクション152jが「有効(“valid”)」であるための特定の条件を満たすか否かを、最初にチェックすることを含み、その例について、手短に、より詳細が説明される。いくつかのトランザクションプロトコルにおいて、検証のための条件は、トランザクション152に含まれるスクリプトによってトランザクションごとに設定可能である。代替的に、条件は、単にノードプロトコルの組み込み機能であってよく、または、スクリプトとノードプロトコルの組み合わせによって定義されてもよい。
新たに受信されたトランザクション152jが、有効であるとみなされるテストを通過(pass)するという条件(すなわち、「検証済み(validated)」である条件)で、トランザクション152jを受信する任意のストレージノード104Sは、そのノード104Sに維持されているブロックチェーン150のコピー内のプール154に、新たに有効とされたトランザクション152を追加する。さらに、トランザクション152jを受信する任意の移転ノード104Fは、検証済みトランザクション152をP2Pネットワーク106内の1つ以上の他のノード104へ伝搬する。各移転ノード104Fは同じプロトコルを適用するので、トランザクション152jが有効であると仮定すると、このことは、P2Pネットワーク106全体に間もなく伝搬されることを意味する。
一旦、1つ以上のストレージノード104で維持されるブロックチェーン150のコピー内のプール154に入ると、マイナノード104Mは、新しいトランザクション152を含むプール154の最新バージョンのプルーフオブワークのパズルを解くための競合を開始する(他のマイナ104Mは、依然として、プール154の古い見解に基づいてパズルを解こうとしているが、最初にそこに到達した者は誰でも、次の新しいブロック151が終了し、新しいプール154が開始する場所を定義し、そして、最終的には、誰かが、アリスのトランザクション152jを含むプール154の一部のパズルを解く)。一旦、新しいトランザクション152jを含むプール154についてプルーフオブワークが行われると、それはブロックチェーン150内のブロック151のうち1つの不変の一部となる。各トランザクション152は、以前のトランザクションへ戻るポインタを含むので、トランザクションの順序も、また、不変的に記録される。
図2は、トランザクションプロトコルの例を示している。これは、UTXOベースのプロトコルの例である。トランザクション152(「Tx」と略す)は、ブロックチェーン150の基本的なデータ構造である(各ブロック151は1つ以上のトランザクション152を含んでいる)。以下は、出力ベースのプロトコルまたは「UTXO」ベースのプロトコルを参照して説明されている。しかしながら、このことは、全ての可能な実施形態に限定されるものではない。
UTXOベースのモデルにおいて、各トランザクション(「Tx」)152は、1つ以上の入力202および1つ以上の出力203を含むデータ構造を備える。各出力203は、未支払(unspent)のトランザクション出力(UTXO)を含んでよく、それは、別の新しいトランザクションの入力202のソースとして使用することができる(UTXOが既に償還されてはいない場合)。UTXOは、デジタル資産の総計(価値のストア)を指定する。また、他の情報の中でも、それが来たトランザクションのトランザクションIDを含んでもよい。トランザクションデータ構造は、また、ヘッダ201を含んでもよく、入力フィールド202および出力フィールド203のサイズの指示(indicator)を含み得る。ヘッダ201は、また、トランザクションのIDを含み得る。実施形態において、トランザクションIDは、トランザクションデータ(トランザクションID自体を除く)のハッシュであり、マイナ104Mに提出された生の(raw)トランザクション152のヘッダ201に保管される。
アリス103aは、問題のデジタル資産の総計をボブ103bに移転するトランザクション152jを作成したいと考えていると仮定する。図2では、アリスの新しいトランザクション152jが「Tx1」とラベル付けされている。これは、先行トランザクション152iの出力203においてアリスにロックされているデジタル資産の総計を順番に取り、そして、これの少なくとも一部をボブに移転する。先行トランザクション152iは、図2では「Tx0」とラベル付けされており、Tx0およびTx1は、単なる任意のラベルである。これらは、必ずしも、Tx0がブロックチェーン151の第1トランザクションであること、または、Tx1がプール154内で直近の次のトランザクションであることを意味するものではない。Tx1は、アリスにロックされた未支払の出力203を依然として有する、任意の先行する(つまり、先立つ(antecedent))トランザクションに戻って指し示すことができる。
先行トランザクションTx0は、アリスがその新しいトランザクションTx1を作成する時点、または、少なくとも彼女がそれをネットワーク106に送信する時点で、既に検証され、ブロックチェーン150に含まれていてよい。それは、その時点で既にブロック151のうち1つに含まれていてよい。または、プール154内でまだ待機していてもよく、その場合には、そのうちに含まれることになる。代替的に、Tx0およびTx1が作成されて、一緒にネットワーク102に送信され得るし、または、ノードプロトコルが「孤立(“orphan”)」トランザクションのバッファリングを許可する場合、Tx0はTx1の後でさえ送信され得る。用語「先行(“preceding”)」および「後続(“subsequent”)」は、ここにおいてトランザクションのシーケンスのコンテキストにおいて使用されるように、トランザクションで指定されたトランザクションポインタによって定義されるシーケンスにおけるトランザクションの順序を指す(どのトランザクションポインタが他のトランザクションに戻って指し示すか、など)。それらは、「前任者(“predecessor”)」と「後任者(“successor”)」、「前者(“antecedent”)」「後者(“descent”)」、「親(“parent”)」と「子(“child”)」、等と均等に置き換えることができる。これは、必ずしもそれらが生成され、ネットワーク106に送信され、または、任意の所与のノード104に到着する順序を意味するものではない。それにもかかわらず、先行トランザクション(前任者トランザクションまたは「親」)を指し示す後続トランザクション(後任者トランザクションまたは「子」)は、親トランザクションが検証されるまで、および、検証されなければ、検証されない。親の前にノード104に到着した子は、孤立(orphan)とみなされる。それは、ノードプロトコル及び/又はマイナの行動に応じて、破棄され、または、親を待つために一定時間、破棄またはバッファリングされ得る。
先行トランザクションTx0の1つ以上の出力203のうち1つは、ここにおいてUTXO0とラベル付けされた特定のUTXOを含む。各UTXOは、UTXOによって表されるデジタル資産の総計を指定する値、および、後続トランザクションが検証されるため、そして、従って、UTXOが成功裡に償還されるために、後続トランザクションの入力202においてアンロッキングスクリプトによって満足されねばならない条件を定義するロッキングスクリプトを含む。典型的に、ロッキングスクリプトは、特定の当事者(それが含まれているトランザクションの受益者(beneficiary))に対して総計をロックする。すなわち、ロッキングスクリプトは、アンロッキング条件を定義し、典型的に、後続トランザクションの入力におけるアンロッキングスクリプトは、先行トランザクションがロックされる当事者の暗号署名を含む、という条件を含む。
ロッキングスクリプト(別名、scriptPubKey)は、ノードプロトコルによって認識されるドメイン固有の言語で書かれたコードの一部である。そうした言語の特定の例は、「スクリプト(“Script”)」(キャピタルS)と呼ばれる。ロッキングスクリプトは、トランザクション出力203を支払うために必要な情報、例えば、アリスの署名の必要条件、を指定する。アンロッキングスクリプトがトランザクションの出力に現れる。アンロッキングスクリプト(別名、scriptSig)は、ロッキングスクリプトの基準を満たすために必要な情報を提供するドメイン固有の言語で書かれたコードの一部である。例えば、それは、ボブの署名を含んでよい。アンロッキングスクリプトは、トランザクションの入力202に現れる。
図示の例において、Tx0の出力203のUTXO0は、ロッキングスクリプト[Checksig PA]を含み、これは、UTXO0が償還されるために(厳密には、UTXO0を償還しようとする後続トランザクションが有効であるために)、アリスの署名Sig PAを必要とする。[Checksig PA]は、アリスの公開鍵と秘密鍵のペアからの公開鍵PAを含む。Tx1の入力202は、Tx1に戻って指し示すポインタを含む(例えば、そのトランザクションIDである、TxID0を用い、それは実施形態においてトランザクションTx0全体のハッシュである)。Tx1の入力202は、Tx0の任意の他の可能な出力の中でそれを識別するために、Tx0内のUTXO0を識別するインデックス(index)を含む。Tx1の入力202は、さらに、鍵ペアからのアリスの秘密鍵をデータの既定の部分に適用することによって作成された、アリスの暗号署名を含むアンロッキングスクリプト<Sig PA>を含む(ときどき、暗号では「メッセージ(“message”)」と呼ばれる)。有効な署名を提供するためにアリスが署名する必要があるデータ(または「メッセージ」)は、ロッキングスクリプト、ノードプロトコル、またはこれらの組み合わせによって定義される。
新しいトランザクションTx1がノード104に到着すると、ノードは、ノードプロトコルを適用する。これは、ロッキングスクリプトとアンロッキングスクリプトを一緒に実行して、アンロッキングスクリプトがロッキングスクリプト内で定義されている条件を満たしているか否かをチェックすることを含む(ここで、この条件は1つ以上の基準を含み得る)。実施形態において、これは、2つのスクリプトを連結することを含む。
<Sig PA><PA>||[Checksig PA]
ここで、「||」は連結を表し、そして、「<...>」はデータをスタック上に置くことを意味し、そして、「[...]」はアンロッキングスクリプト(この例においてスタックベースの言語)で構成される関数である。同様に、スクリプトは、スクリプトを連結するのではなく、共通のスタックで、次々と実行されてよい。いずれにせよ、一緒に実行する場合、スクリプトは、Tx0の出力のロッキングスクリプトに含まれるように、アリスの公開鍵PAを使用して、Tx1の入力のロッキングスクリプトが、データの期待される部分に署名するアリスの署名を含むことを認証する。この認証を実行するためには、データ自体の期待される部分(「メッセージ(“message”)」)も、また、Tx0順序に含める必要がある。実施形態において、署名されたデータは、Tx0の全体を含む(よって、別個の要素は、クリアであるデータ(data in the clear)の署名された部分を指定することに含める必要がある。それが、既に本質的に存在するからである)。
公開-秘密(public-private)暗号による認証の詳細は、当業者にとって周知であろう。基本的に、アリスが秘密鍵を使用して、暗号化することによってメッセージに署名した場合、アリスの公開鍵およびクリアであるメッセージ(暗号化されていないメッセージ)が与えられ、ノード104といった別のエンティティは、そのメッセージの暗号化されたバージョンがアリスによって署名されていなければならないことを認証することができる。署名することは、典型的に、メッセージをハッシュすること、ハッシュに署名すること、および、署名としてメッセージのクリアなバージョンにこれをタグ付けすることを含み、従って、公開鍵の任意の所有者が署名を認証することを可能にしている。
Tx1のアンロッキングスクリプトが、Tx0のロッキングスクリプトで指定された1つ以上の条件を満たす場合(例で示されるように、アリスの署名がTx1で提供され、かつ、認証されている場合)、ノード104は、Tx1が有効であるとみなす。マイニングノード104Mである場合、これは、プルーフオブワークを待っているトランザクションプール154に追加されることを意味する。移転ノード104Fである場合、それは、トランザクションTx1をネットワーク106内の1つ以上の他のノード104に移転し、その結果、ネットワーク全体に伝搬されることになる。一旦、Tx1が検証され、かつ、ブロックチェーン150に含まれると、これは、支払としてTx0からUTXO0を定義する。Tx1は、未払いのトランザクション出力203を支払う場合にだけ有効であることに留意されたい。別のトランザクション152によって既に支払われた出力を支払おうとする場合、Tx1は、たとえ他の全ての条件が満たされていても無効となる。従って、ノード104は、また、先行トランザクションTx0において参照されたUTXOが既に使用されているか否か(既に別の有効なトランザクションへの有効な入力を形成しているか否か)もチェックする必要がある。これが、ブロックチェーン150にとってトランザクション152に定義された順序を課すことが重要である理由の1つである。実際に、所与のノード104は、トランザクション152が支払われたUTXO 203をマーキングしている別個のデータベースを維持することができるが、最終的には、UTXOが支払われたか否かを定義するものは、ブロックチェーン150内の別の有効なトランザクションへの有効な入力が既に形成されているか否かである。
UTXOベースのトランザクションモデルでは、所与のUTXOを全体として使用する必要があることに注意すること。UTXOで定義されている総計のうち、別の小部分(fraction)が支払われている一方で、小部分を「残しておく(“leave behind”)」ことはできない。しかしながら、UTXOの総計は、次のトランザクションの複数の出力に分割できる。例えば、Tx0内のUTXO0で定義された総計は、Tx1内の複数のUTXOに分割できる。従って、アリスがボブにUTXO0で定義されている総計の全てを与えることを望まない場合、彼女は、残りの量を使って、Tx1の第2出力で自分自身にお釣り(change)を与え、または、別の当事者に支払うことができる。
実際には、アリスは、また、たいてい、勝ったマイナのための報酬(fee)を含める必要がある。なぜなら、今日では、ジェネレーショントランザクションの報酬だけでは、典型的に、マイニングを動機付けるために十分ではないからである。アリスがマイナのための報酬を含めない場合、Tx0は、マイナのノード104Mによって拒否される可能性が高く、従って、技術的には有効であるが、それは、未だに伝播されず、そして、ブロックチェーン150に含まれている(マイナプロトコルは、マイナが望まない場合、トランザクション152を受け入れるよう強制しない)。いくつかのプロトコルにおいて、マイニング報酬は、独自の別個の出力203を必要としない(すなわち、別個のUTXOを必要としない)。代わりに、入力202によって示される全ての総計と、所与のトランザクション152の出力203で指定される全ての総計との間の差が、勝ったマイナ104に自動的に与えられる。例えば、UTXO0に対するポインタがTx1への唯一の入力であり、かつ、Tx1は1つの出力UTXO1しか持っていないとする。UTXO0で指定されたデジタル資産の総計がUTXO1で指定された総計より多い場合、その差は、自動的に勝ったマイナ104Mに行く。代替的または追加的に、しかしながら、トランザクション152のUTXO 203のうちの独自のものにおいてマイナ報酬が明示的に指定され得ることは、必ずしも除外されない。
また、所与のトランザクション152の全ての出力203で指定された全ての総計が、その全ての入力202で指定された全ての総計よりも大きい場合、これは、ほとんどのトランザクションモデルにおける無効性の別の根拠であることに留意すること。従って、そうしたトランザクションは、伝搬され、または、ブロック151にマイニングされることはない。
アリスとボブのデジタル資産は、ブロックチェーン150内の任意の場所の任意のトランザクション152において、ロックされている未支払のUTXOで構成されている。従って、典型的に、所与の当事者103の資産は、ブロックチェーン150の全体を通して、様々なトランザクション152のUTXO全体に分散されている。ブロックチェーン150内のどこにも、所与の当事者103の全ての残高(balance)を定義する1つの数字は保管されていない。各当事者に対してロックされており、かつ、別の前向き(onward)トランザクションでまだ支払われていない全ての様々なUTXOの値を一緒に照合することは、クライアントアプリケーション105におけるウォレット機能の役割である。これは、任意のストレージノード104S、例えば、各当事者のコンピュータ機器102に最も近く、または、最も良好に接続されているストレージノード104S、に保管されたブロックチェーン150のコピーをクエリすることによって行うことができる。
スクリプトコードは、しばしば、概略的に表現されることに注意すること(すなわち、正確な言語ではない)。例えば、[Checksig PA]を、[Checksig PA]=OP_DUP OP_HASH160<H(Pa)>OP_EQUALVERIFY OP_CHECKSIGを意味するように書き込むことがあり得る。「OP_...」は、スクリプト言語の特定のオペコードを指している。OP_CHECKSIG(「Checksig」とも呼ばれるもの)は、2つの入力(署名と公開鍵)を取り込み、そして、楕円曲線デジタル署名アルゴリズム(ECDSA)を使用して署名の妥当性を検証する、Scriptオペコードである。ランタイムでは、あらゆる署名(「sig」)の発生はスクリプトから削除されるが、ハッシュパズルといった、追加的な要件は、「sig」入力によって検証されるトランザクション内に残る。別の例として、OP_RETURNは、トランザクション内にメタデータを保管することができる、トランザクションの支払不能な出力を生成するためのスクリプト言語のオペコードであり、そして、それによってメタデータをブロックチェーン150に不変に記録することができる。例えば、メタデータは、ブロックチェーンに保管することが望ましい文書を含み得る。
署名PAは、デジタル署名である。実施形態において、これは、楕円曲線secp256K1を使用するECDSAに基づくものである。デジタル署名は、データの特定なピース(piece)に署名する。実施形態において、所与のトランザクションについて、署名は、トランザクション入力の一部、および、トランザクション出力の全部または一部に署名する。署名する出力のうち特定の部分は、SIGHASHフラグに依存している。SIGHASHフラグは、署名の最後に含まれる4バイトのコードであり、どの出力が署名されるか(従って、署名の時点で固定されること)を選択する。
ロッキングスクリプトは、それぞれのトランザクションがロックされている当事者の公開鍵を含んでいるという事実を参照して、ときどき、「scriptPubKey」と呼ばれる。アンロッキングスクリプトは、対応する署名を提供するという事実を参照して、ときどき、「scriptSig」と呼ばれる。しかしながら、より一般的には、UTXOが償還される条件が署名を認証することを含むことは、ブロックチェーン150の全てのアプリケーションにおいて必須ではない。より一般的に、スクリプト言語は、任意の1つ以上の条件を定義するために使用され得る。従って、より一般的な用語として「ロッキングスクリプト」および「アンロッキングスクリプト」が望ましい。
デジタル資産配分
図3は、ブロックチェーントランザクションを使用して、デジタル資産の総計を割当てるため(すなわち、支払い)の例示的なシステム300を示している。システム300は、1人以上の受領者301および割当当事者(allocating party)(「アロケータ(“allocator”)」)302を含んでいる。図3のラベル1からNまでに示されるように、任意の数の受領者(「レシピエント(“recipient”))301が存在し得る。各当事者は、それぞれのコンピュータ機器を操作する。例えば、図1を参照すると、1人以上の受領者301は、アリス103aまたはボブ103bの役割を果たすことができ、それぞれのコンピュータ機器102a、102bを操作する。図3の各矢印は、ブロックチェーントランザクション152を使用した、デジタル資産の総計の移転(transfer)を表している。
システム300は、また、各コンピュータ機器を操作する発行者(issuing party)(“issuer”)303を含むことができる。いくつかの実施態様において、発行者303およびアロケータ302は、同一の当事者である。代替的に、発行者303およびアロケータ302は、異なる当事者であってよい。
アロケータ302及び/又は発行者303は、1つ以上の物理的サーバユニット、またはデータセンタ全体を含むサーバの形態をとることができる。代替的に、アロケータ及び/又は発行者は、ユーザ端末または一緒にネットワーク接続されたユーザ端末のグループの形態をとることができる。すなわち、アロケータ及び/又は発行者は、個人ユーザ、または、組織、例えば、企業、学術機関、慈善団体、等といったユーザのグループであってよい。一般的に、アロケータ及び/又は発行者は、コンピュータ機器を含んでいる。コンピュータ装置は、1つ以上のプロセッサ、例えば、1つ以上の中央処理装置(CPU)、アクセレータープロセッサ、特定用途向けプロセッサ、及び/又は、フィールドプログラマブルゲートアレイ(FPGA)を含む、処理装置を含んでいる。コンピュータ装置は、また、メモリ、すなわち、非一時的コンピュータ読取り可能な媒体または媒体の形態のコンピュータ読取り可能な記憶装置を備える。メモリは、1つ以上のメモリ媒体を使用する1つ以上のメモリユニットを含み得る。メモリ媒体は、例えば、ハードディスクといった磁気媒体、ソリッドステートドライブ(SSD)、フラッシュメモリ、またはEEPROMといった電子媒体、及び/又は、光ディスクドライブといった光媒体である。アロケータのメモリは、それぞれの役割を実行するために、ノードコンピュータ装置の処理装置上で動作するように構成されたソフトウェアを保管する。ここにおいてアロケータ及び/又は発行者に帰属する任意の動作(action)は、アロケータまたは発行者のコンピュータ装置のそれぞれの処理装置上で実行されるソフトウェアによって実行され得ることが理解されるだろう。アロケータ及び/又は発行者は、例えば、インターネット101を介して、受領者301(例えば、アリスとボブ)と通信することができる。
各当事者は、唯一(unique)の公開鍵を介してブロックチェーン150に関連付けられる。公開鍵は、楕円曲線暗号公開鍵であり得る。図3に示されるように、各受領者301は、自身の所有権公開鍵POiを介してブロックチェーン150に関連付けられ、そして、アロケータ302は、割当公開鍵PAiを介してブロックチェーン150に関連付けられる。例えば、第1受領者(受領者i=1)は第1所有権公開鍵PO1を所有し、第2受領者(受領者i=2)は第2所有権公開鍵PO2を所有する、というように、第N受領者(受領者i=N)は第N所有権公開鍵PONを所有する。第1、第2、...、第N等は、単に、異なる受領者およびそれらの所有権公開鍵を区別するために使用されるラベルであることが理解されるだろう。システム300が発行者303を含む例において、発行者303は、発行公開鍵(issuing public key)PIによってブロックチェーン150に関連付けられる。各公開鍵は、公開鍵と秘密鍵のペアの一部を形成し、公開鍵は秘密鍵に基づいて生成されている。一般的に、秘密鍵は、秘密に保持され、そして、他者と共有されたり、または、公開されない。
上述の公開鍵の1つ以上は、認証(certified)公開鍵であってよい。認証公開鍵は、認証局によって発行された公開鍵証明書に関連付けられている。本証明書は、関連する公開鍵の所有権を証明するために使用され得るデジタル証明書である。本証明書は、証明書を発行する認証局が、公開鍵の所有権をアテスト(attest)することを証明するために使用され得る。
アロケータ302は、デジタル資産の割当て(allocation)(すなわち、ストア(store))に対するアクセスを有している。デジタル資産は、現実世界(real-world)の資産へのマッピングを表すことができる。例えば、デジタル資産の特定の総計は、現実世界の資産の特定の総計を表すことができる。一つの例として、デジタル資産は、家屋、美術品、特許、等の所有権を表すことができ、そして、アロケータは、資産の(部分的な)所有権を移転する譲渡する責任を負うことができる。例えば、アロケータは、資産の50%の所有権を第1受領者に移転し、かつ、資産の50%の所有権を別の受領者に移転することを望み得る。デジタル資産はデジタルトークンであってよい。すなわち、デジタル資産の割当ては、複数のトークンであってよい。各トークンは、現実世界の資産の総計に対して釘付け(pegged)され得る。トークンは、例えば、投票(vote)、電気エネルギの期間、イベントへのチケット、等を表すことができる。例えば、アロケータは、受領者301に対してトークンを割当てる(すなわち、配布する)ことに責任を負うことができる。次いで、受領者は、例えば、音楽祭にエントリーするために、トークンを償還(redeem)することができる。別の例として、トークンは、サブスクリプションサービス(例えば、メディアストリーミングサービス)へのアクセスを可能にすることができる。各トークンは、サービスへのアクセス期間(例えば、1ヶ月)を表すことができる。割当当事者(allocating party)は、サービスにアクセスするために支払われ得る、設定された数のトークン(例えば、1年のサブスクリプションについて12個のトークン)を受領者に割当てることができます。
任意的に、発行者303は、アロケータ302に対してデジタル資産の割当てを発行することができる。すなわち、発行者は、1つ以上のブロックチェーントランザクションを生成し、一緒に、デジタル資産の割当てを発行者からアロケータに移転することができる。具体的に、ブロックチェーントランザクションは、デジタル資産の所有権を、発行者のブロックチェーンアドレス(例えば、発行公開鍵PIまたはPIに基づくアドレス)から、アロケータの公開鍵PAに移転する。一つの例として、発行者は、アロケータに、大量のデジタル資産を受領者に分配するように委託することができ、従って、ブロックチェーントランザクションの(大量の)数を生成すること及び送信することから発行者を解放する。この例において、発行者は、アロケータの割当アドレス(例えば、公開鍵PAまたはPAに基づくP2PKH)にデジタル資産の割当を移転することだけを要する。つまり、発行者は単一のトランザクションを行うことだけを要する。
上記で詳細に説明したように、ブロックチェーントランザクションの出力は、デジタル資産の総計を特定の公開鍵に対してロックする。対応する秘密鍵が、公開鍵に対してロックされたデジタル資産の総計にアクセスする(例えば、移転、使用、支出)ために必要とされる。従って、この例においては、アロケータ302のみが、PAとペアの秘密鍵SAを使用することによって、デジタル資産の割当てにアクセスすることができる。最初に、デジタル資産の割当ては、第1割当公開鍵と第1割当秘密鍵のペアで保持される(すなわち、ロックされる)。以下に説明されるように、アロケータは、いくつかの支払(payment)割当を行うことができる。各支払割当て(すなわち、デジタル資産の総計の割当てに係る各反復)は、異なる公開鍵と秘密鍵のペアを含み得る。例えば、第1反復はPA (1)およびSA (1)を使用することができ、第2反復はPA (2)およびSA (2)を使用することができ、そして、第N反復はPA (n)およびSA (n)を使用することができる。簡潔さのため、PA (1)を表すため表記PAが使用される。
アロケータ302は、デジタル資産の割当てられた総計の金額を受領者301のセットに対して移転することが要求されている。本セットは、単一の受領者または複数の受領者を含んでよい。各受領者は、それぞれの所有権公開鍵POiとペアにされた唯一の所有権秘密鍵SOiを所有している。アロケータは、デジタル資産割当ての総計を受け取る、受領者に対応する所有権公開鍵POiのセットを獲得する。所有権公開鍵POiのセットを獲得するにはいくつかの方法がある。例えば、各受領者は、個々の所有権公開鍵POiを、アロケータ及び/又は発行者303と登録する(すなわち、利用可能にする)ことができる。公開鍵の登録については、以下で説明される。以下に説明されるように、受領者に移転されるそれぞれの総計は等しくてよく、または、等しくなくてもよい注意されたい。
アロケータ302は、デジタル資産の総計を受領者の所有権公開鍵へ単に移転し得ることに留意されたい。しかしながら、もし受領者の所有権の秘密鍵が危険にさらされた場合、受領者に対する将来の支払いは全て危険にさらされるだろう。しかしながら、受領者の支払秘密鍵が侵害危険にさらされた場合には、その支払いのみが危険にさらされる。新しい支払いの公開鍵と秘密鍵のペアは、POiに基づいて生成され、そして、次の支払アドレスとして使用される。POiは受領者の識別子とみなされ、一方で、PPiは償還可能なバウチャー(voucher)/トークン(すなわち、現実世界の資産について償還可能)である。定期的な支払いは、認証されたアクセスポイントとして所有権鍵POiを使用して、PPiに基づいてアドレスから検索される。PPiは各支払いで更新され得るので、その危殆化(compromise)は、限定的な窃盗(すなわち、PPiの反復に基づいてアドレスに移転されるデジタル資産の総計のみ)を結果として生じ得るだけである。POiの危殆化は、本人確認の違反(breach of identity)および将来の全ての支払いの潜在的な喪失と同等である。
代わりに、アロケータ302は、各所有権公開鍵POiに対して、対応する支払公開鍵PPiを生成する。所与の受領者301に対して、彼らの支払公開鍵PPiは、少なくとも受領者の所有権公開鍵POiとアロケータの公開鍵PAiの両方を使用して生成される。例えば、割当ての第1ラウンドについて、第1受領者の支払公開鍵は、少なくとも第1受領者の所有権公開鍵POiとアロケータの第1割当公開鍵PAを使用して生成される。受領者の所有権公開鍵とアロケータの公開鍵の両方の使用は、2つの当事者にリンクを作成する。
複数サイクルの割当支払(allocating payments)が制定されている場合に、支払公開鍵の第1セットは、アロケータの第1公開鍵PAを使用して生成される。その後の割当ての反復は、第2、異なる割当公開鍵PA (2)を使用して、支払公開鍵の第2セットを生成することを含み得る。異なるアロケータ公開鍵の生成が、以下に説明される。
アロケータ302は、各受領者のための支払アドレスとして動作するか、または、支払アドレスを生成するために使用される支払公開鍵PPiを制御する。支払鍵PPiのセットは、任意の当事者(例えば、発行者303、受領者301、規制機関、等)が、支払アドレス、および、例えば、任意の時点で支払アドレスに移転されたデジタル資産の総計を検証することを可能にする。
一旦、支払公開鍵PPiのセットが生成されると、アロケータ302は、デジタル資産ストアの支払いを、意図された受領者に移転するための1つ以上のブロックチェーントランザクションを生成することができ、それによって、トランザクションは、デジタル資産のそれぞれの総計を、(割当公開鍵PAに基づいて)アロケータのアドレスから、(その受領者の支払公開鍵PPiに基づいて)それぞれの受領者の支払アドレスに移転する。支払いは、単一のトランザクションにおいて移転され得る。すなわち、単一のトランザクションは、複数の出力を有し得るものであり、それによって、各出力は、デジタル資産のシェアを、異なる支払アドレス(すなわち、異なる受領者)に移転する。代替的に、支払いは、1つ以上のトランザクションを使用して移転され得る。例えば、各トランザクションは、デジタル資産のシェアを、単一の、異なる支払アドレス(すなわち、異なる受領者)に移転することができる。
アロケータ302は、トランザクションをブロックチェーンネットワーク106、すなわち、ブロックチェーンに接続された1つ以上のノード104に、送信することができる。トランザクションが、ブロックチェーンプロトコル(上述のもの)の条件を満たすことによって、有効であるとみなされる場合に、トランザクションは、ブロックチェーン150に対してコミットされ、そして、割当てられた総計の不変の公的記録として動作する。
一旦、トランザクションがブロックチェーンに対してコミットされると、デジタル資産の総計は、所定の条件下でアクセスすることができる。これらの条件の1つは、支払公開鍵PPiに対応する支払秘密鍵SPiを使用して生成された署名が、デジタル資産の総計にアクセスしようとするトランザクションにおいて提供されることである。言い換えると、デジタル資産のシェアが、第1公開支払鍵PP1に基づいて、支払アドレスに移転される場合に、第1の公開鍵-秘密鍵ペアからの第1支払秘密鍵SPiは、そのシェアを別のブロックチェーンアドレスに移転することが要求される。デジタル資産のシェアにアクセスするために、各受領者301は、それらの支払公開鍵PPiに対応する支払秘密鍵SPiを生成しなければならない。このことは、アロケータの秘密鍵SAの知識を必要とする。
アロケータ302は、例えばブロックチェーントランザクションの(確かに)支払不可能(unspendable)な出力において、ブロックチェーン上に秘密鍵SAを公開することができる。例えば、SAは、トランザクションのOP_RETURN出力に含まれてよい。OP_RETURNオペコードは、トランザクションの出力を無効としてマーク付けし、後のトランザクションの入力がその出力の支払ができないことを保証している。代替的に、アロケータは、例えば、ウェブサイト上で公開することによって、及び/又は、他の安全な通信手段、例えば、暗号化された電子メール、を介して受領者301に送信することによって、秘密鍵SAオフチェーン(off-chain)を公開することができる。
以下に、アロケータ302および受領者301による使用のための支払公開鍵PPiを生成するための1つの技術を説明する。支払公開鍵PPiは、以下のように、所有権秘密鍵SOiと共に、割当秘密鍵SAから導くことができる。
PPi=SPi・G=(SOi+SA)・G
PPi=PA+SOi・G
PPi=PA+POi
ここにおける公開鍵追加の使用は、2つのアドレスと、従って2つの当事者と(アロケータ302および受領者301)の間に、さらなる通信を必要とすることなく、リンクを作成する。個別の支払公開鍵(PPi=PA+POi)を使用することは、アロケータが、デジタル資産の割当てを、アドレスPOiのセット全体にわたり、PAから個別の出力へと分配することができることを意味する。例示的なトランザクション400が図4に示されている。
示されるように、トランザクション400は、アロケータの割当公開鍵PAからデジタル資産の割当てを移転するための入力401、および、複数の出力を含んでいる。この例においては、N個の出力が存在している。各出力は、デジタル資産のそれぞれの総計402を、それぞれの受領者302に属しているそれぞれの支払公開鍵403に移転する。図4は、トランザクションの表現であることが理解されるだろう。実際に、トランザクションの入力は、アンロッキングスクリプトを含み、そして、トランザクションの各出力は、ロッキングスクリプトを含んでいる。
アロケータ302は、ブロックチェーントランザクションを使用して、デジタル資産の総計を、支払公開鍵PPiのセットに分配する。アロケータは、次いで、各受領者301がPPiを計算し、かつ、それぞれの総計を単独で取り出すことができるように、OP_RETURN宣言を使用するか、またはその他を使用して、チェーン上の割当秘密鍵SAを公開し得る。
デジタル資産のそれらの総計にアクセスする(すなわち、支払う)ために、受領者301は、それらの総計が移転された支払アドレスを決定することができることを要する。支払アドレスは、受領者の所有権公開鍵POi(そして、受領者のみが対応する秘密鍵SOiを知っている)、および、アロケータの公開鍵PAに基づいて生成されることを思い出すこと。従って、受領者は、自身の支払公開鍵PPiおよび支払アドレス(例えば、P2PKH)を計算することができる。さらに、受領者は、支払公開鍵PPiとペアにされた支払秘密鍵SPiを決定できることを要する。受領者は、所有権秘密鍵SOiおよびアロケータの秘密鍵SAを有している。従って、受領者は、上記の方程式、すなわちSPi=SOi+SA、を使用して支払秘密鍵SPiを生成することができる。
連続した割当については、アロケータの公開鍵PAが更新されなければならない。n個の割当について割当公開鍵と秘密鍵のペアがn個存在するように、対応する秘密鍵SAが公表されているからである。対応する秘密鍵SA (1)を伴う公開鍵PA (1)への第1割当て(n=1)の後で、アロケータ302は、対応する更新された秘密鍵SA (2)を伴う更新された公開鍵PA (2)を生成する。第2割当についてデジタル資産の総計を割当てる場合に、アロケータは、更新された公開鍵が使用されることを除いて、以前と同様に、支払公開鍵の第2セットPPi (2)を生成する。つまり、PPi (2)=POi+PA (2)、または、一般的に、PPi (n)=POi+PA (n)である。アロケータは、次いで、第2割当ての総計を受領者の更新された支払アドレスに移転する、1つ以上のトランザクションを生成することができる。更新された支払アドレスは、更新された公開鍵自体か、または、更新された公開鍵のハッシュであり得る。
公開鍵は、いくつかの方法で更新され得る。いくつかの例において、公開鍵はランダムに更新される。他の例においては、以下のハイブリッドスキームが使用される。ここで、第n公開鍵PA (n)は、ランダムに(または、そうでなければ、例えば共有秘密を使用して)生成された公開鍵PAnと、以前の公開鍵のリストの合計、
Figure 2022548288000002
から導かれ、割当てのシーケンス間のチェーンを作成する。
Figure 2022548288000003
この例において、更新された割当公開鍵は、新たに(例えば、ランダムに)生成された鍵に、以前の公開鍵の全ての合計を加えたものに等しい。この公開鍵構造は、支払の監査証跡(audit trail)を作成し、更新された各公開鍵を以前の公開鍵にリンクしている。このようにして、支払いのチェーンが作成される。新しい公開鍵は、以前の公開鍵から純粋に生成されるのではない。このことは、攻撃表面(attack surface)を増加させるからである(すなわち、古い公開鍵が危険にさらされた場合に、攻撃者は、全ての将来のアドレスも生成することができる)。
任意的に、各受領者301は、彼らの所有権公開鍵POiを更新することができる。例えば、(認証された)所有権公開鍵PPiは、WO2017/145016に記載されているように、共有秘密(受領者とアロケータ302との間で共有されている)から導かれる決定論的構成要素を用いて更新され得る。WO2017/145016に記載されている技術の要約は以下の通りである。
1.アリスはメッセージを作成し、かつ、それをハッシュする。
2.アリスは、ハッシュメッセージを使用して、ECCの追加を介して、第2秘密鍵-公開鍵ペアを作成する。
3.アリスは、彼女の第2秘密鍵によって署名された、ハッシュメッセージをアロケータに送信する。
4.アロケータは、アリスの署名を検証する。
5.アロケータは、ハッシュメッセージを使用して、楕円曲線暗号(ECC)加算を介して、第2秘密鍵-公開鍵ペアを作成する。
6.アリスとアロケータは、今や、両者が相互に第2公開鍵を計算できる。
7.アリスとアロケータは、共有秘密(可換則)を導出するために、個々の第2公開鍵を相互の第2秘密鍵で乗算する。
8.ハッシュメッセージをハッシュする(および、ハッシュメッセージのハッシュをハッシュする、等)ことは、共有秘密の階層の作成を可能にし、ここでは、元のメッセージのみを知る必要がある。
いくつかの例において、アロケータは、アリスに帰属されたアクションを実行することができ、かつ、受領者は、アロケータに帰属されたアクションを実行することができることに注意すること。
所有権公開鍵のシーケンスPOi (1)、POi (2)、...、POi (n)は、上述の方法を使用して生成することができる。第2所有権公開鍵POi (2は、受領者とアロケータによって、第2サイクルの割当に使用され得る。各割当は、更新された所有権公開鍵を使用することができ、n番目のサイクルは、n番目の更新された所有権公開鍵POi (n)を使用している。このことは、定期的な鍵更新を通してトランザクションのセキュリティを強化し、一方で、また、例えば、監査証跡を作成するために、初期(認証済み)所有権公開鍵POiへの参照も保持している。
アロケータは、連続した割当てについて、PPi (n)=POi (n)+PAnを使用して、更新された所有権公開鍵を使用し得る。
いくつかの例において、各受領者は、デジタル資産ストアの等しいシェアを受け取らなくてよい。つまり、いくらかのレシピエントは他のレシピエントよりも大きなシェアを受け取り得る。各所有権公開鍵POiは、デジタル資産の割当の(パーセント)重み付けDiを用いてエンコーディングされ得る。アロケータは、配分の正しい比率(proportion)が配分時に各支払公開鍵PPiに配分されることを確実にするために、各シェアの相対的な重み付けDiの記録を維持し、保管することができる。ΣDi=100%であることに注意すること。
アロケータ302は、また、アクティブ所有権公開鍵のセット
Figure 2022548288000004
のレコードを維持し、そして、保管することもできる。例えば、いくらかの受領者は、別の受領者(例えば、既存の受領者または新規の受領者)、または発行者に対して所有権を移転することができ、かように、自身の所有権公開鍵POiを取り消している(revoking)。従って、所有権公開鍵POiのリストは、アクティブな受領者のリストに新たに追加された、または、リストから取り消された任意の鍵を識別するために、獲得され(または、更新される)ことを要し得る。更新は、リアルタイムであってよく、または、割当トランザクションが生成される時点であってもよい。
上述のように、アリスは、自身の所有権公開鍵をブロックチェーンに登録することができ、それにより、割当当事者は、自身の所有権公開鍵を獲得することができる。図5aおよび図5bは、アリスの所有権公開鍵を登録するためのトランザクションの例を示している。図5aに示されるように、トランザクション500は、アリスから発行者に送信される。すなわち、トランザクション500は、アリスの署名およびアリスの公開鍵を含むアンロッキングスクリプト501を有する入力を含んでいる。これにより、アリスは、アリスに送信された、以前のブロックチェーントランザクションの、出力を支払うことができる。トランザクション500は、入力のある総計を発行者に移転するように構成されたロッキングスクリプト502(例えば、発行者の公開鍵に対するペイツーパブリック・キーハッシュ(pay-to-public-key-hash))を有する出力を含んでいる。これは、アリスから発行者への株主支払い(shareholder payment)の役割を果たす。この株主支払いは、例えば、銀行振替(bank transfer)、等を使用して、ブロック外で実施され得ることに留意されたい。入力は、v+wに等しい値503を含む。ここで、本値は、シェア総計に対する支払であり、そして、wは、アリスにリンクした重み付けDiを表す代表的な値である。値wは、任意的であることに注意すること。
図5bは、アリスの所有権公開鍵を含むトランザクション504の例を示している。トランザクション504は、発行者からアリスに送信される。すなわち、トランザクション504は、発行者の署名および発行者の公開鍵を含むアンロッキングスクリプトを有する入力を含んでいる。トランザクション504は、2つの出力を含む。第1出力は、支払不可能なトランザクション出力506、例えば、OP_RETURN出力、におけるアリスの所有権公開鍵を含む。これは、ブロックチェーン150上のアリスの所有権公開鍵を登録する。第2出力507は、アリスに対するペイツーパブリック・キーハッシュを含む。これにより、アリスは、自身の所有権公開鍵を取り消す(または、無効にする)こと、例えば、自身のシェアを異なる当事者に移転することができる。代替的に、第2出力507は、発行者に対するペイツーパブリック・キーハッシュを含んでよい。これにより、発行者は、アリスの所有権公開鍵を取り消すことができるだろう。別の代替として、第2出力507は、出力値508を支払うために、mのうちn(n-of-m)の署名を必要とし得る。例えば、第2出力507は、アリスおよび発行者の公開鍵の一方または両方を必要とし得る。
アクティブ所有権公開鍵POi及び/又は重み付けDiのリストを維持するための1つの方法が、これから、図5aおよび5bを参照して説明される。受領者の所有権公開鍵POiを登録する時点で、受領者301または発行者303(発行公開鍵Pとともに)は、デジタル資産の代表的な総計(デジタル資産のストア内の同じデジタル資産または異なる種類のデジタル資産)を、受領者の所有権公開鍵POiに移転することができる。例えば、デジタル資産はネイティブトークン(native token)であってよい。代表的な総計は、デジタル資産の総計に対するアクティブな所有権(すなわち、資格(entitlement))を示している。いくつかの例においては、所有権公開鍵POiの登録の最中に、マルチシグ(multi-signature)トランザクションが発行者または受領者のいずれかによって設定され、そうして、両方の当事者がトランザクションを検証し、それによって、受領者に割当てられた金額の重み付け(例えば、パーセンテージ)Diに合意する。
代表的な総計を相対的な重み付けDiにマッピングする比率は、発行者303の裁量に任せることができる。例えば、受領者301がデジタル資産の割当の25%を受け取る場合、代表的な総計は、デジタル資産にマッピングされたトークンのうち25ユニットであってよい。代表的な総計は、ブロックチェーントランザクションにおいて、受領者の所有権公開鍵POiに送信され得る。そうしたトランザクションを図5aに示されている。この例において、受領者(例えば、Alice)は、第1出力を介して、総計vを発行者の公開鍵Pに移転している。これは、デジタル資産の総計に対する支払いとして機能する。図5bのトランザクションの例において、発行者は、デジタル資産のD1=w%のシェアを表す代表的な総計wをアリスの所有権公開鍵POiに移転する。このトランザクションは、アリスの所有権公開鍵POiを重み付けD1にリンクする。
アリスに対する出力507が償還(すなわち、支払)されない場合、そのトランザクションの出力は、未支払のトランザクション出力(unspent transaction output、UTXO)として分類される。ブロックチェーン全体を通じたUTXOのセットは、容易にクエリされ得る。つまり、UTXOセットは、ブロックチェーンのユニバーサルメモリのように動作する。所有権公開鍵PO1のアクティブな所有者は、UTXOセット内に現われる。従って、アロケータは、移転するデジタル資産の総計と共に、デジタル資産の支払いを移転する相手を決定するために、所有権公開鍵POi(例えば、認証された所有権公開鍵)、および、それぞれの重み付けD1についてUTXOにクエリすることができる。
受領者301(例えば、アリス)は、それらの割当てを発行者303に移転して戻すように決定することができる。これを行うために、アリスは、代表的な総計wを発行者に移転して戻すトランザクションを生成することができる。これは、アリスの所有権公開鍵PO1がUTXOセット内にもはや現われない効果を有している。代替的に、アリスは、ブロックチェーントランザクションを使用して、新しい受領者の所有権公開鍵PO2に自身の所有権を移転(例えば、トレード(trade))することを選択し得る。トランザクションは、発行者の署名を必要とするマルチシグトランザクションであってよい。こうした方法での移転は、発行者により承認された場合にのみ生じ得る。
所有権公開鍵を登録し、そして、アクティブ所有権公開鍵POiと重み付けDiのリストを維持するための別の方法が、これから、図6を参照して説明される。
本方法は、所有権公開鍵POiを支払不可能なトランザクション出力に登録することを含んでいる。例えば、発行者303は、初期登録プロセスの最中に、支払不可能な出力内で、アリスの所有権公開鍵PO1によって表される総計の重み付けD1を宣言することができる。この意味において、所有権公開鍵は、重み付けDiに釘付けされたトークンとして機能する。出力は、例えば、実行時に出力(ロッキング)スクリプトを失敗させるオペコードを含むために、支払不可能なことがある。いくつかのそうした例において、OP_RETURN出力は、所有権公開鍵POiが登録され、または、取り消される時はいつでも、認可された識別子(例えば、4バイトのプレフィックス)を伴うトランザクション内に含まれ得る。識別子は、発行者または信頼される第三者によって認定され得る。出力は、受領者により、または、発行者によって生成され得る。
例示的なトランザクションが図6に示されている。トランザクション600は、総計x(トランザクション料)をアリスの公開鍵から移転する入力601、および、出力602を含んでいる。出力602は、支払不可能なトランザクション出力である。出力602は、認可された識別子603、アリスの所有権公開鍵PO1、および、アリスの重み付けD1を含んでいる。
アロケータ302は、特定の識別子、例えば、特定のプレフィックス、を有するトランザクションを識別することができる。例えば、アロケータは、所有権公開鍵のリストを保管することができ、それは、次いで、特定の認可された識別子を用いてトランザクションを識別することによって更新され得る。アクティブな所有権公開鍵は、特定の識別子(例えば、プレフィックス)によって表現されてよく、これは、割当が予定されている時に、アロケータがチェックすることができる。このリストから取り消された任意の所有権公開鍵は、取り消し時(例えば、シェアのトレードの際)に、OP_RETURNトランザクションを通じて過去の所有者に割当てられた異なる識別子(例えば、プレフィックス)によって表現され得る。
アロケータ302は信頼される第三者であることが、上記では仮定されている。代替的なシナリオにおいて、または、追加のセキュリティ手段として、共有割当て秘密鍵SAは、PAに関連付けられたデジタル資産の割当てを保護するために、例えばSGX(Software Guard Extensions)といった信頼される実行環境の中でエンクレーブ(enclave)内に保管することができる。アロケータのソフトウェア内で定義された全ての自動化コードは、また、支払いが安全に支払公開鍵PPiに割当てられるまで、秘密SAの危殆化を避けるために、信頼される実行環境においても実行され得る。
要約すると、公開鍵は、デジタル資産の所有権を示すために使用することができる。登録時に、各保有者は、例えば、発行者または割当当事者と、彼ら個々の所有権公開鍵を登録する。発行される公開鍵の総数は、所有者の総数に等しい。資産の所有権を示すための公開、例えば楕円曲線暗号(Elliptic Curve Cryptography、ECC)鍵の使用は、以下のアプリケーションのうち1つ以上について使用され得る。
セキュリティ-ECC公開鍵は、確かにセキュアである。シェアの所有権は、デジタル署名を通じて証明することができる。このように、根底にある暗号システムを使用して、シェア所有を示すことは、より小さなコードベースを提供し、そして、アッタクサーフェス(attack surface)を低減する。
規制-公開鍵の発行時に提出された顧客情報を把握することにより、規制の遵守を可能にする。公開鍵は、認証局を使用して認証することができる。
追跡可能シェア-組織/規制機関および保有者自身は、固有の公開鍵のセットを使用して、割当てられたシェアのリスト内の保有者の完全なリストを識別することができる。このことは、個人情報や保有者の身元を明らかにすることなく、両当事者(例えば、会社と株主)について透明性を確保する。
以下は、上記の実施形態を使用して実施例を説明している。支払い割当ては、とりわけ、分配された支払い、債券(bond)や国債(treasury instruments)のクーポン、ユニットトラストの割当て、破産(dispersing insolvency)の割当て、パートナーシップの割当て、および公正な分配、月々の賃金の支払い、ローンの返済、および、ロイヤルティの支払い、例えば、販売利益からアーティストに対するもの、について使用することができる。
特定のユースケースが、これから説明される。発行者(例えば、企業)カンガルー社(Kangaroo Ltd)は、ブロックチェーン上にトークンプロトコルを提供する信頼される第三者を使用する。プロトコルは、スマートコントラクトを生成するためにリクエスト-レスポンス(request-response)メカニズムを使用する。カンガルー社は、デジタル資産におけるシェアを株主に分配したいと考えている。以下は、上述の実施形態によって、参加者が従うプロシージャのステップバイステップ(step-by-step)の概要である。以下は、例示的な割当スキームに関与する当事者の名前、彼らの役割、および、彼らが所有する全ての公開鍵と秘密鍵のペアを列挙している。
アリス-株主-PO1、PO1
ボブ-発行者(例えば、カンガルー社)-P1
キャロル-アロケータ-PA
トークンサービス(TS)-スマートコントラクトプロバイダ-スマートコントラクトアドレス
デジタル資産のシェアの所有権を登録するために、
1.アリスは、スマートコントラクトアドレスに、カンガルー社のデジタル資産における1%のシェアを要求するトランザクションを送信する。
2.ボブは、アリスの株主要求を見て、彼女のリクエストを受け入れる。
3.アリスは、ボブに、シェアについてデジタル資産の総計を移転する。
4.ボブは、アリス自身のシェア所有権公開鍵PO1に帰属している、アリスのシェアの値を宣言するOP_RETURNステートメントを送信する。
デジタル資産のシェアを割当てるために、
1.シェアが割当てられる予定の時点で、カンガルー社は、デジタル資産の割当てをPAに移管する。
2.キャロルは、PA内のファンドを取り出し、そして、各OP_RETURNステートメントのアクティブな所有権公開鍵のリストを参照する。キャロルは、ボブによって認証されたTSからこの情報を獲得することができる。
3.キャロルは、各POiに関連付けられた保有割合に応じて、公開鍵のセットPPi=POi+PAによって定義された各支払公開鍵に、シェアを割当てる。
4.キャロルは、OP_RETURNトランザクション内に秘密鍵SAをチェーン上(on-chain)で発行する。
5.アリスは、今や、PPi=POi+PAを計算することができ、四半期ごとの配当金の支払(dividend payment)を取得することができる。
上記の実施形態は、単なる例示として説明されてきたことが理解されるだろう。より一般的には、以下のステートメントのうちの任意の1つ以上に従った、方法、装置、またはプログラムが提供され得る。
ステートメント1:ブロックチェーンに関連付けられた少なくとも1つのトランザクションを生成するコンピュータ実装方法であって、前記少なくとも1つのトランザクションは、割当当事者から1人以上の受領者に対して、デジタル資産の割当てに係る総計を分配するためのものであり、前記割当当事者は、前記割当にリンクされた割当公開鍵に関連付けられており、各受領者は、それぞれの所有権公開鍵に関連付けられており、かつ、前記方法は、前記1人以上の受領者それぞれの所有権公開鍵それぞれを獲得するステップと、前記1人以上の受領者それぞれに対して、(i)受領者ユーザに関連付けられた所有権公開鍵、および、(ii)前記割当公開鍵に基づいて、それぞれの支払公開鍵を生成するステップと、前記少なくとも1つのトランザクションを生成するステップであり、前記少なくとも1つのトランザクションは、1つ以上の出力スクリプトを含み、各出力スクリプトは、前記割当てに係るそれぞれの総計を、それぞれの支払アドレスに移転するように構成されており、前記それぞれの支払アドレスは、前記それぞれの支払公開鍵に基づいているステップ、を含む。
例えば、支払アドレスは支払公開鍵であってよい。代替的に、支払アドレスはP2PKH、すなわち、支払公開鍵のハッシュであってよい。
ステートメント2:ステートメント1の方法であって、前記少なくとも1つのトランザクションが、前記ブロックチェーンに含まれるようにさせるステップ、を含む。
例えば、上記は、ブロックチェーン内に含めるために、少なくとも1つのトランザクションをブロックチェーンネットワークの1つ以上のノードに送信させることを含む。
ステートメント3:ステートメント2の方法であって、前記割当公開鍵は、割当秘密鍵とペアであり、かつ、前記方法は、前記割当秘密鍵を、前記1人以上の受領者に利用可能にするステップ、を含む。
例えば、割当秘密鍵は、(例えば、支払不可能なトランザクション出力または支払可能な出力における秘密鍵パズルを使用して)トランザクション内でチェーン上に公開されてよい。代替的に、秘密鍵は、オフチェーンで公開されてよく、例えば、サイドチャネルを使用して、受領者に送信される。
ステートメント4:ステートメント1-3のいずれかの方法であって、各所有権公開鍵は、それぞれの重み付けに関連付けられており、かつ、前記方法は、各受領者について、所有権公開鍵に関連付けられたそれぞれの重み付けを獲得するステップであり、受領者に移転される前記割当てに係るそれぞれの総計は、前記獲得されたそれぞれの重み付けに基づいているステップ、を含む。
ステートメント5:ステートメント1-4のいずれかの方法であって、前記ブロックチェーンは、複数の未支払トランザクション出力を含み、各未支払トランザクション出力は、それぞれの受領者の前記所有権公開鍵を含む、それぞれの支払不可能なトランザクション出力とリンクされており、かつ、前記それぞれの所有権公開鍵を獲得する前記ステップは、それぞれの未支払トランザクション出力とリンクされた前記未支払トランザクション出力から、前記それぞれの所有権公開鍵を獲得するステップ、を含む。
ステートメント6:ステートメント4に依存するステートメント5の方法であって、各未支払トランザクション出力が、前記重み付けのそれぞれの表現を含み、かつ、前記それぞれの重み付けを獲得するステップは、各受領者について、受領者の所有権公開鍵を含むそれぞれの未支払トランザクション出力とリンクされた前記未支払トランザクション出力におけるそれぞれの表現に基づいて、それぞれの重み付けを獲得するステップ、を含む。
例えば、重み付けは、登録された所有権公開鍵とリンクされた未支払トランザクション出力について、複数の未支払トランザクション出力をスキャンすることによって獲得することができる。
ステートメント7:ステートメント6の方法であって、前記重み付けの各表現は、前記デジタル資産の代表的な総計である。
ステートメント8:ステートメント5-7のいずれかの方法であって、前記方法は、前記それぞれの所有権公開鍵が未支払トランザクション出力とリンクされているか否かに基づいて、前記1人以上の受領者それぞれの所有権公開鍵がアクティブな所有権公開鍵であるか否かを判断するステップを含み、それぞれの支払鍵を生成するステップは、アクティブな所有権公開鍵に対するそれぞれの支払鍵を生成することだけを含む。
ステートメント9:ステートメント1-8のいずれかの方法であって、前記ブロックチェーンは、支払不可能なトランザクション出力を有する複数のトランザクションを含み、各支払不可能なトランザクション出力は、それぞれの受領者の所有権公開鍵を含み、かつ、前記それぞれの所有権公開鍵を獲得するステップは、それぞれの支払不可能なトランザクション出力から前記それぞれの所有権公開鍵を獲得することを含む。
ステートメント10:少なくともステートメント4に依存するステートメント9の方法であって、各支払不可能なトランザクション出力は、前記それぞれの所有権公開鍵に関連付けられた重み付けの表現を含み、かつ、前記それぞれの重み付けを獲得するステップは、各受領者について、それぞれの支払不可能なトランザクション出力における表現に基づいて、前記それぞれの重み付けを決定することを含む。
ステートメント11:ステートメント9またはステートメント10の方法であって、前記方法は、前記少なくとも1つの支払不可能なトランザクション出力の中に含まれる事前に決定された識別子に基づいて、各支払不可能なトランザクション出力を識別するステップを含む。
ステートメント12:ステートメント11の方法であって、各受領者ユーザについて、それぞれの所有権公開鍵がアクティブな所有権公開鍵であるか否かを、それぞれの所有権公開鍵を含む少なくとも1つの支払不可能なトランザクション出力が前記事前に決定された識別子を含むか否かに基づいて決定するステップ、を含み、かつ、それぞれの支払鍵を生成するステップは、アクティブな所有権公開鍵に対するそれぞれの支払鍵を生成することだけを含む。
ステートメント13:ステートメント4-12のいずれかの方法であって、前記方法は、各受領者ユーザの前記それぞれの重み付けの記録を維持するステップ、及び/又は、前記アクティブな所有権公開鍵の記録を維持するステップを含む。
ステートメント14: ステートメント1-13のいずれかの方法であって、前記少なくとも1つのトランザクションは、単一のトランザクションであり、前記単一のトランザクションは、前記1つ以上の出力スクリプトを含む。
ステートメント15:ステートメント1-14のいずれかの方法であって、1つ以上の支払アドレスはエスクロー支払アドレスであり、かつ、前記方法は、少なくとも1つの条件が前記少なくとも1人の受領者によって満たされるまで、前記1人以上の受領者のうちの少なくとも1人に秘密鍵の割当てを与えないでおくステップを含む。
ステートメント16:ステートメント1-15のいずれかの方法であって、前記方法は、更新された割当公開鍵を生成するステップと、前記1人以上の受領者それぞれに対して、(iii)前記受領者に関連付けられた所有権公開鍵、および、(iv)前記更新された割当公開鍵に基づいて、更新されたそれぞれの支払公開鍵を生成するステップと、少なくとも1つのトランザクションを生成するステップであり、前記少なくとも1つのトランザクションは、1つ以上の出力スクリプトを含み、各出力スクリプトは、前記割当てのそれぞれの総計を、それぞれの受領者のそれぞれの更新された支払アドレスに移転するように構成されており、前記それぞれの更新された支払アドレスは、それぞれの更新された支払公開鍵に基づいているステップ、を含む。
ステートメント17:ステートメント16の方法であって、前記方法は、前記更新された割当公開鍵とペアにされている更新された割当秘密鍵を公開するステップを含む。
ステートメント18:ステートメント1-17のいずれかの方法であって、前記割当ては、前記ブロックチェーンのトランザクションを使用して、前記割当公開鍵に基づいて、発行者に関連付けられた発行公開鍵から、割当アドレスに移転される。
ステートメント19:ステートメント3又はそれに依存する後続のステートメントの方法であって、前記割当秘密鍵は、信頼される実行環境の中に保管され、かつ、前記割当秘密鍵は、前記少なくとも1つのトランザクションが前記ブロックチェーンに含まれるようにした後で、前記割当当事者だけによってアクセス可能である。
ステートメント20:前記割当当事者のコンピュータ機器であって、1つ以上のメモリユニットを含むメモリと、1つ以上の処理ユニットを含む処理装置を含み、前記メモリは、前記処理装置上で実行されるように構成されたコードを保管し、前記コードは、前記処理装置上で実行されると、ステートメント1-19のいずれかの方法を実施するように構成されている。
ステートメント21:コンピュータ読取り可能な記憶装置において具現化されるコンピュータプログラムであって、前記割当当事者のコンピュータ機器上で実行されると、ステートメント1-19のいずれかの方法を実施するように構成されている。
ステートメント22:デジタル資産の総計にアクセスするコンピュータに実装された方法であって、前記デジタル資産の総計は、ブロックチェーンに関連付けられたトランザクションを使用して、割当当事者の割当公開鍵から受領者の支払アドレスに移転されるデジタル資産の総計であり、前記受領者は、所有権公開鍵に関連付けられており、前記方法は、前記ブロックチェーン内に含まれる前記所有権公開鍵を含む第1トランザクションをもたらすステップと、前記割当公開鍵とペアにされた割当秘密鍵を獲得するステップと、支払公開鍵に基づいて支払アドレスを決定するステップであり、前記支払公開鍵は、前記所有権公開鍵および前記割当公開鍵に基づいて生成されるステップと、前記割当秘密鍵を使用して、前記支払公開鍵とペアにされた支払秘密鍵を決定するステップ、を含む。
ステートメント23:ステートメント22の方法であって、前記方法は、第2トランザクションを生成するステップであり、前記第2トランザクションは、前記デジタル資産の総計を、前記支払アドレスから前記ブロックチェーンの異なるアドレスに移転するステップ、を含む。
ステートメント24:ステートメント22またはステートメント23の方法であって、前記ブロックチェーンは、未支払トランザクション出力を有する第3トランザクションを含み、前記未支払トランザクション出力は、前記所有権公開鍵にリンクされた前記デジタル資産の総計を含み、かつ、前記方法は、前記所有権公開鍵にリンクされた前記デジタル資産の総計を、前記ブロックチェーンの異なる当事者の公開鍵に移転する第4トランザクションを生成するステップ、を含む。
ステートメント25:ステートメント24の方法であって、前記異なる当事者は、(i)異なる所有権公開鍵に関連付けられた異なる受領者、または、(ii)発行者のいずれかであり、前記割当は、前記ブロックチェーンのトランザクションを使用して、前記発行者に関連付けられた発行公開鍵から前記割当当事者の前記割当公開鍵に移転される。
ステートメント26:前記受領者のコンピュータ機器であって、1つ以上のメモリユニットを含むメモリと、1つ以上の処理ユニットを含む処理装置を含み、前記メモリは、前記処理装置上で実行されるように構成されたコードを保管し、前記コードは、前記処理装置上で実行されると、ステートメント22-25のいずれかの方法を実施するように構成されている。
ステートメント27:コンピュータ読取り可能な記憶装置において具現化されるコンピュータプログラムであって、前記割当当事者のコンピュータ機器上で実行されると、ステートメント22-25のいずれかの方法を実施するように構成されている。
本明細書に開示される態様に従って、受領者、割当当事者、および発行当事者の行為を含む方法が提供され得る。
本明細書に開示される態様に従って、受領者、割当当事者、および発行当事者のコンピュータ装置を含むシステムが提供され得る。
開示された技術の他の変形または事例は、一旦ここにおいて開示がなされると、当業者にとって明らかになり得る。本開示の範囲は、説明された実施形態によって限定されるものではなく、添付の請求項によってのみ限定されるものである。

Claims (27)

  1. ブロックチェーンに関連付けられた少なくとも1つのトランザクションを生成するコンピュータ実装方法であって、
    前記少なくとも1つのトランザクションは、割当当事者から1人以上の受領者に対して、デジタル資産の割当てに係る総計を分配するためのものであり、
    前記割当当事者は、前記割当にリンクされた割当公開鍵に関連付けられており、
    各受領者は、それぞれの所有権公開鍵に関連付けられており、かつ、
    前記方法は、
    前記1人以上の受領者それぞれの所有権公開鍵それぞれを獲得するステップと、
    前記1人以上の受領者それぞれに対して、(i)受領者ユーザに関連付けられた所有権公開鍵、および、(ii)前記割当公開鍵に基づいて、それぞれの支払公開鍵を生成するステップと、
    前記少なくとも1つのトランザクションを生成するステップであり、前記少なくとも1つのトランザクションは、1つ以上の出力スクリプトを含み、各出力スクリプトは、前記割当てに係るそれぞれの総計を、それぞれの支払アドレスに移転するように構成されており、前記それぞれの支払アドレスは、前記それぞれの支払公開鍵に基づいている、ステップと、
    を含む、方法。
  2. 前記方法は、
    前記少なくとも1つのトランザクションが、前記ブロックチェーンに含まれるようにさせるステップ、
    を含む、請求項1に記載の方法。
  3. 前記割当公開鍵は、割当秘密鍵とペアであり、かつ、
    前記方法は、
    前記割当秘密鍵を、前記1人以上の受領者に利用可能にするステップ、
    を含む、請求項2に記載の方法。
  4. 各所有権公開鍵は、それぞれの重み付けに関連付けられており、かつ、
    前記方法は、
    各受領者について、所有権公開鍵に関連付けられたそれぞれの重み付けを獲得するステップであり、受領者に移転される前記割当てに係るそれぞれの総計は、前記獲得されたそれぞれの重み付けに基づいている、ステップ、
    を含む、請求項1乃至3いずれか一項に記載の方法。
  5. 前記ブロックチェーンは、複数の未支払トランザクション出力を含み、
    各未支払トランザクション出力は、それぞれの受領者の前記所有権公開鍵を含む、それぞれの支払不可能なトランザクション出力とリンクされており、かつ、
    前記それぞれの所有権公開鍵を獲得する前記ステップは、
    それぞれの未支払トランザクション出力とリンクされた前記未支払トランザクション出力から、前記それぞれの所有権公開鍵を獲得するステップ、
    を含む、請求項1乃至4いずれか一項に記載の方法。
  6. 各未支払トランザクション出力が、前記重み付けのそれぞれの表現を含み、かつ、
    前記それぞれの重み付けを獲得するステップは、
    各受領者について、受領者の所有権公開鍵を含むそれぞれの未支払トランザクション出力とリンクされた前記未支払トランザクション出力におけるそれぞれの表現に基づいて、それぞれの重み付けを獲得するステップ、
    を含む、請求項4に従属する場合の請求項5に記載の方法。
  7. 前記重み付けの各表現は、前記デジタル資産の代表的な総計である、
    請求項6に記載の方法。
  8. 前記方法は、
    前記それぞれの所有権公開鍵が未支払トランザクション出力とリンクされているか否かに基づいて、前記1人以上の受領者それぞれの所有権公開鍵がアクティブな所有権公開鍵であるか否かを判断するステップ、を含み、
    それぞれの支払鍵を生成するステップは、アクティブな所有権公開鍵に対するそれぞれの支払鍵を生成することだけを含む、
    請求項5乃至7いずれか一項に記載の方法。
  9. 前記ブロックチェーンは、支払不可能なトランザクション出力を有する複数のトランザクションを含み、各支払不可能なトランザクション出力は、それぞれの受領者の所有権公開鍵を含み、かつ、
    前記それぞれの所有権公開鍵を獲得するステップは、それぞれの支払不可能なトランザクション出力から前記それぞれの所有権公開鍵を獲得すること、を含む、
    請求項1乃至8いずれか一項に記載の方法。
  10. 各支払不可能なトランザクション出力は、前記それぞれの所有権公開鍵に関連付けられた重み付けの表現を含み、かつ、
    前記それぞれの重み付けを獲得するステップは、各受領者について、それぞれの支払不可能なトランザクション出力における表現に基づいて、前記それぞれの重み付けを決定すること、を含む、
    請求項4に従属する場合の請求項9に記載の方法。
  11. 前記方法は、
    前記少なくとも1つの支払不可能なトランザクション出力の中に含まれる事前に決定された識別子に基づいて、各支払不可能なトランザクション出力を識別するステップ、を含む、
    請求項9または10に記載の方法。
  12. 各受領者ユーザについて、それぞれの所有権公開鍵がアクティブな所有権公開鍵であるか否かを、それぞれの所有権公開鍵を含む少なくとも1つの支払不可能なトランザクション出力が前記事前に決定された識別子を含むか否かに基づいて決定するステップ、を含み、かつ、
    それぞれの支払鍵を生成するステップは、アクティブな所有権公開鍵に対するそれぞれの支払鍵を生成することだけを含む、
    請求項11に記載の方法。
  13. 前記方法は、
    各受領者ユーザの前記それぞれの重み付けの記録を維持するステップ、及び/又は、
    前記アクティブな所有権公開鍵の記録を維持するステップ、
    を含む、請求項4乃至12いずれか一項に記載の方法。
  14. 前記少なくとも1つのトランザクションは、単一のトランザクションであり、
    前記単一のトランザクションは、前記1つ以上の出力スクリプトを含む、
    請求項1乃至13いずれか一項に記載の方法。
  15. 1つ以上の支払アドレスはエスクロー支払アドレスであり、かつ、
    前記方法は、
    少なくとも1つの条件が前記少なくとも1人の受領者によって満たされるまで、前記1人以上の受領者のうちの少なくとも1人に秘密鍵の割当てを与えないでおくステップ、
    を含む、請求項1乃至14いずれか一項に記載の方法。
  16. 前記方法は、
    更新された割当公開鍵を生成するステップと、
    前記1人以上の受領者それぞれに対して、(iii)前記受領者に関連付けられた所有権公開鍵、および、(iv)前記更新された割当公開鍵に基づいて、更新されたそれぞれの支払公開鍵を生成するステップと、
    少なくとも1つのトランザクションを生成するステップであり、
    前記少なくとも1つのトランザクションは、1つ以上の出力スクリプトを含み、
    各出力スクリプトは、前記割当てのそれぞれの総計を、それぞれの受領者のそれぞれの更新された支払アドレスに移転するように構成されており、
    前記それぞれの更新された支払アドレスは、それぞれの更新された支払公開鍵に基づいている、
    ステップと、
    を含む、請求項1乃至15いずれか一項に記載の方法。
  17. 前記方法は、
    前記更新された割当公開鍵とペアにされている更新された割当秘密鍵を公開するステップ、
    を含む、請求項16に記載の方法。
  18. 前記割当ては、前記ブロックチェーンのトランザクションを使用して、前記割当公開鍵に基づいて、発行者に関連付けられた発行公開鍵から、割当アドレスに移転される、
    請求項1乃至17いずれか一項に記載の方法。
  19. 前記割当秘密鍵は、信頼される実行環境の中に保管され、かつ、
    前記割当秘密鍵は、前記少なくとも1つのトランザクションが前記ブロックチェーンに含まれるようにした後で、前記割当当事者だけによってアクセス可能である、
    請求項3に記載の方法。
  20. 前記割当当事者のコンピュータ機器であって、
    1つ以上のメモリユニットを含むメモリと、
    1つ以上の処理ユニットを含む処理装置と、を含み、
    前記メモリは、前記処理装置上で実行されるように構成されたコードを保管し、
    前記コードは、前記処理装置上で実行されると、請求項1乃至19いずれか一項に記載の方法を実施するように構成されている、
    コンピュータ機器。
  21. コンピュータ読取り可能な記憶装置において具現化されるコンピュータプログラムであって、
    前記割当当事者のコンピュータ機器上で実行されると、請求項1乃至19いずれか一項に記載の方法を実施するように構成されている、
    コンピュータプログラム。
  22. デジタル資産の総計にアクセスするコンピュータに実装された方法であって、
    前記デジタル資産の総計は、ブロックチェーンに関連付けられたトランザクションを使用して、割当当事者の割当公開鍵から受領者の支払アドレスに移転されるデジタル資産の総計であり、
    前記受領者は、所有権公開鍵に関連付けられており、
    前記方法は、
    前記ブロックチェーン内に含まれる前記所有権公開鍵を含む第1トランザクションをもたらすステップと、
    前記割当公開鍵とペアにされた割当秘密鍵を獲得するステップと、
    支払公開鍵に基づいて支払アドレスを決定するステップであり、前記支払公開鍵は、前記所有権公開鍵および前記割当公開鍵に基づいて生成される、ステップと、
    前記割当秘密鍵を使用して、前記支払公開鍵とペアにされた支払秘密鍵を決定するステップと、
    を含む、方法。
  23. 前記方法は、
    第2トランザクションを生成するステップであり、前記第2トランザクションは、前記デジタル資産の総計を、前記支払アドレスから前記ブロックチェーンの異なるアドレスに移転する、ステップを含む、
    請求項22に記載の方法。
  24. 前記ブロックチェーンは、未支払トランザクション出力を有する第3トランザクションを含み、
    前記未支払トランザクション出力は、前記所有権公開鍵にリンクされた前記デジタル資産の総計を含み、かつ、
    前記方法は、
    前記所有権公開鍵にリンクされた前記デジタル資産の総計を、前記ブロックチェーンの異なる当事者の公開鍵に移転する第4トランザクションを生成するステップ、を含む、
    請求項22または23に記載の方法。
  25. 前記異なる当事者は、(i)異なる所有権公開鍵に関連付けられた異なる受領者、または、(ii)発行者のいずれかであり、
    前記割当は、前記ブロックチェーンのトランザクションを使用して、前記発行者に関連付けられた発行公開鍵から前記割当当事者の前記割当公開鍵に移転される、
    請求項24に記載の方法。
  26. 前記受領者のコンピュータ機器であって、
    1つ以上のメモリユニットを含むメモリと、
    1つ以上の処理ユニットを含む処理装置と、を含み、
    前記メモリは、前記処理装置上で実行されるように構成されたコードを保管し、
    前記コードは、前記処理装置上で実行されると、請求項22乃至25いずれか一項に記載の方法を実施するように構成されている、
    コンピュータ機器。
  27. コンピュータ読取り可能な記憶装置において具現化されるコンピュータプログラムであって、
    前記割当当事者のコンピュータ機器上で実行されると、請求項22乃至25いずれか一項に記載の方法を実施するように構成されている、
    コンピュータプログラム。
JP2022517258A 2019-09-17 2020-08-18 ブロックチェーントランザクションを使用したデジタル資産の割当て Pending JP2022548288A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1913386.7A GB2587202A (en) 2019-09-17 2019-09-17 Allocation of a digital asset using blockchain transactions
GB1913386.7 2019-09-17
PCT/IB2020/057765 WO2021053426A1 (en) 2019-09-17 2020-08-18 Allocation of a digital asset using blockchain transactions

Publications (1)

Publication Number Publication Date
JP2022548288A true JP2022548288A (ja) 2022-11-17

Family

ID=68315398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022517258A Pending JP2022548288A (ja) 2019-09-17 2020-08-18 ブロックチェーントランザクションを使用したデジタル資産の割当て

Country Status (6)

Country Link
US (1) US20220405749A1 (ja)
EP (1) EP4018401A1 (ja)
JP (1) JP2022548288A (ja)
CN (1) CN114631110A (ja)
GB (1) GB2587202A (ja)
WO (1) WO2021053426A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230186418A1 (en) * 2021-10-22 2023-06-15 Erich Lawson Spangenberg System and method for applying ricardian contract principles to agreements
TWI814446B (zh) * 2022-06-15 2023-09-01 孟令士 一種智慧財產權暨數位資產信託傳承維護營運系統及運作方法
WO2024186642A1 (en) * 2023-03-03 2024-09-12 Concentrix Cvg Customer Management Delaware Llc Digital wallet management

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4148642A1 (en) * 2014-05-09 2023-03-15 Veritaseum, Inc. Devices, systems, and methods for facilitating low trust and zero trust value transfers
US10812274B2 (en) * 2015-05-07 2020-10-20 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
US20160342977A1 (en) * 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
US11120437B2 (en) * 2016-02-23 2021-09-14 nChain Holdings Limited Registry and automated management method for blockchain-enforced smart contracts
KR20180116278A (ko) 2016-02-23 2018-10-24 엔체인 홀딩스 리미티드 안전한 정보 교환과 계층 구조적이고 결정론적인 암호키를 위한 공통 비밀 결정
KR102415260B1 (ko) * 2016-04-11 2022-06-30 엔체인 홀딩스 리미티드 블록체인에서 안전한 피어-투-피어 통신을 위한 방법
GB201705749D0 (en) * 2017-04-10 2017-05-24 Nchain Holdings Ltd Computer-implemented system and method
KR101882805B1 (ko) * 2017-04-17 2018-07-27 주식회사 코인플러그 Utxo 기반 프로토콜에서 머클 트리 구조를 이용하는 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버
US20180349896A1 (en) * 2017-06-05 2018-12-06 Mastercard International Incorporated Method and system for anonymization of electronic transactions via blockchain
CN110998629A (zh) * 2017-08-15 2020-04-10 区块链控股有限公司 区块链中的随机数生成
KR20240093786A (ko) * 2018-01-17 2024-06-24 티제로 아이피, 엘엘씨 고객 지갑을 복원하기 위해 n개의 키 중 m개를 사용하는 다중 승인 시스템
GB201800818D0 (en) * 2018-01-18 2018-03-07 Nchain Holdings Ltd Computer-implemented system and method

Also Published As

Publication number Publication date
WO2021053426A1 (en) 2021-03-25
CN114631110A (zh) 2022-06-14
US20220405749A1 (en) 2022-12-22
GB2587202A (en) 2021-03-24
GB201913386D0 (en) 2019-10-30
EP4018401A1 (en) 2022-06-29

Similar Documents

Publication Publication Date Title
JP7241216B2 (ja) ブロックチェーンベースの暗号通貨のためのトークンを検証する、コンピュータにより実行される方法及びシステム
JP7385706B2 (ja) ブロックチェーンに登録されたデジタルアセットを分配する方法及び自律計算エージェント
CN107924389B (zh) 对分布式交易数据库的安全溯源的系统和方法
US11244313B2 (en) Systems, methods, and apparatuses for implementing declarative smart actions for coins and assets transacted onto a blockchain using distributed ledger technology (DLT)
US11488176B2 (en) Systems, methods, and apparatuses for implementing certificates of authenticity of digital twins transacted onto a blockchain using distributed ledger technology (DLT)
KR102443960B1 (ko) 블록체인에서 복수개의 거래를 기록하는 방법 및 시스템
TW202034249A (zh) 基於區塊鏈中智慧合約保護交易活動敏感資料的方法和設備
JP2019506075A (ja) ブロックチェーンベースのトークナイゼーションを用いた交換
JP2022548288A (ja) ブロックチェーントランザクションを使用したデジタル資産の割当て
JP2022541323A (ja) ブロックチェーントランザクションを利用したデジタル契約
CN115136543A (zh) 在区块链网络中使用的认证服务
CN115136542A (zh) 智能合约
US20230316272A1 (en) Divisible tokens
Sober et al. Decentralized cross-blockchain asset transfers with transfer confirmation
CN114531941A (zh) 多标准区块链协议
US20240095692A1 (en) Computer implemented method and system
CN118805360A (zh) 区块链事务
TW202215828A (zh) 用以同步及基元追蹤之方法及系統
US20240020681A1 (en) Digital tokens using blockchain
US20240112161A1 (en) Method and system for synchronising user event streams with dust-based rendezvous transactions
TW202312057A (zh) 電腦實施方法及系統
WO2024193954A1 (en) Determining a system state using a blockchain
CN116830526A (zh) 区块链树结构
WO2024193969A1 (en) Determining a system state using a blockchain
CN118235154A (zh) 一种计算机实现的方法和系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230720

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240625

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240924