(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-11
(45)【発行日】2024-09-20
(54)【発明の名称】ブロックチェーンを使用してピアツーピア分散型台帳におけるエンティティを効率的な移転のための方法およびシステム
(51)【国際特許分類】
H04L 9/32 20060101AFI20240912BHJP
G06Q 20/06 20120101ALI20240912BHJP
【FI】
H04L9/32 200Z
G06Q20/06 300
【外国語出願】
(21)【出願番号】P 2023123078
(22)【出願日】2023-07-28
(62)【分割の表示】P 2021067568の分割
【原出願日】2017-02-16
【審査請求日】2023-07-28
(32)【優先日】2016-02-23
(33)【優先権主張国・地域又は機関】GB
(32)【優先日】2016-02-23
(33)【優先権主張国・地域又は機関】GB
(32)【優先日】2016-03-16
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】318001991
【氏名又は名称】エヌチェーン ライセンシング アーゲー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ライト,クレイグ スティーヴン
(72)【発明者】
【氏名】サヴァナ,ステファヌ
【審査官】中里 裕正
(56)【参考文献】
【文献】特開2002-352165(JP,A)
【文献】特表2012-531689(JP,A)
【文献】国際公開第2014/041700(WO,A1)
【文献】CRARY, K. and SULLIVAN, M. J.,Peer-to-Peer Affine Commitment using Bitcoin,Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation,2015年,pp.479-488,<DOI:10.1080/15421406.2013.808146>
【文献】LAZAROVICH, A.,Invisible Ink: Blockchain for Data Privacy,[online],2015年,pp.1-85,http://dspace.mit.edu/handle/1721.1/98626,[2022年6月28日検索]
【文献】BONNEAU, J. et al.,SoK: Research Perspectives and Challenges for Bitcoin and Cryptocurrencies,2015 IEEE Symposium on Security and Privacy,2015年,pp.104-121
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06Q 20/06
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
ブロックチェーントランザクションの中にメタデータを埋め込むためのコンピュータで実施される方法であって、前記方法は、
デジタルアセット(B1)に関するトランザクション出力(TxO)および引き換えスクリプトのハッシュを有するブロックチェーントランザクション(Tx)を生成するステップ、を含み、
前記ブロックチェーントランザクション(Tx)は、
トークン化されたエンティティの表現、または参照であるトークンを含むメタデータであり、暗号鍵のロケーションとしてブロックチェーンプロトコルにおいて指定されたロケーションにおける前記引き換えスクリプト内に備えられる、メタデータと、
少なくとも1つの公開暗号鍵と、を含み、
前記メタデータは、さらに、
トランザクションブロードキャストのロケーションが指定された座標のXメートル以内にある場合には、トランザクションがP2P DL上にだけブロードキャストされることを指定する、1つまたはそれ以上のロケーション条件を含む、
方法。
【請求項2】
前記デジタルアセット(B1)は、仮想通貨の量であり、かつ、
前記仮想通貨は、ビットコインである、
請求項1に記載の方法。
【請求項3】
前記引き換えスクリプトは、前記トランザクション出力(TxO)のロッキングスクリプトの中に備えられる、
請求項1または2に記載の方法。
【請求項4】
前記方法は、さらに、
前記ブロックチェーントランザクション(Tx)をブロックチェーンに提出するステップ、を含む、
請求項1乃至3いずれか一項に記載の方法。
【請求項5】
前記デジタルアセット(B1)は、前記トランザクション出力(TxO)のための前記引き換えスクリプトの要求を満たすロック解除スクリプトの提供の際に費やされる、
請求項4に記載の方法。
【請求項6】
前記トークン化されたエンティティは、コントラクト、及び/又は、交換に関連する他のエンティティである、
請求項1乃至5いずれか一項に記載の方法。
【請求項7】
前記メタデータは、インビテーショントランザクションにおいてオファーまたはリクエストを記述している記載またはキーワードである、
請求項1乃至6いずれか一項に記載の方法。
【請求項8】
前記インビテーショントランザクションは、さらに、
オーダーがそれまでに遂行されねばならない時間、及び/又は、日付を指定する締め切り条件、を含む、
請求項7に記載の方法。
【請求項9】
前記締め切り条件は、取り消しトランザクションの支払いを自動的に引き起こすものではない、
請求項8に記載の方法。
【請求項10】
前記メタデータは、さらに、
ユーザが、自分の新しい条件を作成し、かつ、以前に使用されていない条件コードに割り当てることによって、条件のリストにそれらを追加することを可能にする、ファシリティを含む、
請求項1乃至9いずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分散型、ピアツーピア台帳(peer-to-peer ledgers)に関し、特には、ブロックチェーン技術に関する。本発明は、また、部分的にトークナイゼーション(tokenisation)とセキュリティ技術、および、ブロックチェーンを介してエンティティ及び/又はエンティティの所有権を移転するためのセキュア(secure)なメカニズム、に関する。本発明は、ブロックチェーンにわたり異なる当事者間でセキュアなトランザクションを実行する方法を含み得る。
【背景技術】
【0002】
ブロックチェーンは、ブロック、次にトランザクションを構成するもの、で構成されたコンピュータベースの分権的な、分散システムとして実装されるピアツーピアの電子台帳である。各トランザクションは、ブロックチェーンシステムにおける参加者間のデジタルアセットの制御の移転(transfer)を符号化(encode)するデータ構造であり、そして、少なくとも1つの入力と少なくとも1つの出力を含んでいる。各ブロックは、前のブロックのハッシュを含んでおり、ブロックは一緒に連鎖されて(chained)、その最初からブロックチェーンに対して書き込まれてきた全てのトランザクションに係る永続的で、変更不可能なレコードを作成する。トランザクションは、入力と出力の中に埋め込まれた(embedded)スクリプト(scripts)として知られている小さいプログラムを含んでおり、トランザクションの出力が、どのように又は誰によってアクセスされ得るかを特定している。ビットコイン(Bitcoin)プラットフォームにおいて、これらのスクリプトはスタックベース(stack-based)のスクリプト言語を使用して記述されている。
【0003】
トランザクション(Tx)がブロックチェーンに対して書き込まれるためには、トランザクションが「検証される(”validated”)」必要がある。ネットワークノード(マイナ(miner))は、各トランザクションが有効であることを保証するための作業を実行し、無効なトランザクションはネットワークから拒否されている。ノード上にインストールされたソフトウェアクライアントは、ロックおよびロック解除スクリプト(locking and unlocking scripts)を実行することによって、未使用トランザクション(unspent transaction、UTXO)においてこの検証作業を実施する。ロックおよびロック解除スクリプトの実行が真(TRUE)であると評価された場合に、トランザクションは有効(valid)であり、そして、トランザクションがブロックチェーンに対して書き込まれる。従って、トランザクションがブロックチェーンに対して書き込まれるためには、i)トランザクションを受け取る最初のノードによって検証される必要があり、-トランザクションが検証された場合に、ノードはネットワークにおける他のノードに対してトランザクションをリレーし(relay)、そして、ii)マイナによって構築された新しいブロックに対して追加され、かつ、iii)採掘(mined)、すなわち過去のトランザクションの公開台帳に対して追加されることを要する。
【0004】
ブロックチェーン技術は、仮想通貨(cryptocurrency)実装の使用について最も広く知られているが、デジタル起業家(entrepreneur)は、新しいシステムを実施するために、ビットコインが基づいている暗号化セキュリティシステムとブロックチェーンに保管できるデータと両方の使用について探求を始めている。ブロックチェーンが、仮想通貨の領域に限定されない自動化されたタスクおよびプロセスについて使用され得るとすれば、非常に有利であろう。そうしたソリューションは、ブロックチェーンの利点(例えば、イベントの永続的で、改ざん防止(tamper proof)な記録、分散化処理、等)を利用することができるだろうし、一方で、それらのアプリケーションにおいてはより汎用性(versatile)がある。
【0005】
現在の研究の1つの領域は、「スマートコントラクト(”smart contracts”)」の実装のためにブロックチェーンを使用することである。これらは、マシンで読取り可能な契約または同意の条件(condition)の実行を自動化するようにデザインされたコンピュータプログラムである。自然言語で書かれるであろう従来の契約とは異なり、スマートコントラクトは、結果を生成するために入力を処理することができるルールを含むマシンで実行可能なプログラムであり、次いで、その結果に応じて実行されるべきアクションを生じさせることができる。
【0006】
ブロックチェーン関連の別の関心領域は、ブロックチェーンを介して現実世界のエンティティ(real-world entities)を表現し、かつ、移転するための「トークン(”tokens”)」(または「カラードコイン(”coloured coin”)」)の使用である。潜在的に機密扱い又は秘密のアイテムは、識別可能(discernable)な意味または価値を持たないトークンによって表すことができる。トークンは、従って、識別子(identifier)として機能し、現実世界のアイテムをブロックチェーンから参照できるようにする。トークナイゼーション(tokenisation)技術は、セキュリティ、匿名性、およびクロスプラットフォームのコンプライアンスが重要である多くの異なるタイプのコンテキスト(contexts)に関して使用され得る。そうしたアプリケーションの領域の1つは金融用途(financial applications)であるが、本発明は金融取引に関する使用について限定されるものではない。
【0007】
この文書においては、我々は、電子、コンピュータベース、分散型台帳に係る全ての形態を含むように、用語「ブロックチェーン(”blockchain”)」を使用している。これらは、コンセンサスベースのブロックチェーンおよびトランザクションチェーン技術に限定されるわけではないが、パーミッションと非パーミッション台帳(permissioned and un-permissioned ledgers)、共有台帳、および、その変形を含んでいる。ビットコイン技術の最も広く知られているアプリケーションは、ビットコイン台帳(Bitcoin ledger)であるが、他のブロックチェーン実装がオファーされ、かつ、開発されてきている。ここにおいては、便宜および説明目的のためにビットコインが参照され得るが、本発明は、ビットコインのブロックチェーンを伴う使用に限定されるものではなく、かつ、代替的なブロックチェーン実装およびプロトコルも本発明の範囲内に在ることに留意すべきである。
【発明の概要】
【0008】
本発明は、添付の請求項において定義されるものである。
【0009】
本発明は、ブロックチェーンを介したアセットのセキュアな制御(control)、及び/又は、移転(transfer)、もしくは交換(exchange)のためのソリューションを提供することができる。ここにおいて、用語「エンティティ(”entity”)」は、「アセット(”asset”)」と互換的に使用されてよい。追加的または代替的に、本発明は、アセットの所有権(ownership)の制御及び/又は移転を可能にし得る。これは、スマートコントラクトといった、デジタルまたは仮想アセット、もしくは、現実世界/物理的なアセットであってよい。アセットは、ライセンスといった権利または使用権、もしくは、あるタイプのプロパティに関するある種の権利であってよい。本発明は、この制御または移転を促進するために、トークナイゼーション技術を使用することができる。本発明は、暗号鍵(cryptographic keys)の使用を組み込んで、移転/交換がセキュアな方法で実行されることを可能にし得る。一方で、根底にあるブロックチェーンプロトコルのあらゆる変更も必要としていない。本発明は、ブロックチェーントランザクション(Tx)に関連するスクリプトの中にメタデータを埋め込むための技術を使用することができる。
【0010】
本発明は、特に、電子的移転のためのメモリ使用の強化された最適化、ハッシュ技術の使用を通じて改善されたセキュリティおよびデータ完全性、信頼できる第三者の必要性を排除することを通じて改善されたセキュリティ、および、強化されたデータの匿名性、を提供する。本発明は、また、異種または別個の当事者が、本発明によって提供される新規な方法及び/又はアーキテクチャを介して、互いを識別し、かつ/あるいは、データ交換することを可能にする改善された通信メカニズムも提供することができる。この利点のリストは、限定的または網羅的ではない。
【0011】
本発明は、種々の別個で、かつ、分離したコンピュータベースのリソースに係る相互作用(interaction)および相互通信(inter-communication)を必要とし得る。1つまたはそれ以上のユーザデバイス、および、ブロックチェーン関連のソフトウェアおよびプロトコルを実行するように構成されたコンピューティングノードを含む、分散コンピュータシステム(ブロックチェーン)、といったものである。
【0012】
本発明は、ピアツーピア分散型台帳(ブロックチェーン)におけるエンティティの効率的な移転のためのコンピュータで実施される方法を提供することができる。本方法は、第1交換トランザクションを生成するステップと、P2P分散型台帳に包含するために第1交換トランザクションを第1ネットワークにおいてブロードキャストするステップとを含む。ここで、第1交換トランザクションは、移転される仮想通貨の第1量の指示と、第1ユーザからの第1インビテーショントランザクションの出力から提供される第1入力であり、第1インビテーショントランザクションは以前にP2P分散型台帳に含まれていたものである、第1入力と、第1スクリプトと、第1ユーザと関連付けられた第1ユーザの秘密鍵(V1A)と、第1の第三者と関連付けられた第1の第三者秘密鍵(V1T)と、第1ユーザから第2ユーザに対する第1エンティティの移転を指示する第1出力と、を含む。ここで、第1スクリプトは、移転される第1エンティティの指示および移転のための条件の第1セットを提供するメタデータの第1セットと、第1ユーザと関連付けられた第1ユーザの公開鍵であり、第1ユーザの公開鍵は第1ユーザの秘密鍵との暗号ペアである、第1ユーザの公開鍵と、第1の第三者と関連付けられた第1の第三者公開鍵であり、第1の第三者公開鍵は第1の第三者秘密鍵との暗号ペアである、第1の第三者公開鍵と、を含む。
【0013】
従って、(引き換え)スクリプトのハッシュは、ブロックチェーントランザクションの中で提供されてよく、または、ブロックチェーントランザクション(Tx)に関連付けられてよい。これは、ビットコインプロトコルに従ったP2SHトランザクション、または、別のブロックチェーンプロトコルにおける別の機能的に同等なトランザクションタイプであってよい。スクリプトのハッシュは、ハッシュテーブルまたは他のストレージリソースに対するルックアップキーとして機能し得る。このストレージリソースは、インビテーションのパブリックドメインリポジトリであってよい。ストレージリソースは、ルックアップキー(すなわち、ハッシュ)、および、組み合わせて、インビテーションを定義するメタデータからの全てのフィールドを含むことができる。ルックアップキーは、レコードの残りのハッシュ、すなわち連結されたメタデータ値のハッシュであってよい。好ましい実施形態において、メタデータは、トークンと関連付けられたコントラクトのロケーションに対するポインタまたは他の参照を含んでよい。コントラクトは、別個のストレージリソースの中に格納されてよい。インビテーション(ストレージリソースにおけるメタデータによって定義される)は、ハッシュを介してブロックチェーントランザクションに対してリンクされてよい。
【0014】
本発明によって多くの利点が提供され、そのうちのいくつかがここで説明される。最初に、交換に関する情報は分散型台帳においてセキュアに埋め込まれたメタデータの中に含まれるため、交換は、ピアツーピアベースでセキュアに実行され、それによって信頼できる第三者を不要としている。このことは、次に、サービスプロバイダといった任意の第三者によって保持される交換に対する両当事者に関して大量の機密情報が必要となることを回避し、次に、危険にさらされている第三者のセキュリティに関するリスクを回避する。この利点は、トランザクションの匿名性を維持しながらも、また提供されている。第1スクリプトはハッシュされているので、スクリプトの対応するハッシュ値における変化を伴うことなく、メタデータの値を変更することは実行不可能な程度に難しいだろう。このことは、また、トランザクションの条件が当事者によって検証できるようにする。それらは公に利用可能な分散型台帳においてロックされているからであり、それはトランザクションの整合性を信頼できるものにしている。利点は、また、第1メタデータを第1スクリプトにおいて公開鍵のために利用可能な1つまたはそれ以上の場所に埋め込むことができることも提供し、進行をブロックするのとは対照的に、それによって、メタデータを処理するのに適していないノードが別のノードに対してスクリプトを単に送付することを可能している。このことは、次に、関連するトランザクションの計算効率を改善する。さらなる利点が提供され、制御データをメタデータの中に組み込むことができる。例えば、会合場所に対するチケット、もしくは、旅行チケットまたバウチャーを表すトークンの場合の、バリアに対するアクセスコードである。メタデータは、また、ポインタが示す交換の詳細のオフブロックリポジトリ(off-block repository)を含むこともでき、それによって、関連トランザクションの処理に使用されるメモリ及び/又は処理リソースを少なくすることができる。なおもさらなる、トークンを分割することができるという別の利点が提供され、2つまたはそれ以上のトランザクション出力を可能にしている。その各々は、トークン化、または、非トークン化された電子的に移転可能なデジタルアセットに関連し得る。
【0015】
本方法は、さらに、第2交換トランザクションを生成するステップと、P2P分散型台帳に包含するために第2交換トランザクションを第1ネットワークにおいてブロードキャストするステップとを含む。ここで、第2交換トランザクションは、移転される仮想通貨の第2量の指示、第2ユーザからの第2インビテーショントランザクションの出力から提供される第2入力であり、第2インビテーショントランザクションは以前にP2P分散型台帳に含まれていたものである、第2入力、第2スクリプトと、第2ユーザと関連付けられた第2ユーザの秘密鍵、第2の第三者と関連付けられた第2の第三者秘密鍵、および第2ユーザから第1ユーザに対する第2エンティティの移転を指示する第2出力を含む。ここで、第2スクリプトは、移転される第2エンティティの指示および移転のための条件の第2セットを提供するメタデータの第2セット、第2ユーザと関連付けられた第2ユーザの公開鍵であり、第2ユーザの公開鍵は第2ユーザの秘密鍵との暗号ペアである、第2ユーザの公開鍵、および、第2の第三者と関連付けられた第2の第三者公開鍵であり、第2の第三者公開鍵は第2の第三者秘密鍵との暗号ペアである第2の第三者公開鍵、を含む。
【0016】
追加的または代替的に、本発明は、ピアツーピア分散型台帳におけるエンティティの効率的な移転のためのコンピュータで実施される方法を提供することができる。本方法は、第1交換トランザクションを生成するステップと、P2P分散型台帳に包含するために、第1交換トランザクションを第1ネットワークにおいてブロードキャストするステップとを含み。ここで、第1交換トランザクションは、移転される仮想通貨の第1量の指示、第1ユーザからの第1インビテーショントランザクションの出力から提供される第1入力であり、第1インビテーショントランザクションは以前にP2P分散型台帳に含まれていたものである、第1入力、第1スクリプト、第1ユーザと関連付けられた第1ユーザの秘密鍵、第1の第三者と関連付けられた第1の第三者秘密鍵、第1ユーザから第2ユーザに対する第1エンティティの移転を指示する第1出力、移転される仮想通貨の第2量の指示、第2ユーザからの第2インビテーショントランザクションの出力から提供される第2入力であり、第2インビテーショントランザクションは以前にP2P分散型台帳に含まれていたものである、第2入力と、第2スクリプト、第2ユーザと関連付けられた第2ユーザの秘密鍵、第2の第三者と関連付けられた第2の第三者秘密鍵、および第2ユーザから第1ユーザに対する第2エンティティの移転を指示する第2出力、を含む。ここで、第1スクリプトは、移転される第1エンティティの指示および移転のための条件の第1セットを提供するメタデータの第1セット、第1ユーザと関連付けられた第1ユーザの公開鍵、および第1の第三者と関連付けられた第1の第三者公開鍵を含む。ここで、第2スクリプトは、移転される第2エンティティの指示および移転のための条件の第2セットを提供するメタデータの第2セット、第2ユーザと関連付けられた第2ユーザの公開鍵、および第2の第三者と関連付けられた第2の第三者公開鍵を含む。
【0017】
好ましくは、第1交換トランザクションを生成するステップは、第1ユーザの秘密鍵を用いて署名するために第1ユーザに対して第1スクリプトを送付するステップ、第1ユーザから第1ユーザの秘密鍵を用いて署名された第1スクリプトを受け取るステップ、第1の第三者秘密鍵を用いて署名するために署名された第1スクリプトを送付するステップ、および第1の第三者から第1の第三者秘密鍵を用いて署名された第1スクリプトを受け取るステップ、を含む。
【0018】
有利なことに、第1交換トランザクションを生成するステップは、さらに、第2ユーザの秘密鍵を用いて署名するために第2ユーザに対して第1スクリプトを送付するステップ、第2ユーザから第2ユーザの秘密鍵を用いて署名された第1スクリプトを受け取るステップ、第2の第三者秘密鍵を用いて署名するために第2の第三者に対して第1スクリプトを送付するステップ、および第2の第三者から第2の第三者秘密鍵を用いて署名された第1スクリプトを受け取るステップ、を含む。
【0019】
第2交換トランザクションを生成するステップは、第2ユーザの秘密鍵を用いて署名するために第2ユーザに対して第2スクリプトを送付するステップ、第2ユーザから第2ユーザの秘密鍵を用いて署名された第2スクリプトを受け取るステップ、第2の第三者秘密鍵を用いて署名するために第2の第三者に対して第2スクリプトを送付するステップ、および第2の第三者から第2の第三者秘密鍵を用いて署名された第2スクリプトを受け取るステップ、を含む。
【0020】
本方法は、さらに、第1交換トランザクション及び/又は第2交換トランザクションを生成するステップまたはブロードキャストするステップの前に、第1ユーザと第2ユーザのうち1人またはそれ以上に対して交換を受諾するためのプロンプトを送付するステップを含む。
【0021】
本方法は、さらに、第1ユーザから、交換を実行するための第1インビテーションを受け取るステップであり、第1インビテーションはメタデータの第1セットを含む、ステップ、第1スクリプトを生成するステップ、第1スクリプトハッシュを生成するために第1スクリプトをハッシュ化するステップと、第1スクリプトおよび第1スクリプトハッシュを第2ネットワークを介して送付するステップ、および、ピアツーピア分散型台帳に包含するために、第1インビテーショントランザクションを第1ネットワークを介して送付するステップであり、第1インビテーショントランザクションは、移転されることになる仮想通貨の第3量の指示と第1スクリプトハッシュとを含む、ステップ、を含む。
【0022】
本方法は、さらに、第2ユーザから、交換を実行するための第2インビテーションを受け取るステップであり、第2インビテーションはインビテーションと関連付けられたメタデータの第2セットを含む、ステップ、第2スクリプトを生成するステップ、第2スクリプトハッシュを生成するために第2スクリプトをハッシュ化するステップ、第2スクリプトおよび第2スクリプトハッシュを第2ネットワークを介して送付するステップ、およびピアツーピア(P2P)分散型台帳に包含するために、第2インビテーショントランザクションを第1ネットワークを介して送付するステップであり、第2インビテーショントランザクションは移転されることになる仮想通貨の第4量の指示と第2スクリプトハッシュとを含むステップ、を含む。
【0023】
第1エンティティは、仮想通貨の第1量であってよい。追加的または代替的に、第2エンティティは、仮想通貨の第2量である。
【0024】
第1スクリプトおよび第1スクリプトハッシュを第1ネットワークを介して送付するステップは、分散ハッシュテーブル(DHT)において第1スクリプトおよび第1スクリプトハッシュを発行するステップを含み、または、代替的に、第2ユーザに対して第1スクリプトおよび第1スクリプトハッシュを送付するステップを含む。
【0025】
第2スクリプトおよび第2スクリプトハッシュを第2ネットワークを介して送付するステップは、分散ハッシュテーブル(DHT)において第2スクリプトおよび第2スクリプトハッシュを発行するステップを含み、または、代替的に、第1ユーザに対して第2スクリプトおよび第2スクリプトハッシュを送付するステップを含む。
【0026】
いくつかの実施形態において、P2P分散型台帳はビットコインブロックチェーンである。
【0027】
好ましくは、第1の第三者は、エスクローサービスプロバイダである。同様に、第2の第三者は、エスクローサービスプロバイダであってよい。
【0028】
有利なことに、第1交換トランザクション、第2交換トランザクション、第1インビテーショントランザクション、および第2インビテーショントランザクションのうち1つまたはそれ以上は、ペイツースクリプトハッシュ(P2SH)トランザクションである。
【0029】
第1スクリプトハッシュおよび第2スクリプトハッシュは、ベース58(Base58)で符号化されてよい。
【0030】
第1エンティティ及び/又は第2エンティティは、ビットコイン、コントラクト、商品、またはサービス、であってよい。
【0031】
コントラクトは、不換通貨、不動産権利書、チケット、商品、またはサービス、のうちの1つまたはそれ以上に対するものであってよい。
【0032】
条件の第1セット及び/又は条件の第2セットは、以下、a)交換に関する1つまたはそれ以上の価格における1つまたはそれ以上の限度範囲、b)交換レート、c)第1インビテーションの遂行に対する締め切り、d)交換を行うための地理的領域における制限、のうち1つまたはそれ以上を含んでよい。
【0033】
本発明の実施形態は、(ブロックチェーン)トランザクションの中にメタデータを埋め込むための技術を含むことができ、
アセット(B1)に関する出力(TxO)および引き換えスクリプトのハッシュを有するブロックチェーントランザクション(Tx)を生成するステップ、を含み、
トークン化されたエンティティの表現、または参照であるトークンを含むメタデータと、
少なくとも1つの(好ましくは2つまたはそれ以上の)公開暗号鍵、を含む。
デジタルアセット(B1)は、仮想通貨、例えばビットコインの量であってよい。引き換えスクリプトは、トランザクション出力TxOのロックスクリプトにおいて提供されてよい。メタデータは、暗号鍵のロケーションとしてブロックチェーンプロトコルにおいて指定されたロケーションにおける引き換えスクリプトの中で提供されてよい。このことは、根底にあるブロックチェーンプロトコルに対するあらゆる変更を必要とすることなくメタデータを移転できるという利点を提供する。プロトコルを操作するノードは、暗号鍵の代わりにメタデータの使用について依存しない(agnostic)だろう。
本方法は、さらに、トランザクションTxをブロックチェーンに提出するステップを含んでよい。実際には、仮想通貨(B1)は、従って、トークンに関連してブロックチェーンにおいてロックされてよい。仮想通貨(B1)の量は、出力TxOのためのロックスクリプトの要求を満たすロック解除スクリプトの提供の際だけに費やす(引き換える)ことができる。特には、ハッシュされた場合に、TxOのロックスクリプトにおいて提供されるハッシュと一致する引き換えスクリプトが提示される必要がある。出力TxOに対するロックスクリプトは、(メタデータにおいて)トークンを次いで有する引き換えスクリプトのハッシュを含むので、仮想通貨(B1)はトークンと関連付けされる。正しいロック解除(引き換え)スクリプトが一旦提示されると、仮想通貨(B1)の所有権は、引き換え当事者またはユーザに対して移転、すなわち、費やされる。
【0034】
本発明は、上述の任意の方法を実施するように配置され、かつ、構成されたコンピュータ実装システムを提供することができる。1つの態様または実施形態に関連して上述された任意の特徴は、あらゆる他の実施形態または態様に関して使用することができる。本発明の方法に関連して言及されたあらゆる特徴は、対応する実施システムについて同様に適用することができ、その逆も同様である。
【0035】
本発明の一つの態様に従って、上述の方法を実行するように動作可能なプロセッサまたはプロセッサのグループが提供される。
【0036】
本発明の一つの態様に従って、実行されると、上述の方法を実行するように動作可能なインストラクションが保管されているコンピュータで読取り可能な媒体が提供される
【0037】
この明細書を通じて、単語「含む(”comprise”)」、もしくは「含む(”comprises”または”comprising”)」といった変形は、記載されたエレメント(element)、インテジャ(integer)、またはステップ、もしくは、エレメント、インテジャ、またはステップのグループを含むことを意味すると理解される。しかし、あらゆる他のエレメント、インテジャ、またはステップ、もしくは、エレメント、インテジャ、またはステップのグループを排除するものはない。
【図面の簡単な説明】
【0038】
本発明の実施形態が、添付の図面を参照して、非限定的な実施例だけによって、これから説明される
【
図1】
図1は、本発明の一つの実施形態に従った、システムの模式図である。
【
図2】
図2は、
図1に係るシステムのユーザによって実行されるプロセスのフローチャートである。
【
図3】
図3は、交換サービスプロバイダによって実行されるプロセスを説明するフローチャートである。
【
図4】
図4は、交換サービスプロバイダによって生成されるインビテーション(invitation)のためのメタデータフォーマットを説明する表である。
【
図5】
図5は、交換サービスプロバイダによって生成されるインビテーションのためのメタデータフォーマットを説明する表である。
【
図6】
図6は、
図1に係るシステムの2人またはそれ以上のユーザからのインビテーションを一致させる(matching)プロセスを説明するフローチャートである。
【
図7】
図7は、
図1に係るシステムに対する複数の当事者間における複数のトランザクションのためのトランザクションテーブルである。
【
図8】
図8は、
図1に係るシステムに対する当事者間におけるトランザクションを説明する取引図である。
【
図9】
図9は、
図1に係るシステムに対する複数の当事者間における複数のトランザクションのためのトランザクションテーブルである。
【
図10】
図10は、
図1に係るシステムに対する複数の当事者間における複数のトランザクションのためのトランザクションテーブルである。
【
図11A】
図11Aは、
図1に係るシステムに対する2人の当事者間におけるトランザクションのためのトランザクションテーブルである。
【
図11B】
図11Bは、
図1に係るシステムに対する2人の当事者間におけるトランザクションのためのトランザクションテーブルである。
【
図11C】
図11Cは、
図1に係るシステムに対する2人の当事者間におけるトランザクションのためのトランザクションテーブルである。
【発明を実施するための形態】
【0039】
別の人の銀行口座への支払い又は外貨両替といった、一般的な金融取引(financial transaction)を実行する最先端の方法は、取引手数料および時間遅延の両方においてコストを招く。対照的に、ビットコインといった電子通貨における取引は、はるかに速いレート(rate)で(すなわち、数日ではなく数分)、そして、非常に低いコスト(取引き毎に数十ドルではなく数セントのオーダー)で処理することができる。
【0040】
金融上および非金融上の両方において、日常の取引(day-to-day transactions)に係る恒久的な記録を実行して、保持する、より迅速かつ安価な方法に対する必要性が存在している。本発明は、金融アプリケーションとの使用または利点に限定されなるものではないことに留意することが重要である。代わりに、本発明は、一般的に、ビットコインブロックチェーンといった、P2P分散型台帳を利用するための方法および装置に関し、当事者があらゆるタイプの価値エンティティ(entity of value)を提供し、要求し、そして、交換することを可能にする。ここにおいて説明される方法は、エンティティの交換を実行するためのインビテーション(invitation)(または、オーダー(order))エントリ(entry)を可能にする。インビテーションの受諾(acceptance)について実際の交換のエンアクトメント(enactment)も同様である。実施形態は、従って、保持されるべき交換プロセスに係る全てのステップの恒久的な記録を提供する。さらに、プロセスにおける各段階(オファー、受諾、および交換)は、仮想通貨のトランザクションにおいて使用されるものと同様な暗号化ロック技術(locking techniques)を使用してセキュアにすることができる。ここにおいて説明される方法は、また、あらゆるタイプのエンティティを交換するために使用することもできる。そうしたエンティティの実施例は、これらに限定されるわけではないが、ビットコイン、不換通貨(fiat currencies)、コントラクト、商品(goods)、およびサービスを含んでいる。「仮想通貨(”cryptocurrency”)」により、これに限定されるわけではないが、ビットコインといった、暗号化された電子的に移転可能なデジタルアセットを意味している。
ブロックチェーン技術の使用を取り込んでいるCoinffeine(http://www.coinffeine.com/)といった交換が、当技術分野で知られている。しかしながら、そうした従来技術の構成(arrangement)は、未だに従来のモデルに依拠しており、そして、また、動作するために、第三者ソース、エスクロー(escrows)、および、他のマルチ通貨非銀行口座/プロセッサにも依拠している。これらの既知の構成は、(本発明による)技術革新および暗号技術を通じてではなく、むしろ、ビジネスモデルを通じて分散化(decentalisation)を達成している。
【0041】
本発明は、トークナイゼーション技術(tokenisation techniques)の使用を組み込んでいる。コントラクトは、トークン(tokens)によるシステムを使用して交換することができる。トークンは、コントラクトによって表される交換可能なエンティティである。コントラクトは、いくつかの形式のうち1つをとることができる。例えば、コントラクトは、保有者に権利を授与し、または、財産の所有権を示すことができる。トークンの値は、契約上で特定されてよく、そして、「ペッグ率(”pegging rate”)」を介して根底にあるBTC量に対してリンクされる。トークンは、ビットコインプロトコルといった仮想通貨プロトコルを使用する新規なタイプのトランザクションを介して交換可能である。トランザクションにおけるビットコイン値は、デジタル形式において権利契約(a rights contract)を表しているトークンとして動作する。契約自体は、ブロックチェーン上に保管されてよく、または、公にアクセス可能なオフブロックのロケーションに保存されてよく、もしくは、特定の実施形態に応じて、契約に対する当事者によって個人的に保持されてよい。契約がブロックチェーン上に保管されていない場合に、トランザクションは、一意の(unique)ポインタ、識別子、または、あらゆる他のタイプの契約に対する他の参照を保管することができる。
【0042】
トークンは、分割可能(divisible)であり得る。分割可能なトークンとは、トランザクション出力における値をより小さい量へと細分化することができるものであり、値は複数の新たなトークンにわたり割り当てることができる。分割可能なトークンの実施例は、不換通貨のためのトークン、または、競走馬、等におけるシェア(shares)のためのトークンを含んでいる。分割可能なコントラクトは、非ゼロ(non-zero)ペッグ率を特定するものとして定義され得る。別の言葉で言えば、トークン値は、根底にあるビットコイン値に対して結び付けられている。代替的に、トークンは、分割不可能(non- divisible)であってよい。分割不可能なトークンは、保有者の権利を固定値において特定するコントラクトであり、例えば、家または豪州ドル$1000を引き換えるためのコントラクトである。分割不可能なトークンは、従って、根底にあるビットコインの値に対してリンクされていない。分割不可能であるため、それらは全体としてだけ移転することができる。
【0043】
トークンは、有効であるようにトークン発行者によってデジタル署名(digitally signed)される必要がある。発行者は、例えば、不動産権利の登記局(Registrar of Title deeds)といった機関であってよい。発行者は、支払いの見返りにトークンをユーザに対して発行することができる。そのトークンは、次いで、コントラクトが、不換通貨を引き換える権利であるか、またはサービスを実行させる権利であるか、もしくは財産の移転(つまり権利証書)であるかにかかわらず、トークンに対してリンクされたコントラクトを行使する権利をユーザに与えることができる。
【0044】
上記に従ったトークンの実施は、以下のものを含んでいる。
・コントラクトの発行者によるトランザクション出力のBTC値に対してペッグされた(pegged)不換通貨トークン(fiat currency token)。例えば、「このトークン(ビットコイントランザクション)の支払人(spender)は、1000サトシ(satoshis)毎に1シェア(10セント)のレートでカナダドル(CAD)のこのトークンの任意の一部を引き換える(redeem)権利がある。
・シンジケートの複数のメンバーによって所有されている競走馬。
・所有権が権利証書(a title deed)によるものである任意のアイテム。例えば、家または他の財産がこのようにして取り扱うことができるだろう。
・コンサートチケットを表す電子契約。これは本質的に分割不可能である。
・無記名債券(bearer bond)(分割不可能)
・商品/サービスに添付されている一意の識別子(バーコードまたはRFIDといったもの)。使用される場合に、この識別子は未だに好ましくは承認されたエンティティの署名によって有効にされる。署名がないと、より安全性が低い「商品/サービス(”goods/service”)」カテゴリへと分類される(以降に説明される)。
・実行されるべきサービスに対する権利についての契約。これは、実際のサービス自体と同じものではなく、自分のために実行されるサービスを受ける権利だけであることに留意する。この権利は取引することができる。たとえば、シドニーの首都圏内で3時間までの芝生刈りについてマイケルマウイング(Michael's Mowing)からのクーポン券(voucher)。このクーポン券(契約書)の保有者は、クーポン券を実際のサービスについて引き換えることができる。
【0045】
トークンは、シェア(share)の価値を指定する必要がある。例えば、1シェア=10セントCAD、1シェア=1ルピア(rupia)、または、1シェア=アイテムまたはプロパティ(競走馬、家、等)である。
【0046】
以下に説明される実施形態は、ビットコインブロックチェーン(または、単純にブロックチェーン)におけるトランザクションを記録することについて特定的に参照することができるが、本発明は、任意のP2P分散台帳を使用して実装され得ることが正しく理解されよう。以下で、ブロックチェーンは、標準化のレベルが高いこと、および、関連する公的な文書化が大量であることだけによる簡潔性(simplicity)について本発明の態様を説明するために使用される。
【0047】
当技術分野においてよく知られているように、ブロックチェーンは、ビットコインプロトコルに基づくシステムに参加しているネットワーク化されたノードにわたり分散されたトランザクション台帳またはデータベースである。通貨のブロックチェーンの完全コピーは、これまで通貨において実行された全てのトランザクションを含んでいる。従って、トランザクションのデータレコードに係る継続的に増加するリストが提供される。ブロックチェーン上に入力された各トランザクションは暗号化されて実施されるので、データストアノードのオペレータによってさえも、改ざん(tampering)および改訂(revision)に対してブロックチェーンが強化されている。
【0048】
本発明の実施形態においては、一方の当事者(one party)から別の当事者へビットコイン(または、他の仮想通貨)の支払いを表すトランザクションのレコードを保管することに係るデザインされた機能において使用されることの代わりに、または、加えて、ブロックチェーンは、当事者間におけるエンティティまたはアセットの移転を可能にする新規な方法で使用されている。交換(exchange)は、一方の当事者から別の当事者へデジタルエンティティの制御及び/又は所有権を移転する。これを達成するために、本発明は、1つまたはそれ以上のエンティティに係る交換を実行するためのインビテーション(または、オーダー)を保持および記録するためのメカニズムを提供する。本発明は、従って、ブロックチェーンを介して導かれる新規で有利な通信ソリューションを提供する。
【0049】
上述のように、任意のタイプのエンティティまたはアセットが交換可能である。これらは、物理的な、「現実世界(”real world”)」エンティティ、または、仮想的な、デジタルエンティティであってよい。交換することができるエンティティの実施例は、ビットコイン、トークン(任意のタイプの移転可能なコントラクトを表している)、および、任意のタイプの商品とサービスを含んでいる。トークンは、特定の権利を保有者に授与する契約を表すことができる。多くの例のうちのいくつかを挙げると、不換通貨(仮想銀行紙幣)について引き換えられるため、プロパティの所有権(例えば、権利証書)を示し、または、イベントに対するアクセスを認めるための権利である。商品とサービスは、多くの例のうちのいくつかを挙げると、新品または中古の製品、労働(例えば、時間によって請求されるもの)、完全な仕事(例えば、芝生の芝刈り)を含んでよい。
【0050】
図1は、一つの実施形態に従った、P2P交換システム100のネットワーク図である。システム100は、ネットワーク102およびネットワークに対する複数の当事者を含んでいる。当事者は、交換サービスプロバイダ104、第1ユーザ106、第2ユーザ108、エスクローサービスプロバイダ(an escrow service provider)110、および、発行者112を含んでいる。より詳細に以下に説明するように、交換サービスプロバイダ104、エスクローサービスプロバイダ110、および発行者112の機能の組み合わせは、単一の当事者によって引き受けることができる。別の言葉で言えば、単一の当事者がそれぞれの機能を同時に実行することができる。加えて、そして、より詳細に以下に説明するように、交換サービスプロバイダ104およびエスクローサービスプロバイダ110は、これらのサービスプロバイダ104、110を使用することなくP2P交換システム上で完全に実行できるので、任意的である。
【0051】
交換サービスプロバイダ104は、第1ユーザ106および第2ユーザ108を含む、複数のユーザに交換サービスを提供する。発行者112は、破線によって示されるように、ネットワーク102に対して任意的である。より詳細に以下に説明するように、発行者112は、トークンの交換が関与する場合にだけ必要とされるものである。
【0052】
いくつかの実施形態において、ネットワーク102はインターネットである。従って、他の当事者(図示なし)がネットワーク102に対する当事者であってよい。ネットワーク102に対する全ての当事者は、ネットワーク102に対する他の全ての当事者と通信することができる。ネットワーク102上でホストされているのは、ピアツーピア分散ハッシュテーブル(P2P DHT)とピアツーピア分散型台帳(P2P DL)である。システム100において示されている当事者のいくつか又は全ては、図示されていないものと一緒に、P2P DHTおよびP2P DLの両方またはいずれかに対するホストノードとして動作し得ることが正しく理解されよう。
【0053】
インビテーションの構造
インビテーションは、様々なパラメータまたはコードを含むように構成されてよい。これらは、様々な目的のために使用することができる。例えば、より詳細に以下に説明されるような、インビテーションのマッチング(matching)である。1つまたはそれ以上の実施形態においては、以下の構造を使用することができる。
【表1】
【表2】
【0054】
交換サービスプロバイダ104の1つの目的は、P2P DHTとP2P DLの両方においてインビテーション(またはオーダー)を置く(place)ためにユーザ106、108のためのゲートウェイを提供することである。ネットワーク102のユーザ106、108は、それ自体、P2P DHTとP2P DLの両方にインビテーションを置くことができるが、交換サービスプロバイダ104は、簡素化されたインターフェイスを提供し、インビテーションが生成される効率を改善し、かつ、当業者であれば理解するように、ビットコイン台帳といった、分散型台帳におけるトランザクションの直接的な取り扱いに関連する危険を低減する(例えば、トランザクションの喪失、等)。P2P DHTとP2P DLにおけるユーザインビテーションの発行を可能にすることに加えて、交換サービスプロバイダは、以下の追加サービスのうち1つまたはそれ以上を実行することができる。
・インビテーションのマッチング(Matching invitations)- 上述のように、インビテーションは、a)ユーザが交換することを望むエンティティの詳細、b)交換に添付された1つまたはそれ以上のユーザ適用オプション/条件、を含んでよい。2つのインビテーションは、それぞれのエンティティの詳細がミラーリングされており(mirrored)、かつ、2つのインビテーションの条件のうち1つまたはそれ以上が適合する場合に、一致し得る。別の言葉で言えば、第1インビテーションの中に含まれる一つまたはそれ以上のパラメータまたは特徴が、また、第2インビテーションの中にも含まれている場合に、一致が生じ得る。インビテーションにおけるパラメータ間にはいくつかの共通性が存在している。ミラーリングされたエンティティの詳細の例は、第1ユーザ(アリス(Alice))がリンゴのためにビットコインを提供し、かつ、第2ユーザ(ボブ(Bob))がビットコインのためにリンゴを提供する場合である。サービスプロバイダは、従って、交換に適応する(accommodate)ために、コンパチブルなインビテーションを合致するマッチングサービスを提供することができる。マッチングは、一致するエンティティ及び/又は条件を有する1つまたはそれ以上のインビテーションについてP2P DHTをスキャンすることを含んでよい。いくつかの実施形態において、サービスプロバイダ104は、ユーザからの要求に応じてP2P DHTをスキャンすることができる。例えば、ユーザは、サービスプロバイダ104に対して所望のインビテーションのための1つまたはそれ以上のクライテリア(criteria)を提供することができる。提供されたクライテリアに基づいて、サービスプロバイダ104は、次いで、それらのクライテリアに一致する、既にP2P DHT上に置かれているインビテーションを検索することができる。他の実施形態において、サービスプロバイダ104は、特定のユーザ要求に関係しない、一致またはほぼ一致するインビテーションについてP2P DHTを検索する、非特定的なペアリングアルゴリズム(non-specific pairing algorithm)を実装することができる。マッチングサービスは、他の第三者プロバイダによって提供されてよいことが正しく理解されよう。1つまたはそれ以上の第三者プロバイダが存在してよく、その主な目的は、上記に従ってマッチングサービスを提供し、以下に説明されるように、同様にマッチングアラートを提供することである。いくつかの実施形態において、マッチングはマッチングサービスプロバイダ(MSP)によって提供される。
1つまたはそれ以上の実施形態に従って、かつ、また上記の「インビテーションの構造」セクションに示されるテーブルを参照して、以下のようなAとBとの間でインビテーションのマッチングからマッチングアルゴリズムを採用することができる。
AのOffer-type-codeは、BのRequest-type-codeと一致することを要する
AのRequest-type-codeは、BのOffer-type-codeと一致することを要する
AのRate-min ≦ BのRate-max(同等の単位で表される場合)
AのRate-max ≧BのRate-min(同等の単位で表される場合)
Request-item-IDは、Offer-Item-IDと一致することを要する
AのRequest-QTY-min ≦ BのOffer-QTY-max
AのRequest-QTY-max ≧ BのOffer-QTY-min
Aの条件は(もしあれば)、Bのインビテーションと適合することを要する
Bの条件は(もしあれば)、Aのインビテーションと適合することを要する
本発明は、このアルゴリズムまたはその変形を実施するマシンで実行可能なルールを組み込むように構成することができる。
・アラートの一致(Match alerts)- 一致またはほぼ一致が検出された場合に、交換サービスプロバイダ104は、電子メールによる、もしくは、電話またはタブレットアプリケーションを介するといった、既知の方法でユーザにアラートする(alert)ことができる。従って、本発明は、新規な通信またはアラートメカニズムを提供することができる。
・一致に基づく新たなインビテーション生成(Generating new invitation based on matches)- ユーザが、置きたいと望むインビテーションまたはオーダーの詳細を提供する場合に、サービスプロバイダ104は、ユーザのオーダーの条件を満足する1つまたはそれ以上のインビテーションについてP2P DHTをスキャンすることができる。次いで、P2P DHTにおいてインビテーションのマッチングが見つかった場合に、サービスプロバイダ104は、成功した一致を促進するために、既にP2P DHT上にある識別されたインビテーションをミラーリングするインビテーションを生成することができる。P2P DL上で最終トランザクションを完了するためには、トランザクションに対する全ての当事者は、P2P DLで既に公開されているインビテーションを有する必要があることに留意する。しかしながら、全てのインビテーションがP2P DHTにおいて公開されることを要するとは限らない。この実施例において、例えば、サービスプロバイダは、インビテーションが広告される(advertised)必要が存在しないので(所望の一致が既に見つかっている)、P2P DHT上でオファーを公開する必要はない。しかしながら、例えば、最初のマッチングが失敗に終わる場合に、生成されたインビテーションは、未だにP2P DHT上に置かれてよいことが正しく理解されよう。
・トランザクションの実行(Executing transactions)- インビテーションのペアが成功裡に一致した後で、サービスプロバイダ104は、最終トランザクションを実施するためのプロキシとして動作することができる。例えば、2つのインビテーションが一致するという判断において、サービスプロバイダ104は、実際のトランザクション、すなわち、エンティティの交換を含むトランザクションを、P2P分散型台帳に記録することができる。このプロセスは、当事者が承認を表すことなく、または、トランザクションを承認するために一人またはそれ以上の当事者を促した後で、自動的に行われてよい。
いくつかの実施形態では、インビテーションの中のメタデータは、交換が確定される前に当事者が通知されることを要するか否かを示すことができる。
・eウォレットサービス(eWallet services)- 上記に加えて、サービスプロバイダ104は、また、仮想通貨の鍵、等の保持といった、従来のeウォレットサービスを提供することもできる。
【0055】
図1のシステム100においては、単一のサービスプロバイダ104が示されている。しかしながら、1つまたはそれ以上の追加の交換サービスプロバイダがネットワーク102に対する当事者であってよいことが正しく理解されよう。1つ以上の交換サービスプロバイダが存在する場合に、ユーザは、例えば、サービスプロバイダの料金体系、ロケーション、互換性、等を含み得る、それらの要求に応じて交換サービスプロバイダを選択することができる。従って、所定の状況においては、一致するインビテーションを持つ2人のユーザが、異なる交換サービスプロバイダを使用してよいことが正しく理解されよう。そうした状況において、ユーザのそれぞれの交換サービスプロバイダは、交換を促進するために相互間で通信することができる。
【0056】
交換サービスプロバイダ104に加えて、エスクローサービスプロバイダ110(または、略してエスクロー)が、ネットワーク102における当事者であってよい。エスクローサービスプロバイダ110は、取引が決済されるまでユーザのオファーを保持すること(すなわち、提供された金額が留保されている)、または、所定の条件下において、オーダーをキャンセルし、かつ、インビテーションにおいて提供されたものを何でも返却すること、を可能にする。エスクローサービスプロバイダ110は、トランザクションについてエスクローサービスを提供するために、トランザクションの2人の当事者によって信頼される、中立的な第三者として機能する。従って、システムにより、ユーザは、最終トランザクションに参加することができ、オファーを行うユーザが、提供された金額を(ビットコインまたはトークンで)を満足できるという保証を有することができる。
【0057】
交換サービスプロバイダと同様に、1つ以上のエスクローがネットワーク104に対する当事者であってよい。P2P交換システム100のユーザは、また、1つのエスクロープロバイダを使用する場合に、どのエスクロープロバイダを使用するか選択することもできる。いくつかの実施形態において、エスクロー110のサービスは、交換サービスプロバイダ104のサービスの中に組み込まれてよく、または、その逆も同様である。そうした場合には、別個のエスクローが必要とされないことがある。
【0058】
上記に加えて、システム100は、また、発行者112も含んでよい。発行者112は、トランザクションがトークンの交換を含む場合に、関与することができる。そうした状況において、プロセスは、トークンに署名する発行者を取り込んでいる。トークンの移転を取り込んでいるそれぞれのトランザクションは、好ましくは、発行者112を含んでいる。ここにおいて説明される実施形態において、発行者の署名は、インビテーショントランザクションにおいて要求され、そこではトークンが提供されて、エスクローにおいて保持される。発行者の署名は、また、交換トランザクションにおいても要求され、そこでは相手方(counterparty)に対してトークンの支払いが行われる。
【0059】
本開示の実施形態の重要な態様は、ビットコイン交換トランザクション(または、仮想通貨トランザクション)において交換を実行するためのインビテーションに関するメタデータを埋め込むための能力(ability)であり、同様に、ビットコインまたは他の仮想通貨トランザクションにおいて、実際の交換に関するメタデータを埋め込むための能力である。ここにおいて説明される実施形態は、以下に説明するように、そうしたメタデータの埋め込みを可能にするために、マルチシグネチャ(multi-signature)ペイツースクリプトハッシュ(pay to script hash、P2SH)タイプのトランザクションを使用する。
【0060】
(i)一般的なP2SHにおける引き換えスクリプト(Redeem script in P2SH in general)
背景として、ビットコインプロトコルの標準的なペイツースクリプトハッシュ方法において、引き換えスクリプトは以下の形式をとる:
<NumSigs PubK1 PubK2 ... PubK15 NumKeys OP_CHECKMULTISIG>
ここで、
NumSigsは、トランザクションをロック解除するための引き換えスクリプトを満足するために要求される有効な署名の数「m」である。
PubK1、PubK2、・・・、PubK15は、トランザクションをロック解除する署名に対応する公開鍵(public keys)である(最大15個までの公開鍵)。
NumKeysは、公開鍵の数「n」である"(15個以下でなければならない)。
【0061】
上記の引き換えスクリプトを償還するためには、公開鍵に対応する少なくとも「m」個の署名が必要とされる。いくつかの実施においては、公開鍵の順序が重要であり、そして、署名(signing)のための「n」個の署名のうち「m」個の署名が、順番に行われなければならない。例えば、「m」が2であり、公開鍵の数「n」が15であるとする。2個の署名が使用のために利用可能であるとすると、例えばSig1(PubK1に対応しているもの)とSig15(PubK15に対応しているもの)、引き換えスクリプトは、最初にSig1によって署名され、その後でSig15によって署名されなければならない。
【0062】
(ii)P2SHにおけるメタデータの埋め込み(Embedding metadata in P2SHl)
本発明者は、引き換えスクリプトにおいて公開鍵のために利用可能な15か所のうち1つまたはそれ以上において、メタデータがP2SHの中に埋め込まれ得ることを認識した。
【0063】
例えば、P2SHは以下の形式をとる:
<NumSigs Metadata1 Metadata2 ... PubK1 PubK2 ... NumKeys OP_CHECKMULTISIG>
ここで、
NumSigsは、トランザクションをロック解除するための引き換えスクリプトを満足するために要求される有効な署名の数「m」である。
Metadata1とMetadata2は、それぞれ、公開鍵に代わるメタデータを含んでいる。
PubK1とPubK2は、実際の公開鍵である。そして、
NumKeysは、メタデータと公開鍵(15個以下でなければならない)によって取られる位置の総数である。
【0064】
引き換えスクリプトの中に、インビテーションの条件、トークンに関連するコントラクトの詳細、及び/又は、交換に関連する他の情報に対応するメタデータを置くことによって、そうした情報のハッシュは、P2P分散型台帳の中に含まれる。
【0065】
この埋め込み方法は、次のように要約できる。
仮想通貨の一部に関する出力(TxO)および引き換えスクリプトのハッシュを有するブロックチェーントランザクション(Tx)を生成することであり、Txは、
トークン化されたエンティティの表現、または参照である、トークンを含むメタデータ、および、
少なくとも1つ(好ましくは2つまたはそれ以上の)公開暗号鍵、を含む。
トークン化されたエンティティは、交換に関するコントラクト及び/又は他のエンティティとすることができる。メタデータは、暗号鍵のためのプロトコルによって指定されたロケーションにおいて提供される。
【0066】
このように、本発明の実施形態におけるマルチシグネチャP2SHビットコイントランザクションの使用は、いくつかの利点を提供する。第1に、それは、インビテーショントランザクションがメタデータペイロードを運ぶ(carry)ことを可能にする。第2に、それは、交換トランザクションにおけるエスクローサービスの利用を促進する。第3に、交換においてトークンが移転されるロケーションで、それにより、交換トランザクションは、交換される1つまたはそれ以上のトークンに関するメタデータを運ぶことができる。また、根底にあるブロックチェーンプロトコルは、メタデータがトランザクションを介して送付されているという事実には関わらない(agnostic)。従って、この情報を伝達するためにブロックチェーンプロトコルに対する変更は必要とされない。
【0067】
メタデータは、インビテーショントランザクションにおいてオファー(offer)またはリクエスト(request)を記述している記載またはキーワードを含んでよい。メタデータは、また、インビテーションに関する条件も含んでよい。例えば、インビテーションに締め切り日付を添付することができる。締め切りは、それまでにオーダーが遂行されねばならない時間及び/又は日付を指定することができる。インビテーショントランザクションを用いて締め切り条件が提供される場合には、同じBTC量を費やし、かつ、交換が行われる締め切りを表すロック時間(locktime)を含んでいる、取り消し(cancellation)トランザクションが生成されてよい。取り消しトランザクションは、ロックタイムまでP2P DL上に配信されることを防ぐことができる。締め切りまでに交換が行われない場合には、取り消しトランザクションがP2P DLに対して追加され、そして、支払人(payer)及び/又はサービスプロバイダに効果的に払い戻される。締め切りが終了する以前に交換が行われた場合に、交換トランザクションはその量(amount)を費やし、時間ロックされた取り消しトランザクションに先立ってP2P DLにヒットする二重支払い(double-spend)を創出し、それにより、取り消しトランザクションをブロックしている。いくつかの実施形態においては、メタデータは、締め切りを含まなくてよいが、その代わりに、取り消しトランザクションは、元のインビテーショントランザクションを取り消すことについて単に責任を負うことができる。代替的に、締め切りメタデータ条件は、取り消しトランザクションの支払い(spending)を自動的に引き起こさなくてよい。別の言葉で言えば、締め切りは支払人の管理下に残る柔軟な締め切りであってよい。この締め切りは、従って、単にそれが失効することを許可し、かつ、遅れて一致するインビテーションを依然として受け入れる当事者によって拡張されてよい。同様に、サービスプロバイダは、未使用のままである場合に、期限切れのオーダーとの照合を依然として試みてよい。
【0068】
インビテーショントランザクションを置く(placing)のと同時に取り消しトランザクションをロックする代わりに、ユーザは、締め切りの後まで待つことができ、そして、そう望む場合には、取り消しトランザクションを手動で入力することができる。
【0069】
条件は、また、例えば、トランザクションブロードキャストのロケーションが指定された座標のXメートル以内にある場合には、トランザクションがP2P DL上にだけブロードキャストされること、を指定することができる1つまたはそれ以上のロケーション条件(location conditions)を含むこともできる。このことは、トランザクションが指定されたロケーション、例えば、ボブのコーヒーショップ、でだけ行われることを保証する。
【0070】
ユーザが自分の新しい条件を作成し、そして、以前に使用されていない条件コードにそれらに割り当てることによって、条件のリストにそれらを追加することを可能にするファシリティ(facility)が存在し得る。このファシリティは、乱用に抵抗することができる。例えば、各サービスプロバイダは、単に関連する条件コードと一緒に条件の独自のテーブルを公開することができ、そして、システム100の他の当事者は、同じコーディングを採用することを選択することができ、かつ、また、それ自身の新しいコーディングを追加することもできる。次いで、例えば、条件コードの再使用のせいで紛争が発生した場合に、紛争は、サービスプロバイダまたはシステム100の他のユーザによって解決され得るものである。
【0071】
本発明の実施に係るいくつかの例が、第1ユーザ106(ここにおいてはアリス(Allice)と呼ばれる)と第2ユーザ(ここにおいてはボブ(Bob)と呼ばれる)との間のトランザクションの例としてこれから説明される。この例において、トランザクションは、ビットコインについてトークン化されたカナダドルの交換である。
【0072】
インビテーションを知らせること(Posting an invitation)
【0073】
第1実施例において、アリスは、ビットコインについてトークン化されたカナダドル(CAD)をいくらか購入したい。彼女の関心を広告するために、アリスは、例えば、ウェブインターフェイス、もしくは、タブレットまたは携帯電話上で動作するアップ(app)を介して、交換サービスプロバイダ104にコンタクトする。
図2に示されるように、ステップ202において、アリスは、サービスプロバイダ104のウェブインターフェイスへとログインする。ステップ204と206において、アリスは、次いで、彼女のインビテーションの詳細をサービスプロバイダに対して送付する。交換されるエンティティ(ビットコインについてトークン化されたCAD)と交換の条件、およびサービスプロバイダによって提供される任意の選択されたオプションを含むものである。アリスは、例えば、有効なインビテーションへとサービスプロバイダ104によって次いで翻訳され得る通常の言語を使用して、サービスプロバイダ104によってホストされているインターフェイスの中へこの情報を入力することができ、または、代替的に、アリスは、事前選択オプション(pre-selecting options)例えば、ドロップダウン選択メニューを介して、簡単に情報を入力することができる。
【0074】
ステップ208において、アリスは、彼女の選択に基づいてサービスプロバイダ104によって生成され、かつ、アリスが交換したいと望むエンティティに関する情報およびインビテーションに関する任意の条件を含む、引き換えスクリプト(redeem script)をサービスプロバイダ104から受け取る。アリスは特定のサービスプロバイダ104を使用するように契約(signed up)しているので、サービスプロバイダ104は、既にアリスの公開鍵(public key)を持ち得る。代替的に、アリスは、最初の選択の最中か、または、サービスプロバイダ104からの要求に応じてかのいずれかで、サービスプロバイダ104に対して彼女の公開鍵を提供することができる。
【0075】
アリスは、ステップ210において、彼女の公開鍵に対する暗号ペア(cryptographic pair)である、彼女の秘密鍵を使用して引き換えスクリプトに署名し、そして、ステップ212において、配布されるように、署名された引き換えスクリプトをサービスプロバイダ104へ送り返す。このプロセスは、それ自体がサービスプロバイダ104によって提供され得る、アップの使用によってサポートされてよい。
【0076】
図3に示されるフローチャート300は、サービスプロバイダ104によって実行される対応するプロセスを説明している。ステップ302において、サービスプロバイダ104は、アリスからのインビテーションの詳細を受け取り、そして、ステップ304において、アリスの公開鍵、エンティティの詳細、およびインビテーションの条件を使用して、引き換えスクリプトを生成する。引き換えスクリプトは、P2SHビットコイントランザクションについて適したフォーマットであってよい。インビテーションの詳細は、マルチシグロック解除スクリプト(multisig unlocking script)において通常使用されている32バイトの公開鍵の代わりに(in place of)、メタデータフィールドにおいて保管されてよい。
図4は、一つの実施形態に従って、アリスのインビテーションについてメタデータのフォーマットを示している。インビテーションにおいて、アリスは、トークン化されたCADを要求し、そして、見返りに、400CAD/ビットコイン以上のレートでビットコインを提供する。より詳細に以下に説明するように、
図4は、また、インビテーションに対して追加することができる締め切り条件(deadline condition)も示している。締め切り条件は、インビテーションに基づいて、交換が確定されていない場合に締め切りにおいてインビテーションが取り消されるようにすることができる。
【0077】
引き換えスクリプトは、次いで、署名のためにアリスへ送付される。アリスから署名された引き換えスクリプトを受け取ると、ステップ308において、サービスプロバイダ104は、署名された引き換えスクリプトのハッシュを生成する。
【0078】
サービスプロバイダ104は、2つの方法でハッシュを使用する。第1に、ステップ310において、サービスプロバイダ104は、公に利用可能なP2P DHTにおけるハッシュと共にインビテーションの詳細をリストする。上述のように、この表はトレント技術(torrent technique)を採用しているので、集中化されるのではなく、むしろ分散されており、そして、従って、公にアクセス可能なままであり、かつ、偽和(adulteration)から安全である。他のサービスプロバイダ104は、次いで、インビテーションにアクセスし、そして、彼ら自身のサイトにおいてリストすることができる(実際には、サービスプロバイダ104は、単にハッシュテーブルを唯一のリポジトリとして使用し、そして、インビテーションに係る自身のローカルデータベースを維持する必要さえない。)
【0079】
ハッシュが使用される第2の方法は、ステップ312において、ビットコイントランザクションのロッキングスクリプト(locking script)を作成することである。このトランザクションは、ロック解除するために2つの署名を必要とするP2SHスクリプトに対してアリスのビットコインのある量を費やす。アリスの署名、および、指定されたエスクローサービスプロバイダ110(上述のように、サービスプロバイダ104と同じエンティティであっても、なくてもよい)の署名である。このトランザクションの目的は、二重(twofold)である。第1に、インビテーションがP2P DL上に記録される(logged)。任意のユーザまたはそのサービスプロバイダは、(一致するハッシュ値を介して)P2P DL上に一致するトランザクションが存在することを保証することによって、P2P DHT上のインビテーションが正当(legitimate)であることを確認することができる。第2に、トランザクションは、アリスがインビテーションにおいて成したコミットメントを「ロック(”lock”)」する。トークン化されたCADの交換においてアリスが提供するビットコインの量は、オーダートランザクションによって費やされる量である。従って、オーダーは十分な資金(funds)によって裏付けされていることを確認することができる。
【0080】
一致するインビテーションのペアリング(Pairing matching invitations)
【0081】
第2の実施例において、ボブは、彼のBTCについてトークン化されたCADのいくらかを売りたい、そして、アリスによって使用されておりサービスプロバイダ104と同じか又は異なるサービスプロバイダのいずれかを使用して、彼自身のインビテーションを独立的にリストしている。ボブのオーダーも、
図2および
図3を参照して説明したように、ハッシュテーブルにおいてリストされ、そして、P2P DLトランザクションの中に埋め込まれている。ボブのインビテーションのメタデータが、
図5において示されている。
【0082】
図6を参照すると、アリスとボブのオーダーをマッチングするプロセス400が説明されている。この例において、サービスプロバイダ104が、そのプロセスを実行するものとして説明されている。しかしながら、任意の交換サービスプロバイダ、または、実際には、他の任意の適切な第三者が、プロセス400を実行し得ることが正しく理解されよう。
【0083】
交換サービスプロバイダ104は、アリスとボブのインビテーション間における完全な一致または部分的な一致を識別するように動作可能なマッチングアルゴリズムを実行することができる。ステップ402において、交換サービスプロバイダ104は、エンティティの詳細をマッチングするために、P2P DHTをスキャンする。スキャンの最中に、サービスプロバイダ104は、アリスとボブのインビテーションに係るエンティティの詳細の間における一致をチェックする。ステップ404において一致が見つからない場合に、次いで、プロセスは、ステップ402まで戻り、そして、交換サービスプロバイダ104は、エンティティの詳細のマッチングのためにP2P DHTをスキャンし続ける。ステップ404において一致が見つかった場合、プロセス400は、ステップ406を続けて、アリスとボブのインビテーションそれぞれの1つまたはそれ以上の条件の間における一致についてチェックが行われる。ステップ406で一致が見つからない場合に、プロセスはステップ402へ戻る。1つまたはそれ以上の条件の間における一致が見つかった場合に、次いで、プロセスはステップ408へ移動し、そこで、交換サービスプロバイダ104は、アリスとボブとの間のトランザクションを作成し、そして、確定するように試みる。
【0084】
ポジティブな一致(positive matching)が確認されるためには、ステップ406において、2つのインビテーションにおける全ての条件の直接的な一致が要求されなくてよい。実際に、プロセス400は、条件のいくつかが一致することを要求するだけであってよい。追加的または代替的に、1つまたはそれ以上の条件が完全に一致する必要はない。例えば、比較されている条件が各条件においてオファーされる交換レートである場合に、プロセス400は、レートが互いに既定の閾値範囲内にあれば、ポジティブな一致を確認することができる。例えば、アリスが4×10-5トークン化CAD/サトシ(tokenised CAD/satoshi)の最小レート条件をオファーしており、かつ、ボブの同様な最大提示レートが3.9×10-5トークン化CAD/サトシである場合には、ボブの提示レートがアリスのオリジナルの要件を十分に満たすものではないとしても、プロセスは、それでも条件の一致を確認または提供し得る。そうした状況においては、一致に際して、アリスには受け入れるためのオプションが与えられてよい。ボブの同様な最大提示レートが4.1×10-5トークン化CAD/サトシである場合には、条件が満足されることが正しく理解されよう。別の例において、条件は、オファーおよび要求においてオファーされる商品およびサービスに対するそれぞれの値であってよい。プロセス400は、2つの値が互いに既定の閾値範囲内にあれば、ポジティブな一致を再び確認することができる。いずれの場合にも、既定の閾値範囲は、例えば、オファー値または要求値に係る計数値(discrete value)またはパーセンテージであってよい。
いくつかの実施形態では、近接一致を許可するか否か、すなわち、アリスとボブのそれぞれのオファーの間に直接一致がない場合に、設定できる条件が存在する可能性がある。同様に、提供された範囲内に厳密には存在しないカウンターオファーを許可するか否かを設定できる条件が存在する可能性がある。
【0085】
前述のように、ボブとアリスのインビテーションそれぞれ又は両方のトランザクションメタデータは、さらに、1つまたはそれ以上のロケーション条件を含んでよく、例えば、トランザクションブロードキャスト(transactional broadcast)のロケーションが指定された座標のXメートル以内である場合にトランザクションがP2P DL上にのみブロードキャストされることを指定することができる。このことは、トランザクションが指定されたロケーション、例えばボブのコーヒーショップ、おいてのみ行われることを保証する。
【0086】
一旦、一致が見い出され、かつ、トランザクションを完了する以前に、1つまたはそれ以上の介在するステップ(intervening steps)が実行されてよい。これらは、一致が見い出されたことの当事者に対するアラートを含んでよく、進行することを彼らが望んでいるということを確認するためのリクエスト、等が後に続く。例えば、上述のように、条件が1人またはそれ以上のユーザによって完全ではないがほぼ満足される場合には、それでも一致は記録されるが、全ての当事者がインビテーションの条件に満足するまで確定されなくてよい。このプロセスは、条件について最終合意を交渉するためのカウンターオファー(counter offers)をもたらし得るものであり、次いで、上述のプロセスに従ってさらなるインビテーションの生成をもたらし得る。
【0087】
最終的な交換は、各インビテーショントランザクションの出力を費やす1つまたはそれ以上のビットコイントランザクションを作成することによって実行することができる。本発明者は、トランザクションを完了するいくつかの新規な方法を見い出した。これらに限定されるわけではないが、トランザクションに関与するユーザ、交換されるエンティティ、およびトランザクションに関与するサービスプロバイダと発行者、を含む状況に依存し得るものである。これらの方法のうちいくつかの実施例が以下に説明される。
【0088】
図2から
図6までを参照して上述された実施例から続いて、アリス-ボブおよびボブ-アリスについて別々のトランザクションのためのトランザクションテーブル500が
図7に示されており、そして、トランザクションフローの概略
図600が
図8に示されている。
図4と
図5に示されるメタデータ値と同様に、トランザクションテーブル500において提供される値は、例としてだけ示されるものである。この例においては、アリスのインビテーショントランザクションにおける彼女のビットコインはボブに対して費やされ、そして、ボブのインビテーショントランザクションにおける彼のCADトークン化ビットコインはアリスに対して費やされる。
【0089】
最初にアリス-ボブのトランザクションを参照すると、このトランザクションの入力602は、アリスのインビテーションと共にP2P DL上に置かれたインビテーショントランザクションの出力から提供されている。第1トランザクションと同様に、アリスとエスクローサービスプロバイダ110の両方によって入力スクリプトが署名される(アリスはトランザクションが進行することを喜ぶと仮定している)。スクリプトは、費やされたビットコイン(spent bitcoins)をロック解除し、a)トークン化CADに対する見返りの彼の支払いとしてボブに対して(604)、b)交換に対する支払いとして交換サービスプロバイダ104に対して(606)、およびc)もしあれば、お釣り(change)としてアリスに対して(608)、出力することができる。
【0090】
これからボブ-アリスのトランザクションを参照すると、このトランザクションは2つの入力を有している。トランザクションの第1入力610は、ボブのインビテーションと共にP2P DL上に置かれたインビテーショントランザクションの出力から提供されている。このトランザクションに対する入力はトークン化されているため、入力スクリプトはボブとトークン発行者の両方によって署名される必要がある。この状況において、トークン発行者は、また、エスクローとしても動作し、それにより、ボブ(および、任的にアリス)がトランザクションに満足するまで資金を保留している。署名されたスクリプトは費やされたトークンをロック解除し、次いで、a)BTCに対する見返りの支払いとしてアリスに対して(612)、およびb)アリスに対して送付された値より少ないオリジナルのトークン値に対するお釣りトークン(change token)としてボブに戻って(614)、出力することができる。第2入力616は、ボブの以前のビットコイントランザクションからのものである。この入力は、ロック解除され、そして、a)交換に対する支払いとしてサービスプロバイダ104に対して、b)交換トランザクションに対する料金(fee)としてビットコインマイナに対して、およびc)サービスプロバイダ104の料金とマイナの料金より少ないオリジナルのビットコイン入力値の値に対するビットコインでのお釣り(change)としてボブに対して、出力される。
【0091】
各トランザクションに対するサービスプロバイダ104の料金は、トランザクションの値のスライス(slice)であってよい。代替的または追加的に、料金は、2つのインビテーションにおいて示された対応するレート条件間に広がる交換レートのスライスであってよい。例えば、オファーされたレートがオーバーラップする場合に、サービスプロバイダ104は、交換に係る両面をそれぞれの提示レート(asking rate)で遂行し、そして、差を料金として保持することができる。代替的または追加的に、サービスプロバイダ104によって、フラットな料金(サトシ、トークン化された通貨、またはその他におけるもの)が取られてよい。いくつかの実施形態において、サービスプロバイダは、実際のトランザクションを介して料金を引き出すことができない。代わりに、ユーザは、トランザクションの外で料金が課されることがある。例えば、ユーザは、会費、もしくは、1つまたはそれ以上のトランザクションに対するトランザクション毎の請求書が課されることがある(トランザクション毎または掛売り(on account)で、等)。
【0092】
一旦トランザクションが完了すると、ボブとアリスのそれぞれのサービスプロバイダは、P2P DHTから彼らのインビテーションのエントリを削除し、または、オリジナルのエントリを無効にするさらなるエントリを入力することができる。例えば、サービスプロバイダは、エントリが支払トランザクション(spend transaction)に対応するので、P2P DHT上にそのエントリを単に残すことができる。これは、インビテーションが、もはや有効でないことを意味する。代替的に、サービスプロバイダは、費やされたことを示すフィールドを用いてトランザクションをマークすることができる。これは、特定のエントリに対応するDHTにおける個別のフィールドであってよいが、インビテーションと関連付けられた実際のメタデータは変更しない(このことは、スクリプトハッシュ(script hash)が未だにトランザクションにおけるハッシュと一致することを保証し得る)。代替的に、サービスプロバイダは、P2P DHTからエントリを削除することができる。しかしながら、P2P DHTの利点は、システム100を使用するトランザクションの永続的な監査制御(audit control)である。望ましくは、従って、P2P DHTからのエントリの削除が防止され、もしくは、エントリのレコードを維持するために削除されたエントリがアーカイブされる。一つの例においては、削除されたエントリがアーカイブされる。
【0093】
上記の例のトランザクションにおいて、パズル(puzzle)は交換されない。別の言葉で言えば、2つのトランザクション(アリス-ボブとボブーアリス)は完全に分離された、別々のものである。しかしながら、ある場合には、2つのトランザクションについて有効または無効のいずれかであることが望ましい。
図9は、アリスのトランザクション(アリス-
ボブ)においてパズルが交換される代替的なトランザクションの例を示している。そうすることによって、2つのトランザクションは一緒にロックされ、他方を費やすことなく、一方を費やすことはできない。このことは、相手方のトランザクションも通過することなく、一方の当事者から別の当事者へのトランザクションが通過することを防止する。
【0094】
上記の2つの例においては、交換を完了するために2つのビットコイントランザクションが実行されている。可能であれば、しかしながら、上記の2つのトランザクションを単一のビットコイントランザクションへと統合することが望ましい。そうすることは、交換の2つの部分を一緒に自動的にロックし、かつ、トランザクションのためにアリスとボブによって支払われる全体の手数料の削減につながる。
【0095】
図10は、アリスとボブとの間の単一のトランザクションに対するトランザクションテーブル700を示している。交換のためのトランザクションフローは、以前の2つの実施例と同じである、つまり
図6に示されているものである。しかしながら、交換は、単一のマルチ入力-マルチ出力(multi-input-multi-output、MIMO)トランザクションへと統合されている。
図8においては、2つの別個の料金が交換サービスプロバイダ104に対して支払われることに留意する。しかしながら、ボブとアリスの両方について交換サービスプロバイダ104が同じである場合に、これら2つの料金は、ボブ、アリス、またはボブとアリスの両方によって支払われる、単一のトランザクションへと統合され得る。
【0096】
2つ以上の当事者を含むトランザクション
【0097】
上記のトランザクションは、2つのエンティティ間における交換に関するものである。しかしながら、いくつかの例においては、2つより多いエンティティが交換に関与し得ることが正しく理解されよう。例えば、以下のシナリオを考えてみる。アリスはビットコインをリンゴと交換したいが、最低でも1000個のリンゴしか受け入れない。ボブは、リンゴをビットコインと交換したいが、500個のリンゴしか供給できない。キャロルは、リンゴをビットコインと交換したいが、600個のリンゴしか供給できない。こうした状況において、アリスのインビテーションの条件は、ボブまたはキャロルによって個別には満足することができない。しかしながら、一緒に、ボブとキャロルは1100個のリンゴを持っており、そして、アリスのインビテーションを満足することができる。
【0098】
別の実施例において、アリスはトークン化CADをトークン化GBPと交換したいし、ボブはトークン化GBPをトークン化AUDと交換したいし、そして、キャロルはトークン化CADをトークン化AUDと交換したい。3人の当事者のあらゆる2人の間に直接的な一致は存在しないが、組み合わされて、インビテーションのそれぞれを満足することができる。-アリスのトークン化CADがキャロルのところへ行き、ボブのトークン化GBPがアリスのところへ行き、そして、キャロルのトークン化AUDがボブのところへ行くことができる。
図11Aから
図11Cは、アリス、ボブ、およびキャロルの間におけるトランザクションのための例示的なトランザクションテーブルを示している。
【0099】
図11Aを最初に参照すると、アリスからキャロルへの支払いについてトランザクションテーブルが示されている。アリスは1500ドルのトークン化CADを有しており、そして、ボブからのトークン化GBP500を必要としている。トランザクションは、トークン化CAD1000をアリスからキャロルに対して支払い、そして、アリスは彼女自身に残りのトークン化CAD500(1500-1000)を支払う。標準BTC(regular BTC)を使用して、アリスは、サービスプロバイダの料金(
図11Aに示すような定額料金であってよく、または、移転の価値に応じた料金であってよい)を支払うことができ、そして、お釣りからマイナ(miner)のための1000サトシを差し引いたものを彼女自身に支払う。
【0100】
図11Bをこれから参照すると、ボブからアリスへのトークン化GBPの支払いについてトランザクションテーブルが示されている。ボブはトークン化GBP750を有しており、そして、キャロルからのトークン化AUDを必要としている。トランザクションは、トークン化GBP500をボブからアリスに対して支払い、そして、ボブは彼自身に残りのトークン化GBP250(750-500)を支払う。標準BTCを使用して、ボブは、サービスプロバイダの料金(
図11Bに示すような定額料金であってよく、または、移転の価値に応じた料金であってよい)を支払うことができ、そして、お釣りからマイナのための1000サトシを差し引いたものを彼自身に支払う。
【0101】
図11Cをこれから参照すると、キャロルからボブへのトークン化AUDの支払いについてトランザクションテーブルが示されている。キャロルはトークン化AUD1500を有しており、そして、アリスからのトークン化CADを必要としている。トランザクションは、トークン化AUD1000をキャロルからボブに対して支払い、そして、キャロルは彼女自身に残りのトークン化AUD500(1500-1000)を支払う。標準BTCを使用して、キャロルは、サービスプロバイダの料金(
図11Cに示すような定額料金であってよく、または、移転の価値に応じた料金であってよい)を支払うことができ、そして、お釣りからマイナのための1000サトシを差し引いたものを彼自身に支払う。交換が2つまたはそれ以上の別個のトランザクション(例えば、1:アリスがボブに対して移転し、そして、2:ボブがアリスに対して移転する)から成る場合には、全ての当事者が自身の資格(entitlement)を受け取るか又は誰も受け取らないかのいずれかであることを保証するように、トランザクションがリンクされてよいことが正しく理解されよう。これは、以下の条件を満足することによって達成することができる(2人の当事者、AとB、の例を使用するが、3人またはそれ以上の当事者まで容易に拡張可能である):AからBへ移転するトランザクション出力が存在し、かつ、Bによって費やすことができるのは、同時に、BからAへ移転するトランザクション出力も存在し、かつ、Aによって費やすことができる場合だけであり、逆もまた同様である。当事者AとBは、アリスとボブだけでなく、各トランザクションのために必要とされる一式の署名者を参照する(例えば、トークン発行者、エスクロー、等を含む)ことに留意する。
【0102】
ユーザからの選択の受け取り
【0103】
図6を参照して上述した例示的な交換の変形においては、オーダーのマッチングのためにP2P DHTを解析する(parsing)サービスプロバイダの代わりに、現在のユーザ自身が現在のインビテーションを見るためにP2P DHTをスキャンまたはブラウズ(browse)することができる。ブラウジングは、交換サービスプロバイダ104といった、第三者によって促進されてよい。第三者は、インターフェイスを提供することができ、ユーザは、興味を持ち得るインビテーションについて、その中で閲覧、スキャン、および検索することができる。
【0104】
ユーザは、次いで、P2P DHT上で彼ら自身の将来のインビテーション(prospective invitation)を入力するプロセスをスキップすることができるが、代わりに、彼らが関心を持つオーダーと一致又はほぼ一致するインビテーションを作成することを選択することができる。
【0105】
例えば、先の実施例に続いて、しかし、対照的に、ボブは、ブラウジングまたは検索インターフェイスを介してP2P DHT上でアリスのインビテーションを見つけることができる。その場合に、ボブは、アリスのものと一致するように自分のインビテーションを入力することができる。ボブは、これをいくつかの方法のうちの1つで行うことができる。一つの実施例においては、オーダーを「受諾(”Accept”)」するためのアリスのオーダーを表示する機能がインターフェイス上に存在してよい。ボブが、アリスがインビテーションのために使用したのと同じ交換サービスプロバイダ104のクライアントである場合には、彼らがボブのeウォレット(eWallet)(公開鍵、等)に既にアクセスしていることがあり、そして、従って、そうした情報に基づいて一致するオーダー(matching order)を作成することができる。それに応じて、交換サービスプロバイダ110は、インビテーションのマッチングのための引き換えスクリプトを生成し、これを署名のためにボブに対して送付し、署名された引き換えスクリプトを受け取り、そして、トランザクションのために備えてP2P DL上にオーダーを入力することができる。ボブがアリスの交換サービスプロバイダ104のクライアントでない場合には、ボブが必要とされる情報および承認(authorisation)を入力できるようにする機能が提供されてよく、次いで、サービスプロバイダがボブの一致するオーダーを作成できるようにする。
図7と
図8を参照して上述したのと同じプロセスが、次いで、後に続く。
【0106】
上記の例は、BTCをトークン化CADと交換することを説明している。しかしながら、システム100は、あらゆるタイプのトークンについて働くことが正しく理解されよう。例えば、あらゆるタイプの(すなわち、通貨契約だけでなく、任意の契約を表わしている)トークンのためのBTC、あらゆる他のタイプのトークンのための任意のタイプのトークン、商品/サービスのためのBTC、商品/サービスのためのトークン、または、商品/サービスのための商品/サービス、を含んでいる。追加的および理論的に、上記のプロセスは、BTCに対するBTCの交換へ変更することができるが、そうした交換は現実の意味(real meaning)を有さない。
【0107】
商品/サービスの交換
【0108】
商品/サービスが交換に関与する場合には、上述のトランザクションプロセスに係るわずかな変更が必要とされる。
【0109】
そうした場合に、(商品及び/又はサービスの)トランザクションは、交換に関わる商品またはサービスの記述(description)を含んでいる。契約書または権利証書によって表される、トークンとは異なり、記述は、契約を構成するものではない。
【0110】
記述は、アイテムを一意的に識別しても、しなくてもよい。例えば、物理的アイテムがトランザクションに関与する場合、その記述は、その物理的アイテムに関連付けられた一意の識別子を明示的に参照することができる。追加的または代替的に、記述メタデータ(description metadata)は、以下のうち1つまたはそれ以上を含んでよい。a)提供されるか、または、要求される所望のアイテムの一般的な記述、例えば、「食器洗い機、< 3 yo(”dishwasher,<3 yo”)」、b)オークションウェブサイトにおける販売について特定のアイテムに対する参照、例えば、「オークションサイト上で売りに出された中古品」、c)アイテムタイプの任意の数、例えば、販売のための15枚のTシャツを、単品として又は15枚までの任意の数量として購買することができると広告すること、d)現金(cash)への参照、任意の特定の通貨におけるもの、e)労働および支払いに係る記述であり、1回の作業完了のたび、もしくは、繰返し又は時間毎の支払いを伴う通常の芝刈り(繰返し作業)のためのもの、または、f)1つまたはそれ以上のキーワード、例えば「食器洗い機」。
【0111】
サービスに関して、サービスはトークンと同様にコントラクトによって裏付けられる。それとして、サービスはシェア(shares)へと分割可能であり、そして、分割不可能なサービスは1回限りの仕事(one-time job)、すなわち、分割可能であるが単一シェア(1シェア)を有するもの、であるとみなすことができる。サービスが分割不可能である場合に、サービスはインビテーションおよび交換の目的のトークンとして取り扱われてよい。アイテムがトークンによって裏付けされている場合に、アイテムは、インビテーションおよび交換の両方の目的のトークンとして取り扱われ、そして、不換通貨(fiat currency)のためのトークンといった、他のトークンと同じ方法で交換される。
【0112】
一意の識別子と関連付けられた物理的アイテムを含むトランザクションの一つの実施が、これから説明される。先の実施例と同様に、この例において、アリスは、P2P DLおよびP2P DHT上にインビテーションを置くために彼女の交換プロバイダを使用する。このインビテーションは、彼女が一意の識別子XYZ123を有する物理的アイテム、ラファエルの傑作「十字架降架(”Deposition of Christ”)」に関連し得るもの、を2500BTC未満(no more than 2500BTC)で購入するという記述を含んでいる。同様に、ボブは、彼が2400BTC以上(no less than 2400BTC)でアイテムXYZ123を販売するというインビテーションのマッチング(matching invitation)を置くことができる。アリスは、P2P DLを閲覧して、アイテム番号XYZ123を持つアイテムを見つけ、そして、この情報に基づいて一致するオーダー(matching order)を置くことができる。もしくは、代替的に、アリスは、その後に第三者、例えば交換サービスプロバイダ、によってマッチングされる一般的なインビテーションを置くことができ、そして、続いて、カタログアイテム番号と記述を含む新たなインビテーションがボブのオーダーと一致するように作成される。
【0113】
一意のIDを含むトランザクションについて、そうしたIDは、特定の交換サービスプロバイダに対してだけでなく、P2P DL全体にわたっても、永久に一意でなければならないことが正しく理解されよう。従って、一意の識別子がデバイスに対して全くの一意ではない場合(例えば、デバイスのシリアル番号)には、交換サービスプロバイダは、そのデバイスについての一意の識別子を生成することができる。各識別子がP2P DL全体に対して一意であることを保証するために、各交換サービスプロバイダは、例えば、彼らが使用する番号の前につける彼ら独自の一意のコードを有することができ、P2P DL上で広告されている製品を一意的に識別する。
【0114】
アリスとボブとの間で一旦合意に至ると、
図7から
図10を参照して上述した例示的なトランザクションプロセスに従ってトランザクションが行われる。
【0115】
物理的アイテムを含むトランザクションのさらなる実施例が、これから説明される。しかしながら、この例において、アイテムは、それに関連する一意の識別子を有していない。
【0116】
インビテーションが複数の類似アイテムを販売するためのオファーを含む場合には、メタデータは、任意の1つのトランザクションを用いて購入することができるアイテムの最大および最小の量を記述するように要求され得る。例えば、アリスは、彼女が、トランザクション毎に少なくとも5枚、Dead Lizard 2015コンサートツアーTシャツを、それぞれ0.025BTCで15枚まで売るということを暗示する(inferring)インビテーションを置くことができる。この場合に、メタデータ値は、最小レート(0.025BTC/アイテム)、最大量(Offer-QTY-max(15))、および最小量(Offer-QTY-min(5))を含んでよい。以下の表は、インビテーションに関連付けられたメタデータをまとめている。
【表3】
【0117】
支払トランザクションにおける実際のBTC値が、次いで、交換サービスプロバイダによって計算される。このトランザクションは、実行して交換するためのインビテーションを単に表しているだけなので、トランザクションの実際の値は、例えば、ダスト(dust)ほどに小さくてよい(546サトシ)。代替的に、以下で説明するように、値は、インビテーションを保証するためにサービスプロバイダによって必要とされる名目額(nominal amount)であってよい(例えば、そのためアリスは引出しをしないように動機付けられる)。
【0118】
さらなる実施例においては、硬貨(現金)の形態における商品を交換することができる。例えば、アリスは、150BTCの最大購入で、カナダドル(トークンではなく硬貨(hard currency))についてビットコインを販売するインビテーションを置くことができる。インビテーションは、追加的に、彼女の店舗の住所(371 Whimsy Avenue、Brentford)だけで交換が行われなければならないというロケーション条件を含んでよい。インビテーションのマッチングを置いた後で、トランザクションを確定するために、ボブは、次いで、ビットコイントランザクションにおける支払いの代わりに、現金を引き渡すためにアリスの店に持ってきてよい。物理的な移転のためにボブとアリスがひとたび彼女の店で会うと、次いで、ボブに対するビットコインの実際のデジタルトランザクションおよびアリスに対する硬貨の移転のデジタル記録が行われてよい。
【0119】
他の商品/サービスと交換される商品/サービスを含むトランザクションの場合には、P2P DL上のトランザクションは、記録としてのみ存在し、当事者間のいかなる価値も交換するものではないことが正しく理解されよう(サービスプロバイダ等に対するあらゆる料金とは別に)。ユーザは、システムを使用し、そして、交換が永久に記録されるように、P2P DL上にトランザクションを入力するための名目上のサービス料(nominal service fee)を支払うように選択することができる。
【0120】
オリジナルのインビテーショントランザクションは、価値の移転またはイベントの記録としてではなく、インビテーションとしてのみ動作すること、に留意する。交換が物理的アイテムだけを含むように、商品間の交換(goods-for-goods exchange)が行われる場合には、最終的な交換がP2P DL上に記録される必要はない。P2P DLは、最終的な交換においていかなるトランザクションも完了することを要求されないからである。それにもかかわらず、物理的アイテムの交換に対する当事者がP2P DL上に交換を記録することを望む場合には、そうするためのマイナに対する料金を条件として、彼らは、インビテーショントランザクションを互いにそれぞれを費やすことができる。当事者がP2P DL上に最終的な交換を記録することを望まない場合には、インビテーショントランザクションを彼ら自身に戻すように費やすか、または、P2P DL上に未使用のまま残しておくことができる。
【0121】
商品に対するBTC、または商品に対するトークンを含む交換の場合には、BTCまたはトークンの値を移転するために、少なくとも1つのトランザクションがP2P DL上で費やされる。この場合に、商品を上乗せする(offering up)インビテーショントランザクションが、費やされてもされなくてもよい。そのインビテーショントランザクションを費やすことによって交換(商品)の価値は移転されないからである。しかしながら、再度、当事者は、移転の恒久的な記録(例えば、販売の領収書)を提供するために、それにもかかわらずトランザクションを費やすように決定することができる。
【0122】
上記のトランザクションにおいて費やされた金額は、特にアリスのオファーがビットコインまたはトークンではなく商品/サービスである場合に、いくつかの事例においては提供される金額を表わさないことがある。代わりに、サービスプロバイダは、商品の価値を表す金額のアリスによる「デポジット(”deposit”)」を要求するか、または、別の方法でアリスがオファーを「保証する(”guarantee”)」ことができる場合に名目上の金額だけを必要求するか、もしくは、(iii)サービスプロバイダ自身がアリスのためにビットコインを提供し(彼女はいくらも持っていないかもしれない)、そして、クライアントに対して料金を請求するあらゆる手段によってこの調達コスト(funding cost)をカバーすることができるだろう。
【0123】
上述の実施形態においては、ユーザのインビテーションがP2P DHTにおいて公開される。いくつかの実施形態においては、しかしながら、ユーザのインビテーション(例えば、スクリプトおよびスクリプトハッシュ)がウェブサイトにおいて公開され、別のユーザに対して直接的に送付されてよい。
【0124】
いくつかの実施形態において、ユーザのインビテーションは、サービスプロバイダによってローカルに保管されてよい。例えば、サービスプロバイダは、特定のユーザだけがユーザのインビテーションの詳細にアクセスすることができるプライベートオークションをホストすることができる。
【0125】
当業者であれば、本開示の広範で一般的な範囲から逸脱することなく、上述の実施形態に対して多くの変形及び/又は変更がなされ得ることが理解されよう。本実施形態は、従って、全ての点で例示的であり、かつ、限定的でないものとしてみなされるべきである。
【0126】
ステップ、特徴、インテジャ、混合物及び/又は化合物は、個別に又は集合的に、ここにおいて開示され、または、本出願の明細書において示されており、そして、上記のステップまたは特徴の2つまたはそれ以上のうち任意および全ての組み合わせもそうである。
【符号の説明】
【0127】
100 P2P交換システム
102 ネットワーク
200、300 フローチャート
400 プロセス
600 トランザクションフローの概略図