(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-29
(45)【発行日】2024-02-06
(54)【発明の名称】デジタルリソースへのアクセスを移転するための、コンピュータにより実施されるシステム及び方法
(51)【国際特許分類】
H04L 9/32 20060101AFI20240130BHJP
G06F 21/62 20130101ALI20240130BHJP
G06Q 20/06 20120101ALI20240130BHJP
H04L 9/14 20060101ALI20240130BHJP
【FI】
H04L9/32
G06F21/62 318
G06Q20/06 300
H04L9/14
(21)【出願番号】P 2021513383
(86)(22)【出願日】2019-09-19
(86)【国際出願番号】 IB2019057917
(87)【国際公開番号】W WO2020065460
(87)【国際公開日】2020-04-02
【審査請求日】2022-08-22
(32)【優先日】2018-09-28
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】318001991
【氏名又は名称】エヌチェーン ライセンシング アーゲー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ヴォーン,オーウェン
【審査官】中里 裕正
(56)【参考文献】
【文献】国際公開第2018/020377(WO,A1)
【文献】国際公開第2018/020375(WO,A1)
【文献】techmedia-think,Scriptless Scriptで実現するAtomic Swap,[online] online (2017-11-11) url=https://techmedia-think.hatenablog.com/entry/2017/11/11/134311,2017年11月11日,pp.1-5,<URL:https://techmedia-think.hatenablog.com/entry/2017/11/11/13431>,[2023年8月21日検索]
【文献】安土茂亨,Scriptless Scriptの仕組みとポテンシャル,[online],2018年07月21日,pp.1-18,<URL:https://speakerdeck.com/azuchi/scriptless-scriptfalseshi-zu-mitopotensiyaru>,[2023年8月21日検索]
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 21/62
G06Q 20/06
H04L 9/14
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
コンピュータにより実施される方法であって、前記方法は、
第1ブロックチェーントランザクションに少なくともデータアイテム
に対応する署名を提供することにより第1リソースへのアクセスを可能にするために償還可能な、前記第1ブロックチェーントランザクションを提供するステップであって、前記データアイテムは、開示可能な値及び秘密値の両方の制御部によってのみ決定可能であ
り、前記秘密値は前記署名を生成するために使用される一過性の鍵である、ステップと、
制御部が前記データアイテムを決定できるように、前記開示可能な値を前記秘密値の制御部に提供するステップと、
を含む方法。
【請求項2】
前記データアイテムは、第1暗号鍵ペアのうちの第1秘密鍵を含む、請求項1に記載の方法。
【請求項3】
前記第1ブロックチェーントランザクションは、更に、償還可能になるために、第2暗号鍵ペアのうちの第2秘密鍵
に対応する署名を提供する必要があり、前記第2暗号鍵ペアは、前記第1リソースの意図される受信側に関連付けられる、請求項2に記載の方法。
【請求項4】
前記
データアイテムは、決定性暗号鍵ペアのうちの決定性秘密鍵
を含み、前記ペアのうちの決定性公開鍵は、
第1暗号鍵ペアの第1公開鍵及び
第2暗号鍵ペアの第2公開鍵を用いて導出される、請求項
1に記載の方法。
【請求項5】
前記開示可能な値を前記制御部に提供する前記ステップは、
少なくとも前記データアイテム
に対応する署名を第2ブロックチェーントランザクションに提供することにより第2リソースへのアクセスを可能にするために償還可能な、前記第2ブロックチェーントランザクションを提供するステップであって、前記第2ブロックチェーントランザクションの償還は、前記開示可能な値を前記制御部に提供させる、ステップと、
前記第2ブロックチェーントランザクションを償還するステップと、
を含む、請求項1~4のいずれか一項に記載の方法。
【請求項6】
請求項1~5のいずれかのブロックチェーントランザクションの償還は、前記データアイテムに対応する暗号署名を計算し、前記トランザクション内に格納された値を前記計算した署名の少なくとも一部と比較することを含む、請求項1~5のいずれか一項に記載の方法。
【請求項7】
システムであって、
プロセッサと、
前記プロセッサによる実行の結果として、前記システムに請求項1~
6のいずれか一項に記載の方法を実行させる実行可能命令を含むメモリと、
を含むシステム。
【請求項8】
実行可能命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、コンピュータシステムのプロセッサにより実行された結果として、前記コンピュータシステムに、請求項1~
6のいずれか一項に記載の方法を少なくとも実行させる、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、リソースへのアクセス又はリソースの制御のセキュアな移転に関し、特に、1つ以上のブロックチェーントランザクションを用いて送信される暗号鍵を介する、このようなアクセス又は制御のアトミックな(atomic)移転に関する。本開示は、限定ではなく、Bitcoinプロトコルの任意の変形の中で使用することに特に適する。
【背景技術】
【0002】
本願明細書では、私たちは、全ての形式の電子的な、コンピュータに基づく、分散型台帳を包含するために用語「ブロックチェーン」を使用する。これらは、総意に基づくブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、並びにこれらの変形を含む。他のブロックチェーン実装が提案され開発されているが、ブロックチェーン技術の最も広く知られているアプリケーションは、Bitcoin台帳である。Bitcoinは、ここでは、便宜上及び説明の目的で参照されることがあるが、本開示はBitcoinブロックチェーンと共に使用することに限定されず、代替のブロックチェーン実装及びプロトコルが本開示の範囲に包含されることに留意すべきである。用語「ユーザ」は、ここでは、人間またはプロセッサに基づくリソースを表してよい。
【0003】
ブロックチェーンは、コンピュータに基づく非集中型の分散型システムとして実装されるピアツーピアの電子台帳であり、ブロックにより構成され、ブロックはまたトランザクションにより構成される。各トランザクションは、ブロックチェーンシステムの中の参加者間でデジタルアセットの制御の移転を符号化するデータ構造であり、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、これらのブロックは一緒に繋げられて、起源以来ブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能な記録を生成する。トランザクションは、スクリプトとして知られている小さなプログラムを含む。スクリプトは、それらのインプット及びアウトプットを埋め込まれ、トランザクションのアウトプットがどのように及び誰によりアクセス可能であるかを指定する。Bitcoinプラットフォームでは、これらのスクリプトはスタックに基づくスクリプト言語を用いて記述される。
【0004】
トランザクションがブロックチェーンに書き込まれるためには、検証されなければならない。ネットワークノード(マイナー)は、無効なトランザクションがネットワークから拒否され、各トランザクションが有効であることを保証するために作業を実行する。ノードにインストールされたソフトウェアクライアントは、未使用トランザクション(unspent transaction, UTXO)のロック及びアンロックスクリプトを実行することにより、UTXOに対してこの検証作業を実行する。ロック及びアンロックスクリプトの実行が真(TRUE)と評価する場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。したがって、トランザクションがブロックチェーンに書き込まれるためには、(i)トランザクションを受信した第1ノードにより検証され、トランザクションが有効な場合には、ノードが該トランザクションをネットワーク内の他のノードに中継する、(ii)マイナーにより構築された新しいブロックに追加される、(iii)マイニングされる、つまり過去のトランザクションのパブリック台帳に追加される、ことが必要である。
【0005】
ブロックチェーン技術は、暗号通貨の実装の使用のために最も広く知られているが、デジタル事業家が、Bitcoinの基づく暗号セキュリティシステム及び新しいシステムを実装するためにブロックチェーンに格納できるデータの両方の使用を開発し始めている。ブロックチェーンが、暗号通貨の分野に限定されない自動化タスク及びプロセスのために使用できれば、非常に有利になる。このようなソリューションは、ブロックチェーンの利益(例えば、永久性、イベントの記録の耐タンパ性、分散型処理、等)を利用しながら、それらの用途をより多様化し得る。
【0006】
現在の研究の一分野は、「スマートコントラクト」の実装のためのブロックチェーンに基づくコンピュータプログラムの使用である。これらは、機械可読コントラクト又は合意の条項の実行を自動化するよう設計されたコンピュータプログラムである。自然言語で記述される伝統的なコントラクトと異なり、スマートコントラクトは、結果を生成するためにインプットを処理できるルールを含む機械実行可能プログラムであり、これは次に該結果に依存して動作を実行させる。
【0007】
別の領域のロックチェーンに関連する関心事項は、ブロックチェーンを介して現実世界のエンティティを表現し及び移転するための、「トークン」(又は「カラードコイン(coloured coin)」)の使用である。潜在的に極秘の又は秘密のアイテムは、識別可能な意味又は値を有しないトークンにより表すことができる。したがって、トークンは、現実世界のアイテムがブロックチェーンから参照されることを可能にする識別子として機能する。
【0008】
アトミックスワップ(atomic swap)の概念は、暗号通貨のコミュニティで既に議論されている。パーティ間の交換は、全参加者が彼らの所望のリソース(例えば、暗号通貨トークン又はコイン)を受信するか又は何もしないという意味で、原子的(atomic)である。記述の時点で、Wikipediaは、アトミックスワップを「信頼される第三者を必要とすることなく、ある暗号通貨の別の暗号通貨への交換を可能にする、暗号通貨において提案された機能」として記述している。伝統的な暗号通貨では、あるパーティが通貨を受信することなく通貨を送信するのを防ぐために、暗号通貨のスワップを実行するために、暗号通貨交換所のような信頼される第三者が必要である。アトミックスワップシステムは、ハッシュ時間ロックされたスマートコントラクトを使用する。その結果、パーティは、指定された時間内にスワップされるべき通貨を供給しなければならず、さもなければ、トランザクションは取り消されるだろう。これは、スワップが行われるか、又は通貨がスワップされないという点でアトミック性を保存する。https://en.wikipedia.org/wiki/Atomic_swap。
【0009】
従って、多くのセキュリティ違反又は「ハッキング」がMount Goxのような暗号通貨交換所に関して実行されているが、信頼される第三者の必要を除去することが、搾取及び悪意ある介入のリスクを除去するので、アトミックスワップは、ブロックチェーン上で行われる移転に関してセキュリティの向上を提供する。
【発明の概要】
【0010】
従って、ブロックチェーン技術により提供される不変性及びトラストレス性を有する、リソースをアトミックに交換する、暗号法によるリソース交換方法を提供することが望ましい。これは、ブロックチェーンの実施されるネットワーク上で行われる交換に関してセキュリティを向上する。
【0011】
このような改良されたソリューションがここで考案される。
【0012】
したがって、本開示によると、添付の請求項において定められる方法が提供される。
【0013】
本開示により、コンピュータにより実施される方法が提供され得る。当該方法は、リソースの制御を移転する方法として記載され得る。当該方法は、ブロックチェーンネットワークに渡り又はそれを介してリソースの移転を制御する。追加で又は代替として、当該方法は、セキュアな移転方法として記載され得る。追加又は代替として、当該方法は、いつ及び/又は誰により被制御リソースがアクセス可能であるかを制御するセキュリティ方法として記述され得る。リソースは、暗号通貨の一部又はトークン化されたアイテム/アセット/エンティティのような、ブロックチェーンに格納されたリソース又はブロックチェーンからの参照であってよい。
【0014】
前記方法は、
第1ブロックチェーントランザクションに少なくともデータアイテムを提供することにより第1リソースへのアクセスを可能にするために償還可能な、前記第1ブロックチェーントランザクションを提供するステップであって、前記データアイテムは、開示可能な値及び秘密値の両方の制御部によってのみ決定可能である、ステップと、
制御部が前記データアイテムを決定できるように、前記開示可能な値を前記秘密値の制御部に提供するステップと、
を含み得る。本開示の文脈では、「アクセスを可能にする」は、限定ではないが、暗号通貨の額のようなリソースの制御を移転すること、又は文書、オンラインリソース、若しくはセキュリティアクセスコードへのアクセスを可能にすることを含む。
【0015】
本方法は、1つ以上のブロックチェーンのプロトコルが1つ以上の共通ハッシュ関数を共有することを要求することなく、これらのブロックチェーンを用いてリソースへのアクセス又はリソースの制御をセキュアに転送させることを可能にする。それにより、移転が実施できるブロックチェーンの数を増大させるという利点を提供する。従って、移転の汎用性を向上しながら、このような制御又はアクセスの移転のセキュリティ及び効率が保存される。本方法は、互換性のないネットワーク/ブロックチェーンプロトコルに渡る移転も可能にする。
【0016】
前記データアイテムは、第1暗号鍵ペアのうちの第1秘密鍵を含んでよい。
【0017】
前記第1ブロックチェーントランザクションは、更に、償還可能になるために、第2暗号鍵ペアのうちの第2秘密鍵を提供する必要があってよく、前記第2暗号鍵ペアは、前記第1リソースの意図される受信側に関連付けられる。
【0018】
これは、第1秘密鍵の望ましくない知識を有する任意のアクターが第1トランザクションを償還することを防ぐことにより、前記方法のセキュリティを向上するという利点を提供する。
【0019】
前記第1秘密鍵は、決定性暗号鍵ペアのうちの決定性秘密鍵であってよく、前記ペアのうちの決定性公開鍵は、前記第1暗号鍵ペアの第1公開鍵及び前記第2暗号鍵ペアの第2公開鍵を用いて導出される。
【0020】
これは、第1暗号鍵の望ましくない開示が第1トランザクションを傷つけてしまわないように、第1トランザクションを償還する意図された受信者の能力を維持しながら、あるレベルの難読化を提供することにより、本方法のセキュリティを更に向上する。
【0021】
前記開示可能な値を前記制御部に提供する前記ステップは、
少なくとも前記データアイテムを第2ブロックチェーントランザクションに提供することにより第2リソースへのアクセスを可能にするために償還可能な、前記第2ブロックチェーントランザクションを提供するステップであって、前記第2ブロックチェーントランザクションの償還は、前記開示可能な値を前記制御部に提供させる、ステップと、
前記第2ブロックチェーントランザクションを償還するステップと、を含んでよい。
【0022】
これは、ハッシュ関数の使用を要求することなく、リソースアクセス又は制御のアトミックスワップが実行されることを可能にする。それにより、共通のハッシュ関数を共有するブロックチェーンプロトコルに対する制限を有しないで、実行されるべきセキュアな同時デジタル交換のメカニズムを提供する。
【0023】
上述のブロックチェーントランザクションの償還は、前記データアイテムに対応する暗号署名を計算し、前記トランザクション内に格納された値を前記計算した署名の少なくとも一部と比較することを含んでよい。
【0024】
これは、暗号アルゴリズムの重要な部分をオフブロックで実行可能にする。それにより、ブロックチェーンから暗号セキュリティのレベルを維持するための必要なタスクを提供し、第1トランザクションのサイズを縮小する(従って、記憶要件を低減する)及び方法の効率を向上するという関連する利益を提供する。
【0025】
秘密値は、デジタル署名処理において使用される一過性の鍵であってよい。
【0026】
本開示は、プロセッサと、プロセッサによる実行の結果として、システムに本願明細書に記載のコンピュータにより実施される方法のいずれかの実施形態を実行させる実行可能命令を含むメモリと、を含むシステムも提供する。
【0027】
本開示は、実行可能命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、コンピュータシステムのプロセッサにより実行された結果として、少なくとも、前記コンピュータシステムに、本願明細書に記載のコンピュータにより実施される方法を実行させる、非一時的コンピュータ可読記憶媒体も提供する。
【0028】
本開示のこれらの及び他の態様は、本願明細書に記載の実施形態から明らかであり及びそれらを参照して教示される。本開示の実施形態は、単なる例を用いて及び添付の図面を参照して以下に説明される。
【図面の簡単な説明】
【0029】
【
図1】従来技術の識別エンコーディングルール(Distinguished Encoding Rules)の表を示す。
【
図2】署名の一部を抽出するためのスクリプトを含む表を示す。
【
図3】本開示の実施形態のステップを含むフローチャートを示す。
【
図4】本開示の実施形態のステップを含むフローチャートを示す。
【
図5】本開示の実施形態のステップを含むフローチャートを示す。
【
図6】種々の実施形態が実装できるコンピューティング環境を示す概略図である。
【発明を実施するための形態】
【0030】
標準的なハッシュ関数、例えばSHA-256は、データ構造Xをとり、256ビットの数値H(X)∈Z256を出力する。これは、一方向決定的関数である。
X→H(X)
暗号通貨の文脈では、ハッシュ関数はハッシュパズル(hash puzzle)を生成するために使用できる。これは、プレイメージ(pre-image)Xが関数の入力に提供された場合、及びその場合にのみ真(TRUE)である、関数<Solve H(X)>である。つまり、
<X><Solve H(X)>=TURE
SHA-256では、このような関数は以下によりビットコインスクリプトの中で与えられる。
<Solve H(X)>=OP_HASH256<H(X)>OP_EQUALVERIFY
ハッシュパズルは、トランザクションが償還される場合に、プレイメージXがRedeemスクリプトインプットの中で開示され、従ってブロックチェーン上で可視でなければならないことを保証するために、ブロックチェーントランザクションのRedeemスクリプトのようなスクリプトの中で使用されてよい。
【0031】
[表1]
【0032】
【表1】
ECDSAプロトコルの下では、秘密鍵S
1及びメッセージハッシュH(m)の署名は、以下の方法で生成される(メッセージハッシュは誰にでも知られているが、秘密鍵はメッセージに署名する人物にだけ知られていることに留意する)。
【0033】
第1のステップは、一過性の鍵(ephemeral key)として知られる乱数k∈Z*
nを生成することである。この値から、rが導出される。これは、生成元(generator point)により乗算された一過性の鍵のx座標である。
r=Rx, (Rx,Ry)=k・G
値rは、署名の半分を形成する。もう半分sは、次式により定義される。
s=k-1(H(m)+S1*r) mod n
組合せ(r,s)=Sig P1は、ECDSA署名である。
【0034】
ECDSAの1つの重要な特徴は、一過性の鍵kが分かれば、秘密鍵が以下のように計算できることである。
S1=r-1(s*k-H(m)) mod n
署名(r,s)のデータ構造は、何らかの追加符号化データと連結された及びsの整数値を含む。
【0035】
識別エンコーディングルール(Distinguished Encoding Rules (DER))[S. Blake-Wilson, D. Brown, P. Lambert, Use of Elliptic Curve Cryptography (ECC) Algorithms in Cryptographic Message Syntax (CMS), Network Working Group (2002); https://tools.ietf.org/html/rfc3278]によると、ECDSA署名(r,s)のデータ構造の特定の符号化は、
図1に示す表により与えられる(ダミーr及びsデータ値が使用されることに留意する)。
【0036】
図1を参照すると、sighashタイプを表す最後のバイトは、標準的なDER符号化ではないが、ビットコイン署名符号化で使用される。署名の4番目のバイトは、長さrを表す。これは、rのバイナリ表現の先頭ビットが0である場合に32バイトであり、先頭ビットが1である場合に33バイトである。この場合、余分なゼロ値バイトがバイト列に追加される。署名の第5バイト~第36又は第37バイトは、値又はr自体を表す。
【0037】
秘密鍵パズルを生成する方法を以下に説明する。
【0038】
秘密鍵パズルは、所与の公開鍵P1の秘密鍵S1を計算可能にするインプットが提供された場合にTRUEと評価する、Redeemスクリプト内の関数である。
【0039】
この形式のパズルは、楕円曲線暗号法(Elliptic Curve Cryptography (ECC))の公開/秘密鍵ペアの代数の特性が、リソースアクセス及び制御の実装で利用されることを可能にする。2つの公開鍵の和が計算されれば、対応する秘密鍵は、個々の秘密鍵の和になる。
P1+P2=(S1+S2)・G
これをハッシュ関数と比べると、2つの値のハッシュの和が計算される場合、対応するプレイメージが通常は個々のプレイメージの和ではない。
H(X1+X2)≠H(X1)+H(X2)
個々のプレイメージのハッシュ値の和がプレイメージの和のハッシュ値に等しいハッシュ関数が存在するが(ハーモニックハッシュ関数として知られる)、これらは通常実装するのに実用できではない。更に、公開/秘密鍵ペアは、データの暗号化/解読、及び楕円曲線デジタル署名アルゴリズム(Elliptic Curve Digital Signature Algorithm (ECDSA))を用いてメッセージの署名を可能にする。
【0040】
アトミックスワップを実施する際の秘密鍵パズルの例を以下に説明する。これらの例は、ここに開示する方法のユーザが、共通のハッシュ関数を共有しないブロックチェーン上のチェーン間スワップを実行することを可能にする。例は、公開/秘密鍵ペアにより制御されるリソースの制御またはリソースへのアクセスの移転を含む。
【0041】
本願を通じて、秘密鍵パズルは、ECC鍵ペア及びECDSAプロトコルの観点で定式化される。しかしながら、本開示はこれらの規格に限定されない。例えば、方法は、シャノア(Schnorr)署名、DSAプロトコルによるRSA鍵ペアにも適用可能である。
【0042】
上述のように、秘密鍵パズル(private key puzzle)は、<Solve P1>であり、対応する秘密鍵<S1>に作用する場合にTRUEと評価する。つまり:
<S1><Solve P1>=TURE
このような関数は現在存在しない。<Solve P1>をトランザクションRedeemスクリプトに含めることは、トランザクションを償還するために、Redeemスクリプトに提供されるインプットが対応する秘密鍵S1を含まなければならないことを保証する。これは、S1がブロックチェーン上で公に露出されることを意味する。しかしながら、少なくとも、RedeemスクリプトがBitcoinブロックチェーン上のブロックチェーントランザクションのRedeemスクリプトである場合、このような関数は、トランザクションが構成され使用されることを防ぐ法外に多数のオペレータを必要とし得る。この問題は、以下に詳述される。
【0043】
楕円曲線点乗算を実行する演算子OP_ECMULTが存在するとする。これは、楕円曲線上の点、例えば生成元Gが、正整数、例えばS1∈Z*
nにより乗算されることを意味する。つまり:
<S1><G>OP_ECMULT=<P1>
この場合、秘密鍵パズルは以下により与えられる。
【0044】
<Solve P1>=<S1><G>OP_ECMULT<P1>OP_EQUALVERIFY
しかしながら、現在、このような楕円曲線演算子はビットコインスクリプトの中に存在しない。
【0045】
2018年5月のビットコイン分岐(fork)で以前に廃止された幾つかのオペコード、例えばOP_MODを復元した後に、ビットコインスクリプトの中で楕円曲線乗算を実行するため、つまり他の演算子を用いてOP_ECMULTを構成するために必要な全ての演算子が技術的に揃った。しかしながら、これが可能ではない実用上の理由がある。
【0046】
このような関数は、最少で256回の反復を必要とし、各反復は複雑な演算の幾つかの行を含む。最も顕著なことは、各反復は、モジュラ逆数(modular inverse)を取るために、拡張ユークリッドアルゴリズムを適用する必要があることである。従って、この必要なスクリプトのサイズは、限界である201個のオペコード又は10KBを遙かに超えるだろう。
【0047】
これに対して、以下に提示される方法は、僅か数行のオペコードを使用するだけである。
【0048】
秘密鍵がオフブロックで計算されることを含む、秘密鍵パズルを生成し利用する方法の実施形態が以下に開示される。実施形態では、秘密鍵自体は、Redeemスクリプトのインプットで露出されず、むしろ、署名のコンポーネントが露出される。
【0049】
鍵の思想は、アンロックスクリプトが、特定の一過性の鍵に関連する署名を含むことを要求する。対応する秘密鍵は、次に、一過性の鍵を知る者なら誰によっても、署名から計算できる。
【0050】
ビットコインスクリプトを参照して記載される実施形態は、任意の非標準的なスクリプト演算を使用しない。
【0051】
関数<Solve P1,r0>が構成され、P1は公開鍵であり、r0は特定の一過性の鍵k0から導出される。この関数は、インプット<Sig P1,r0><P1>に対して作用する場合、及びその場合にのみ、TRUEと評価する。ここで、<Sig P1,r0>は特定の一過性の鍵k0を使用するP1の署名を示す。知られる一過性の鍵による署名が対応する秘密鍵を露出するので、一旦<Sig P1,r0>が公にされると、秘密鍵は、k0を知る者なら誰によっても計算され得る。
【0052】
図2を参照すると、署名のr部分を抽出するビットコインスクリプトが開示される。上述の署名のDER符号化に従い、r部分を抽出するために、第36又は第37バイトまで、第5バイトの署名を分割する必要がある。これは、第4バイトの値に依存する。これは、ビットコインスクリプトにより達成される:
OP_3 OP_SPRIT OP_NIP OP_1 OP_SPRIT SOP_SWAP OP_SPLIT OP_DROP
公開鍵P
1を検討する。上述のように、対応するアンロックスクリプトが一過性の鍵の制御部に秘密鍵P
1を決定するための十分な情報を露出するように、ロックスクリプトを生成する方法が開示される。
【0053】
方法は、k0と示される一過性の鍵を使用するP1の署名を、アンロックスクリプトに強制的に含めることを含む。S1と示される対応する秘密鍵は、一過性の鍵を知る者なら誰によっても、署名から計算できる。方法のユーザは、使用すべきk0の値に同意している。ユーザは、知られている適切なセキュアな方法を用いて、この値を互いに通信してよい。
【0054】
上述のように、ECDSA署名は、2つのコンポーネントから成る。つまり、Sig P1=(r,s)であり、rは一過性の鍵k0に直接関連し、それから計算可能である。
【0055】
一過性の鍵k0に対応するr=Rxの値は、次式を通じて(オフブロックで)計算される:
(Rx,Ry)=k0・G
一過性の鍵k0を使用するP1の署名をインプットとして要求するRedeemスクリプトが次に生成される。
【0056】
[表2]
【0057】
【表2】
ビットコインブロックチェーンと互換性のあるRedeemスクリプトの一例が以下に与えられる。
【0058】
[表3]
【0059】
【表3】
ここで鍵パズルのスクリプト<Solve P
1,r
0>=
[表4]
【0060】
【表4】
上述の表で、第1行は、公開鍵P
1をオルトスタック(alt-stack)に配置し、署名を複製する。第2行は、正しい一過性の鍵が使用されたことをチェックする。第3行は、オルトスタックから公開鍵を読み出し、署名が有効であることをチェックする。以上で使用したビットコインスクリプト、つまり、OP_DUP、OP_TOALTSTACK、及びOP_FROMALTSTACKは、厳格な要件ではなく、例えばインプット変数を複製し並べ替える場合には省略できる。
【0061】
ビットコインスクリプト内で秘密鍵パズルを定式化する代替的方法が存在することに留意する。特に、OP_SPLITの代わりに、OP_CATを使用できる。この場合、Redeemスクリプトへのインプットは、sコンポーネント(これは、予め決定された一過性の鍵k0及び秘密鍵S1を用いて計算され得る)のみを含む部分的な署名である。Redeemスクリプトは、次に、完全な署名(r,s)を生成するために、rの予め決定された値を、部分的な署名と連結し得る。この署名は、構成により、所望のrを有し得る。従って、標準的なchecksig演算が残される。
【0062】
アトミックスワップは、2つのトランザクションを参照する。つまり、1つはAliceからBobへ、1つはBobからAliceへである。アトミックスワップは、両方のトランザクションが償還可能であること、又はいずれも償還可能でないことを保証する。これが生じることを可能にするメカニズムは、Redeemスクリプト内のハッシュパズルである。アトミックスワップの利点は以下を含む。
・異なるブロックチェーン上の暗号通貨が交換され得る。例えば、AliceはBCHをBobへ送信し、BTCをBobから受信してよい。
・同じブロックチェーン上のカラードコイン又は他の形式のトークンが交換されてよい。
【0063】
現在、異なるブロックチェーンに渡るアトミックな交換は、両方のブロックチェーンがそれらのスクリプト言語において共通のハッシュ関数を共有することを要求することに留意する。本開示の利点は、ブロックチェーンがもはや共通のハッシュ関数を必要としないことである。それにより、多種多様なブロックチェーンに渡るリソースの制御又はリソースへのアクセスの移転を可能にする。さらに、デジタル署名に基づくアトミックな交換により、デジタル署名が対応する公開鍵と一貫性があるかを検証することが可能であり、それにより、交換のセキュリティを向上する。
【0064】
知られている方法は、本開示の実施形態の後の説明のコンテキストを与えるために以下に記載される。
【0065】
PA及びPBが、それぞれAlice及びBobのECDSA公開鍵を示すとする。
1. Aliceは、彼女自身にだけ知られているシークレットA0∈Z*
nを選択する(nは、楕円曲線生成元Gの次数である)。
2. Aliceは、Bobに、Redeemスクリプトによりロックされた資金を送金する。
<CheckSig PB><Solve H(A0)>
この段階で、BobはH(A0)のプレイメージを知らないので、彼は資金を使用できない。
3. Bobは、Aliceに、Redeemスクリプトによりロックされた資金を送金する。
<CheckSig PA><Solve H(A0)>
4. AliceはA0を知っているので、彼女は資金を使用できる。これは、AliceのRedeemスクリプトのインプットとして、ブロックチェーン上でA0を開示する。
【0066】
Bobは、A0が分かり、彼の資金を使用できる。
【0067】
前述の本開示の秘密鍵パズルは、共有されるハッシュ関数の要件を有しないで、1つ以上のブロックチェーンのユーザ間でアトミックスワップを実施するために使用されてよい。このようなアトミックスワップを実施する方法を以下に説明する。
【0068】
ハッシュパズルを使用する代わりに、アトミックスワップでは上述の秘密鍵パズルが使用される。これは、知られているアトミックスワップの全部の機能を保持しながら、以下を含む有利な汎用性を可能にする。
・ 共通のハッシュ関数を共有しないブロックチェーンに渡るアトミックスワップ。
・ 公開/秘密鍵ペアにより制御されるリソースの制御またはリソースへのアクセスのアトミックな交換。
【0069】
上述のように、ハッシュパズルではなく秘密鍵パズルを使用するとき、Aliceがトランザクションを償還するとき、ハッシュのプレイメージを開示する代わりに、彼女は、知られている公開鍵の秘密鍵を決定可能にする。この対比は以下の表に示される。
【0070】
[表5]
【0071】
【表5】
本開示の実施形態は、以下の方法のステップの観点で、
図3を参照して説明される。
1. (110)Aliceは、一過性の鍵k
0を選択し、それを、適切なセキュアなチャネルを介してBobへ送信する。代替として、Alice及びBobは、k
0について合意していてよい。
2. (120)Aliceは、彼女自身にのみ知られている秘密鍵S
1∈Z
*
nを選択する。彼女は、対応する公開鍵P1=S
1・Gを計算する。
3. (130)Aliceは、Redeemスクリプトを有するトランザクションTxAを生成する。
<CheckSig P
B><Solve P
1,r
0>
P
BはBobの公開鍵であり、<Solve P
1,r
0>は上述の秘密鍵パズルである。この段階で、Bobは、公開鍵P
1に対応する秘密鍵、つまりS
1を知らないので、Bobはトランザクションを償還できない。Aliceは、TxAをブロックチェーンに提出する。
4. (140)Bobは、Redeemスクリプトを有するトランザクションTxBを生成する。
<CheckSig P
A><Solve P
1,r
0>
ここで、P
AはAliceの公開鍵である。Bobは、TxBをブロックチェーンに提出する。
5. (150)AliceはS
1を知っているので、彼女はTxBを償還できる。TxBのRedeemスクリプトのインプットはとして、Aliceは、特定の一過性の鍵k
0を使用してP
1の署名を提供しなければならない。TxBにアンロックスクリプトを提示するRedeemトランザクションのブロックチェーンへの提出によるTxBの償還は、必ずしもsの値を公にしない。彼が一過性の鍵k
0の値を既に知っているならば、sのこの開示は、Bobが秘密鍵S
1を計算することを可能にする。(160)TxA及びTxBの償還について、タイムロック機能を用いて時間制約が存在してよく又は存在しなくてよい。タイムロック機能は、時間が経つと、Alice及びBobが適切な返金トランザクションをブロックチェーンに提出することにより、TxA及びTxBをAlice及びBobに返すことを可能にするよう構成される。
6. (170)AliceがTxBを償還した場合、(180)Bobは、S
1を計算でき、(190)RedeemトランザクションのアンロックスクリプトによりS
1に対応する署名を提供することにより、Tx1を償還できる。
【0072】
この方法は、ハッシュパズルに依存しないので、スクリプト言語の中で共通のハッシュ関数を共有しないブロックチェーンに渡り、アトミックスワップを行うために使用できる。必要なことは、スクリプト言語が秘密鍵パズルを生成するための十分な機能を含むことだけである。これは、あまり限定的な要件セットではない。
【0073】
図4を参照すると、更なる実施形態では、Alice及びBobは、それぞれ彼ら自身の一過性の鍵k
A及びk
B並びに彼ら自身の秘密鍵X
A及びX
Bを選択する。彼らは、上述の非同期の実施形態の彼らが一過性の鍵k
0を通信するのと同様の方法で、彼らの一過性の鍵を交換する。Alice及びBobは、次に、署名コンポーネント、つまり、点k
A・Gのx成分であるr
Aと、点k
B・Gのx成分であるr
Bと計算してよい。X
A及びX
Bを用いて計算される署名の残りの署名コンポーネントは、それぞれs
A及びs
Bと示され、従って、Sig X
A=(r
A,s
A)及びSig X
B=(r
B,s
B)である。k
A及びk
Bは、本実施形態では同じであってよく又は同じでなくてよい。つまり、共通のk
0が代わりに使用されてよい。
【0074】
本実施形態は、以下のステップに従い実行される。
1. (210A、210B)Alice及びBobは、彼ら自身の一過性の鍵kA及びkBを選択し、それらを互いに通信する。
2. (220A)Aliceは、彼女自身にのみ知られている秘密鍵XA∈Z*
nを選択する。彼女は、対応する公開鍵YA=XA・Gを計算する。
3. (230)Aliceは、Redeemスクリプトを有するトランザクションTx1Aを生成する。
<CheckSig PB><Solve YA,YB,rA,rB>
PBはBobの公開鍵であり、秘密鍵XA,XBに対応する署名の提供を要求する<Solve YA,YB,rA,rB>は秘密鍵パズルである。この段階で、Bobは、公開鍵YAに対応する秘密鍵、つまりXAを知らないので、Bobはトランザクションを償還できない。
4. (220B)Bobは、彼自身にのみ知られている秘密鍵XB∈Z*
nを選択する。彼は、対応する公開鍵YB=XB・Gを計算する。
5. (240)Bobは、Redeemスクリプトを有するトランザクションTx1Bを生成する。
<CheckSig PA><Solve YA,YB,rA,rB>
ここで、PAはAliceの公開鍵である。
【0075】
Tx1A及びTx1Bのスクリプトの鍵パズル部分は同一であることに留意する。鍵パズル<Solve YA,YB,rA,rB>は、秘密鍵XA,XBに対応する署名、つまり署名(rA,sA)及び(rB,sB)の提示を要求する。
【0076】
(250)この時点で、AliceはXBを知らないか、又はAliceはsBを知らないので彼女はそれを計算できない。同様に、Bobは、XA又はsAを知らない。従って、AliceもBobも、Tx1A又はTx1Bを償還するための十分な情報を有しない。Alice及びBobの両者は、彼らそれぞれの署名コンポーネントsA/sB又は秘密鍵XA/XBを互いに通信することにより、誠実に振る舞う。或いは、彼らのうちの一方のみが誠実に振る舞い、或いは、両者とも誠実に振る舞わない。従って、以下の結果のうちの1つが生じ得る。
【0077】
6A.1)AliceがBobにsA又はXAを送信し、BobがAliceにsB又はXBを送信する(つまり、両パーティは誠実に振る舞う)。(295)従って、Alice及びBobの両者は、中にある鍵パズルを解くトランザクションTx1A及びTx1BのRedeemスクリプトに署名を提供するための十分な情報を有する。Tx1A及びTx1Bは、従って、Tx1A及びTx1Bにそれぞれのアンロックスクリプトを提示する支払いトランザクションの提出により、Bob及びAliceによりそれぞれ償還できる。
【0078】
6B.2)BobにsA又はXAを送信することにより、Aliceだけが誠実に振る舞い、Bobは、Aliceに正しいsB又はXBを送信しない又は何も送信しないことにより、不誠実に振る舞うと仮定する。(270)Bobは、次に、Tx1AのRedeemスクリプトに含まれる鍵パズルを解くために、XAに対応する、アンロックスクリプトの中の署名を提供するRedeemトランザクションを提出することにより、Tx1Aを償還できる。一旦、Bobが、ブロックチェーンに、Tx1Aを償還するために構成されたアンロックスクリプトを含むRedeemトランザクションを提出すると、署名(rB,sB)が公に利用可能にされる。(280)それにより、Aliceは、彼女が一過性の鍵kBを知っているので、彼女が鍵XBを計算することを可能にする値sBに気付き、従ってTx1Bを償還するための十分な情報を有することになる。(290)Aliceは、次に、Tx1BのRedeemスクリプトに含まれる鍵パズルを解くために、XBに対応する、アンロックスクリプトの中の署名を提供するRedeemトランザクションを提出する。
【0079】
6C.3)Alice及びBobのいずれも、他方にsA/sB又はXA/XBのどれも送信しないとする。(260)この場合、トランザクションTx1A及びTX1Bは、タイムロック(アクティブな場合)が終了するような時間まで、償還できないままである。タイムロックは、ブロックチェーンに適切なRedeemトランザクションを提出するそれらそれぞれのオーナにトランザクションの制御を戻すことを可能にする。
【0080】
上述の実施形態で説明したようなトランザクションの対称的構成は、鍵パズルにより構成されるトランザクションを用いてアトミックスワップを行うことを可能にする。これは、必要な情報に依存するトランザクションを償還するために該必要な情報を開示するために、ブロックがマイニングされるのをパーティが待つ必要があるのではなく、両方のトランザクションTx1A及びTx1Bが、他のパーティへ同時に、それぞれのリソースへのアクセス及びリソースの制御を移転することを可能にする。
【0081】
1つ以上のリソースへのアクセス又はリソースの制御のアトミックな交換を可能にする本開示の実施形態は、
図5を参照して説明される。
【0082】
本実施形態では、Aliceは、ECC公開/秘密鍵ペアにより、リソースへのアクセスを制御する。このリソースは、一種の暗号通貨の資金であってよく、複数種類の暗号通貨で資金供給されてよく、又は、ウェブアプリ、レンタカー、又は暗号文書へのアクセス、ウェブカメラ又はドア施錠のようなモノのインターネットのスマート装置の制御であってよい。以下に、Bitcoinプロトコルを用いて、BobがAliceからこのリソースへのアクセスを獲得するための方法が提示される。この交換はアトミックである。つまり、Aliceは、彼女がBobから受信したBCHを償還し、Bobは、リソースへのアクセス又はリソースの制御を獲得するか、又は何も起こらない。
【0083】
一例として、BobがAliceへBCHの資金を送金し、AliceがBobへBCH、Ethereum(ETH)及びDASHの資金を送金することを考える。
【0084】
この方法は、リソースを制御する秘密鍵を計算するために一過性の鍵の制御部により要求される情報が、アトミックスワップの完了したときに、露出されることを保証する。これは、パーティが被制御リソースへのアクセスを許可する際の信頼の必要を除去する。
【0085】
方法は、以下のステップを含む。
1. (310)Aliceは、一過性の鍵k0を選択し、それをBobに通信する。
2. (320)Aliceは、彼女自身にのみ知られている秘密鍵S1∈Z*
nを選択する。彼女は、対応する公開鍵P1=S1・Gを計算する。この公開鍵は、リソースへのアクセスを制御し、公開的にブロードキャストされる。
【0086】
(本例では、リソースは、公開鍵P1でロックされたBCH、ETH、及びDASHの資金である。)
3. (325)Aliceは、Bobの公開鍵PBを用いて、決定性公開鍵P’=P1+PB=P1+SB・Gを計算し、(330)リソースへのアクセスが、公開鍵P’の秘密鍵S’=SB+S1のオーナにより取得できるようにする。例えば、これは、暗号通貨の額をアドレスP’へ送信するトランザクションTx’を生成することにより、又は公開鍵P’により文書を暗号化して、該文書をオープンフォーラム上でブロードキャストすることにより、達成され得る。(本例では、Aliceは、共通アドレスへのBCH、ETH、DASHトランザクションを生成し、それぞれ共通公開鍵P’でロックされる。)
4. (340)Bobは、RedeemスクリプトでロックされたトランザクションTxBを提出する。
<CheckSig PA><Solve P1,r0>
5. (370)AliceはS1を知っているので、彼女はTxBを償還できる。本例では、これは、BCHブロックチェーン上で行われる。上述のように、これは、Bobが、AliceのRedeemスクリプトへのインプットの中で提供された情報からS1を計算できるようにする。(360)Tx’及びTxBの償還について、タイムロック機能を用いて時間制約が存在してよく又は存在しなくてよい。タイムロック機能は、時間が経つと、Tx’及びTxBをAlice及びBobに返すことを可能にするよう構成される。
6. (370)Aliceは、アンロックスクリプトの中のS1に対応する署名を提供するRedeemトランザクションを提出して、署名のs部分をBobに開示することにより、トランザクションTxBを償還する。
7. (380)Bobは、ここでS1を計算し、従って(385)P’の秘密鍵S’=SB+S1を計算できる。彼は、それにより、P’により制御されるリソースへのアクセスを獲得する。(本例では、Bobは、ここで、公開鍵P’でロックされたBCH、ETH、及びDASHの資金を使用できる。)
秘密鍵S1がブロックチェーン上で又はその他の場合に公に露出された場合でも、P’でロックされたリソースにアクセス又は制御できるのはBobだけである。これは、リソースが、S1とBobの秘密鍵との組み合わせによりロックされているからである。この意味で、S1は、決定性鍵として動作する。
【0087】
本例では、Bobが購入している暗号通貨がそれらのスクリプト言語の特定の演算を含むことはもはや必要ないことがわかる。必要なことは、BobがBCHの暗号通貨の集合に支払うこと、トランザクションがECDSA署名を用いて制御されることだけである。
【0088】
BobのリソースがAliceにより永遠にロックされることを回避するために、時間ロックされた返金が本方法に導入できる。これは、BobのAliceへの最初のトランザクション以来の、特定の相対時間、例えば24時間が経過した後に、Bobにリソースを返す、AliceからBobへのBCHトランザクションである。
【0089】
同様に、Aliceは、特定の時間量が経過した後に、彼女の制御するリソースへのアクセスを彼女自身に戻してよい。複数の暗号通貨の例では、これは、Bobのものと同様に、返金トランザクションでもあり得る。
【0090】
特定の時間量が経過した後に、スワップが完了していない場合に、Aliceがリソースの制御を彼女自身に戻す必要は無く又は実用的ではない。例えば、リソースが、Bobのアクセスが許可された暗号化文書である場合、Aliceがその文書を無期限に鍵P’により暗号化されたままにしておくことに不利益はない。
【0091】
図6を参照すると、本開示の少なくとも一実施形態を実施するために使用され得るコンピューティング装置2600の説明のための簡略ブロック図が提供される。種々の実施形態で、コンピューティング装置2600は、上述の図示のシステムのうちのいずれかを実装するために使用されてよい。例えば、コンピューティング装置2600は、データサーバ、ウェブサーバ、ポータブルコンピューティング装置、パーソナルコンピュータ、又は任意の電子コンピューティング装置として使用するために構成されてよい。
図6に示すように、コンピューティング装置2600は、主メモリ2608及び永久記憶装置2610を含む記憶サブシステム2606と通信するよう構成され得る1つ以上のレベルのキャッシュメモリ及びメモリ制御部(集合的に2602とラベル付けされる)を備える1つ以上のプロセッサを含んでよい。主メモリ2608は、図示のように、動的ランダムアクセスメモリ(DRAM)2618及び読み出し専用メモリ(ROM)2620を含み得る。記憶サブシステム2606及びキャッシュメモリ2602は、本開示で説明されたようなトランザクション及びブロックに関連付けられた詳細事項のような情報の記憶のために使用されてよい。プロセッサ2602は、本開示で説明されたような任意の実施形態のステップ又は機能を提供するために利用されてよい。
【0092】
プロセッサ2602は、1つ以上のユーザインタフェース入力装置2612、1つ以上のユーザインタフェース出力装置2614、及びネットワークインタフェースサブシステム2616とも通信できる。
【0093】
バスサブシステム2604は、コンピューティング装置2600の種々のコンポーネント及びサブシステムが意図した通りに互いに通信できるようにするメカニズムを提供してよい。バスサブシステム2604は、単一のバスとして概略的に示されるが、バスサブシステムの代替の実施形態は、複数のバスを利用してよい。
【0094】
ネットワークインタフェースサブシステム2616は、他のコンピューティング装置及びネットワークへのインタフェースを提供してよい。ネットワークインタフェースサブシステム2616は、幾つかの実施形態では、コンピューティング装置2600の他のシステムからデータを受信し及びそれへデータを送信するインタフェースとして機能してよい。例えば、ネットワークインタフェースサブシステム2616は、データ技術者が、装置をネットワークに接続することを可能にする。その結果、データ技術者は、データセンタのような遠隔地にいがなら、データを装置へ送信し、データを装置から受信できる。
【0095】
ユーザインタフェース入力装置2612は、キーボード、統合型マウス、トラックボール、タッチパッド、又はグラフィックタブレットのような指示装置、スキャナ、バーコードスキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム、マイクロフォンのようなオーディオ入力装置、及び他の種類の入力装置のような、1つ以上のユーザ入力装置を含んでよい。通常、用語「入力装置」の使用は、コンピューティング装置2600に情報を入力する全ての可能な種類の装置及びメカニズムを含むことを意図する。
【0096】
1つ以上のユーザインタフェース出力装置2614は、ディスプレイサブシステム、プリンタ、又は音声出力装置のような非視覚ディスプレイを含んでよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、又はプロジェクションのような平面装置、又は他のディスプレイ装置を含んでよい。通常、用語「出力装置」の使用は、コンピューティング装置2600から情報を出力する全ての可能な種類の装置及びメカニズムを含むことを意図する。1つ以上のユーザインタフェース出力装置2614は、例えば、ユーザインタフェースを提示して、ここに記載したプロセス及び変形を実行するアプリケーションとのユーザ相互作用が適切であるとき、そのような相互作用を実現するために使用されてよい。
【0097】
記憶サブシステム2606は、本開示の少なくとも1つの実施形態の機能を提供する基本プログラミング及びデータ構造を記憶するコンピュータ可読記憶媒体を提供してよい。アプリケーション(例えば、プログラム、コードモジュール、命令)は、1つ以上のプロセッサにより実行されると、本開示の1つ以上の実施形態の機能を提供し、記憶サブシステム2606に格納されてよい。これらのアプリケーションモジュール又は命令は、1つ以上のプロセッサ2602により実行されてよい。記憶サブシステム2606は、更に、本開示に従い使用されるデータを格納するレポジトリを提供する。例えば、主メモリ2608及びキャッシュメモリ2602は、プログラム及びデータのための揮発性記憶を提供できる。永久記憶装置2610は、プログラム及びデータの永久(不揮発性)記憶を提供でき、磁気ハードディスクドライブ、取り外し可能媒体に関連付けられた1つ以上のフロッピディスクドライブ、取り外し可能媒体に関連付けられた1つ以上の光ドライブ(例えば、CD-ROM、又はDVD、又はBlue-Ray)ドライブ、及び他の同様の記憶媒体を含んでよい。このようなプログラム及びデータは、本開示に記載した1つ以上の実施形態のステップを実行するためのプログラム、及び本開示に記載したトランザクション及びブロックに関連付けられたデータを含み得る。
【0098】
コンピューティング装置2600は、ポータブルコンピュータ装置、タブレットコンピュータ、ワークステーション、又は後述する任意の他の装置を含む種々のタイプのものであってよい。さらに、コンピューティング装置2600は、1つ以上のポート(例えば、USB、ヘッドフォンジャック、光コネクタ、等)を通じてコンピューティング装置2600に接続可能な別の装置を含み得る。コンピューティング装置2600に接続され得る装置は、光ファイバコネクタを受けるよう構成される複数のポートを含んでよい。したがって、この装置は、光信号を、処理のために装置を接続するポートを通じてコンピューティング装置2600に送信される電気信号に変換するよう構成されてよい。コンピュータ及びネットワークの絶えず変化する特性により、
図6に示したコンピューティング装置2600の説明は、装置の好適な実施形態を説明する目的の特定の例としてのみ意図される。
図6に示したシステムより多くの又は少ないコンポーネントを有する多くの他の構成が可能である。
【0099】
上述の実施形態は、本開示を限定するのではなく、説明すること、及び当業者は添付の特許請求の範囲により定められる本開示の範囲から逸脱することなく多くの代替的実施形態を考案できることに留意すべきである。特許請求の範囲において、括弧内の任意の参照符号は、請求項を限定することを意図しない。用語「有する」及び「含む」(comprising、comprises)等は、任意の請求項又は明細書全体に列挙されたもの以外の要素またはステップの存在を排除しない。本願明細書では、「有する」は「有する又は構成される」を意味し、「含む」は「含む又は構成される」を意味する。要素の単数の参照は、該要素の複数の参照を排除しない。逆も同様である。本開示は、幾つかの別個の要素を含むハードウェアにより、及び適切にプログラムされたコンピュータにより、実装できる。幾つかの手段を列挙する装置クレームでは、これらの手段のうちの幾つかは、1つの同じハードウェアアイテムにより具現化されてよい。単に特定の手段が相互に異なる従属請求項に記載されるという事実は、これらの手段の組み合わせが有利に使用されないことを示さない。