(57)【要約】      （修正有）【課題】ブロックチェーンの機能を損なうことなく、仮想通貨の取引所を運営するにあたり必然的に要求される利便性（ヒューマンエラーの低減、費用の抑制、処理時間の短縮）を提供する。【解決手段】チップウォレットを用い、秘密鍵をインターネットに接続したサーバー内部のストレージとは物理的に独立した存在とし、顧客から預かった秘密鍵をハッカーの攻撃から守る。【選択図】図２７
2019145926.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第一、第二、および、第三のノードを含むネットワークにおいて、
前記第一のノードは、第一のアカウントおよび第一のハードウォレットから構成され、
前記第二のノードは、第二のアカウントおよび第二のハードウォレットから構成され、
前記第三のノードは、第三のアカウントおよび第三の秘密鍵から構成され、
前記第一のハードウォレットは、前記第一のハードウォレットに固有の第一の秘密鍵、および、第一の鍵生成装置を含み、
前記第二のハードウォレットは、前記第二のハードウォレットに固有の第二の秘密鍵、および、第二の鍵生成装置を含み、
前記第一の秘密鍵は、前記第一のハードウォレット内部に閉じ込められ、前記第一のハードウォレット外部の第一の公開鍵と一対の組みを成し、
前記第二の秘密鍵は、前記第二のハードウォレット内部に閉じ込められ、前記第二のハードウォレット外部の第二の公開鍵と一対の組みを成し、
前記第三の秘密鍵は、第三の公開鍵と一対の組みを成し、
前記第一の公開鍵は、前記第一のアカウントのネットワーク上の論理アドレスとなり、
前記第二の公開鍵は、前記第二のアカウントのネットワーク上の論理アドレスとなり、
前記第三の公開鍵は、前記第三のアカウントのネットワーク上の論理アドレスとなり、
前記第一のアカウントは、第一のハッシュ値、および、第一の電子署名を含み、
前記第二のアカウントは、第二のハッシュ値、および、第二の電子署名を含み、
前記第三のアカウントは、第三のハッシュ値、および、第三の電子署名を含み、
前記第一のハードウォレットは、物理的実態を有する第一のハードウェアであり、
前記第二のハードウォレットは、物理的実態を有する第二のハードウェアであり、
前記第一、前記第二、および、前記第三の秘密鍵は、互いに異なり、
前記第一、前記第二、および、前記第三の公開鍵は、互いに異なり、
前記第二のハッシュ値は、前記第一の公開鍵、前記第一のハッシュ値、および、前記第一の電子署名を、ハッシュ化して生成したものであり、
前記第二の電子署名は、前記第一の秘密鍵を利用し、前記第二の公開鍵および前記第二のハッシュ値を暗号化して生成され、
前記第二のハッシュ値は、前記第二の電子署名と共に、前記第一のアカウントから前記第二のアカウントへ送付され、
前記第二のアカウントは、前記第一のアカウントから第一の署名付きデジタル情報を受け取り、
前記第一の署名付きデジタル情報は、前記第二のハッシュ値および前記第二の電子署名からなる、
ことを特徴とするデジタル情報の転送システム。
【請求項２】
前記ネットワークは、更に、第四のノード、および、取引所を含み、
前記第四のノードは、第四のアカウントおよび第四のハードウォレットから構成され、
前記第四のハードウォレットは、前記第四のハードウォレットに固有の第四の秘密鍵、および、第四の鍵生成装置を含み、
前記第四の秘密鍵は、前記第四のハードウォレット内部に閉じ込められ、前記第四のハードウォレット外部の第四の公開鍵と一対の組みを成し、
前記第四の公開鍵は、前記第四のアカウントのネットワーク上の論理アドレスとなり、
前記第四のアカウントは、第四のハッシュ値、および、第四の電子署名を含み、
前記第四のハードウォレットは、物理的実態を有する第四のハードウェアであり、
前記第四の秘密鍵は、前記第三の秘密鍵とは異なり、
前記第四の公開鍵は、前記第三の公開鍵とは異なり、
前記第一のアカウントは、前記取引所に登録されており、
前記第二のアカウントは、前記取引所に登録されており、
前記第四のアカウントは、前記取引所に登録されており、
前記取引所は、前記第二の電子署名を利用し、前記第一のアカウントから前記第二のアカウントに前記第一の署名付きデジタル情報を送付し、
前記第三のノードは、前記取引所の外部に前記第三のアカウントを有し、
前記第三のハッシュ値は、前記第四の公開鍵、前記第四のハッシュ値、および、前記第四の電子署名を、ハッシュ化して生成したものであり、
前記第三の電子署名は、前記第四の秘密鍵を利用し、前記第三の公開鍵および前記第三のハッシュ値を暗号化して生成され、
前記第三のハッシュ値は、前記第三の電子署名と共に、前記第四のアカウントから前記第三のアカウントへ送付され、
前記第三のアカウントは、前記第四のアカウントから第二の署名付きデジタル情報を受けとり、
前記第二の署名付きデジタル情報は、前記第三のハッシュ値および前記第三の電子署名からなる、
る第二の署名付きデジタル情報である、
ことを特徴とする請求項１記載のデジタル情報の転送システム。
【請求項３】
前記ネットワークは、更に、第五および第六のノードを含み、
前記第五のノードは、第五のアカウントおよび第五の秘密鍵から構成され、
前記第五の秘密鍵は、第五の公開鍵と一対の組みを成し、
前記第五の公開鍵は、前記第五のアカウントのネットワーク上の論理アドレスとなり、
前記第五のアカウントは、第五のハッシュ値、および、第五の電子署名を含み、
前記第六のノードは、第六のアカウントおよび第六のハードウォレットから構成され、
前記第六のハードウォレットは、前記第六のハードウォレットに固有の第六の秘密鍵、および、第六の鍵生成装置を含み、
前記第六の秘密鍵は、前記第六のハードウォレット内部に閉じ込められ、前記第六のハードウォレット外部の第六の公開鍵と一対の組みを成し、
前記第六の公開鍵は、前記第六のアカウントのネットワーク上の論理アドレスとなり、
前記第六のアカウントは、第六のハッシュ値、および、第六の電子署名を含み、
前記第六のハードウォレットは、物理的実態を有する第六のハードウェアであり、
前記第六の秘密鍵は、前記第五の秘密鍵とは異なり、
前記第六の公開鍵は、前記第五の公開鍵とは異なり、
前記第六のアカウントは、前記取引所に登録されており、
前記第六のハッシュ値は、前記第五の公開鍵、前記第五のハッシュ値、および、前記第五の電子署名を、ハッシュ化して生成したものであり、
前記第六の電子署名は、前記第五の秘密鍵を利用し、前記第六の公開鍵および前記第六のハッシュ値を暗号化して生成され、
前記第六のハッシュ値は、前記第六の電子署名と共に、前記第五のアカウントから前記第六のアカウントへ送付され、
前記第六のアカウントは、前記第五のアカウントから第三の署名付きデジタル情報を受けとり、
前記第三の署名付きデジタル情報は、前記第六のハッシュ値および前記第六の電子署名からなる、
ことを特徴とする請求項２記載のデジタル情報の転送システム。
【請求項４】
前記第一の署名付きデジタル情報は、仮想通貨である、
ことを特徴とする請求項１記載のデジタル情報転送システム。
【請求項５】
前記第二の署名付きデジタル情報は、仮想通貨である、
ことを特徴とする請求項２記載のデジタル情報転送システム。
【請求項６】
前記第三の署名付きデジタル情報は、仮想通貨である、
ことを特徴とする請求項３記載のデジタル情報転送システム。
【請求項７】
前記第一の秘密鍵は、前記第一のハードウェアに固有の物理的乱雑さに関連付けられる第一の乱雑さから生成され、
前記第二の秘密鍵は、前記第二のハードウェアに固有の物理的乱雑さに関連付けられる第二の乱雑さから生成される、
ことを特徴とする請求項１記載のデジタル情報転送システム。
【請求項８】
前記第一および第二の乱雑さの内、少なくとも一方は、半導体チップに固有の乱雑さである、
ことを特徴とする請求項７記載のデジタル情報転送システム。
【請求項９】
前記第一および第二の乱雑さの内、少なくとも一方は、光学装置あるいは光学材料に固有の乱雑さである、
ことを特徴とする請求項７記載のデジタル情報転送システム。
【請求項１０】
前記第一および第二の乱雑さの内、少なくとも一方は、磁気装置あるいは磁気材料に固有の乱雑さである、
ことを特徴とする請求項７記載のデジタル情報転送システム。
【請求項１１】
前記第一および第二の乱雑さの内、少なくとも一方は、機械装置に固有の乱雑さである、
ことを特徴とする請求項７記載のデジタル情報転送システム。
【請求項１２】
前記第一および第二の乱雑さの内、少なくとも一方は、化学材料に固有の乱雑さである、
ことを特徴とする請求項７記載のデジタル情報転送システム。
【請求項１３】
前記ネットワークは、更に、第七のノードを含み、
前記第七のノードは、第七のアカウントおよび第七のハードウォレットから構成され、
前記第七のハードウォレットは、前記第七のハードウォレットに固有の第七の秘密鍵、および、第七の鍵生成装置を含み、
前記第七の秘密鍵は、前記第七のハードウォレット内部に閉じ込められ、前記第七のハードウォレット外部の第七の公開鍵と一対の組みを成し、
前記第七の公開鍵は、前記第七のアカウントのネットワーク上の論理アドレスとなり、
前記第七のアカウントは、第七のハッシュ値、および、第七の電子署名を含み、
前記第七のハードウォレットは、物理的実態を有する第七のハードウェアであり、
前記第七のアカウントは、前記取引所に登録しており、
前記第七の公開鍵は、前記第七の秘密鍵を前記第七の鍵生成装置に入力して生成され、
前記第七の秘密鍵は、前記第七のアカウントを所有する顧客が外部からパスコードを入力することによって、前記第七のハードウェアに固有の内部入力から生成し、
前記取引所は、前記ネットワークを介して、前記パスコードの入力を前記顧客に要求する、
ことを特徴とする請求項３のデジタル情報転送システム。
【請求項１４】
前記第七の鍵生成装置は、エルガマル型である、
ことを特徴とする請求項１のデジタル情報転送システム。
【請求項１５】
前記第一、前記第二、前記第四、および、前記第六の鍵生成装置は、RSA型かエルガマル型のどちらかである、
ことを特徴とする請求項３のデジタル情報転送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想通過取引所の安全性と利便性を兼ね備えるための技術に関する。
【背景技術】
【０００２】
インターネットの普及の結果ネットワーク技術の活用範囲は急速に広まっている。その一つで近年最も注目を集めているのがブロックチェーンを基盤技術としたビットコインなどの仮想通貨である。現在まで無数の仮想通貨が実際に考案されている。投機目的で過剰に売買されるほど活況を見せているが、ブロックチェーン本来の価値は送金に関わる手間の大幅な節約である。送金手数料はほぼ無料になり、国際間送金も１０分程度で処理することが可能である。結果として、国境を跨いだ如何なる少額の送金も瞬時に行われ、金融・税金システムの根本的な見直しを誘発している。
【０００３】
このようにブロックチェーンが次世代の金融システムを構築する基盤技術に期待される背景には、その安全性が十分に信頼されていることが大きい。最大の特徴は、ネットワーク上の論理ノード（アカウント）同士のデータ転送（送金）を台帳化し、その台帳をネットワーク上で公開することにある。そのため公開台帳システムと呼ばれる。
【０００４】
より具体的には、数百の送金記録をひとまとめにして台帳に記帳して公開する。記帳された送金記録の塊がブロックである。すなわち、ブロックに含められた送金記録は過去の記録の集まりであり、台帳として公開されているため誰も改ざんすることはできない。一方新たに発生する送金の記録は、数百集まったところでまとめて記帳され公開されることになる。このとき、既存のブロックと新たに追加されるブロックが所定の条件を満たす形で連結される。
【０００５】
過去の送金記録を一部でも改ざんするにはその過去の時点から現在に至るまで連結したブロック間の連結条件を全て改ざんしなければならない。そのために必要な計算能力は、当該ブロックチェーンの全参加者の計算能力の５０％を凌駕しなければならない。このような攻撃（５１％攻撃）が現実に起こらない限り、長く伸びたブロックチェーンはアカウント間の送金記録を改ざんから防ぐことが可能とされている。
【０００６】
この連結条件を満たすように新たなブロックを作成することをマイニングと言い、この作業をする者をマイナーと呼ぶ。マイナーは記帳するごとに一定の報酬（規定の仮想通貨）を得ることができる。マイナーは自由参加であり、中央管理するためのどのような機関にも所属する必要はない。したがって、中央管理するサーバー無しに連結したブロックの一団（ブロックチェーン）が形成されていく。このように中央管理するサーバーが必要ないネットワークの仕組みをピア・トゥ・ピア（P2P）と呼ぶ。
【０００７】
P2P型ネットワーク構造では中核を担うサーバーの存在を仮定せず、ネットワークに結節するすべてのノード（結節点）が非中核的であり、対等であり、互いを監視し合うことによってセキュリティを担保することが必要である。すなわち、中核（コア）となるクライアント・サーバーの存在を仮定したクライアント・サーバー型ネットワークとは根本的に異なる。
【０００８】
ノードにはネットワーク上の論理アドレスが割り当てられ、仮想通貨の送金システムでは、それはアカウント名と同義である。あるいは、それは物理的実態を持たない仮想通貨を保存する財布でもある。
【０００９】
仮想通貨の送金とは次の工程により実行される。
（１）  過去の送金履歴と処理の主体となるノードの論理アドレスを合成して暗号化し、それを電子署名とする。
（２）  主体となるノードが過去の送金履歴に最新の処理を追加し、電子署名と共に送金先の論理アドレスに転送する。
【００１０】
送金履歴の転送は通貨の転送と同義であり、公認された送金履歴が通貨のように扱われる。これが仮想通貨の概念である。こうして、銀行のように特定の中核的存在を介さずに仮想通貨の送金が行われる。安全性はブロックチェーンによって担保される。
【００１１】
図１は、ノード（N-2）からノード（N-1）への送金（N-2、N-1）、ノード（N-1）からノード（N）への送金（N-1,N）…を示す図面である。ただし、Nは任意の自然数。
【００１２】
処理されるのは仮想通貨の送金であるから、各ノードはそれぞれアカウント（N-2）、アカウント（N-1）、アカウント（N）…に対応する。より具体的には、アカウント（Ｎ−１）およびアカウント（Ｎ）はそれぞれ送金（Ｎ−１，Ｎ）の処理単位である。ノード（N）に紐づけされるアカウント（Ｎ）は、次の３つの要素で構成される。第一の構成要素は、ノード（Ｎ）あるいはアカウント（N）のネットワーク上の論理アドレスである公開鍵（Ｎ）である。第二の構成要素は、アカウント（Ｎ）の中身となるハッシュ値（Ｎ−１）である。第三の構成要素は、ハッシュ値（Ｎ−１）の送金元がノード（N-1）あるいはアカウント（Ｎ−１）であることを証明する電子署名（Ｎ−１）である。
【００１３】
アカウント（N-1）の中身であるハッシュ値（Ｎ−１）は、たとえば、どこかから振り込まれた仮想通貨（実際には更に過去の送金の履歴）である。仮にその貨幣価値を１０００円としておこう。この１０００円の振り込み元をアカウント（Ｎ−２）とし、更にこの１０００円には送金元がアカウント（Ｎ−２）であることを証明する電子署名（Ｎ−２）が添付されている。ただし、１０００円というのは一例に過ぎず、他の貨幣価値と等価または可換なデジタル情報であれば何でも良い。ノード（Ｎ−１）は、アカウントの中身である１０００円と、次の電子署名作成のために用いる秘密鍵（Ｎ−１）と、それと一組をなす固有の公開鍵（Ｎ−１）と、ハッシュ値（N-2）がノード（N-2）から来た事を証明する電子署名（N-2）からなる。ここで、公開鍵（Ｎ−１）はアカウント（Ｎ−１）あるいはノード（N-1）のネットワーク上の論理アドレスである。
【００１４】
次に、公開鍵（N-１）、アカウント（N-１）の中身であるハッシュ値（N-2）、および電子署名（N-2）から、ハッシュ関数（一例としてSHA-256）を用いて、ハッシュ値（N-１）を作成する。このハッシュ値（N-１）をアカウント（N）に送付し、アカウント（N）ではそれをアカウント（N）の中身として保存する。一方、秘密鍵（N-１）を用いてアカウント（N）のアドレスである公開鍵（N）と中身であるハッシュ値（N-１）を暗号化して電子署名（N−１）を生成し、ハッシュ値（N-１）と共にアカウント（N）に転送する。
【００１５】
このように、ノード（N）はハッシュ値（N-１）、電子署名（N-１）、さらに一組の固有の公開鍵（N）及び秘密鍵（N）から構成されることになる。一方、アカウント（N）はハッシュ値（N-１）、電子署名（N-１）、固有の公開鍵（N）から構成されることになる。公開鍵（N）はノード（N）あるいはアカウント（N）のネットワーク上の論理アドレスであり、アカウントアドレスあるいはアカウント名と同義である。秘密鍵（N）は公開鍵（N）と改ざん不能の一対一の組みを形成する。こうして、アカウント（N-１）からアカウント（N）へ1000円を送金する処理が完了する。
【００１６】
ハッシュ値（N-１）には、この1000円がアカウント（N-１）から来たという情報が含まれているはずである。しかしながら、ハッシュは暗号と異なり逆変換不能なので、ハッシュ値（N-１）を逆変換（解号あるいは復号）してそれを読むことができない。そのため、電子署名（N-１）が添付されている。この電子署名（N-１）は、秘密鍵（N-１）を使い、送り先のネットワーク上の論理アドレスである公開鍵（N）および送り先に送付するものであるハッシュ値（N-１）をまとめて暗号化したものである。したがって、この電子署名が本当にアカウント（N-１）のから来たものであるかどうか確かめるには、この電子署名（N-１）を公開鍵（N-１）で解号したものと、アカウント（N）に納められている公開鍵（N）およびハッシュ値（N-１）と比較すれば良い。暗号が破られていない限り、一致していれば確かに秘密鍵（N-１）で電子署名したことに偽りはない。一致していなければその電子署名は偽りである。あるいは別の公開鍵、例えば公開鍵（Q）で解号した結果と一致すれば、公開鍵（Q）をアドレスとして所有するアカウント（Q）が不正処理したことが判る。
【００１７】
図１から引き続き、公開鍵（N）、アカウント（N）の中身（この場合ハッシュ値（N-１））および電子署名（N-１）からハッシュ関数（一例としてSHA-256）を用いて、ハッシュ値（N）を作成する。ノード（N）はこのハッシュ値（N）をアカウント（N+1）に送信し、ノード（N＋１）はそれをアカウント（N+1）の中身として納める。一方、ノード（N）は秘密鍵（N）を用いてアカウント（N+1）のネットワーク上の論理アドレスである公開鍵（N+1）とこのハッシュ値（N）を暗号化し、電子署名（N）を生成する。この電子署名（N）はハッシュ値（N）と共をアカウント（N+1）に送付される。
【００１８】
以上から、アカウント（N）の中身には、アカウント（N-１）からアカウント（N）への送金（N-１、N）がハッシュ値（N-１）として記録されていることが判る。同様に、アカウント（N+１）の中身には、アカウント（N）からアカウント（N+1）への送金（N、N+1）がハッシュ値（N）として記録されることが判る。こうして、任意のアカウントの中身は、過去のすべての送金履歴を連鎖的に含んでいることが判る。すなわち、過去の最新のハッシュ値が過去のすべての送金履歴を代表している。
【００１９】
過去の送金履歴が通貨であるとすると、通貨の偽造とは過去の送金履歴の改ざんや不正コピーである。送金の検証が成功した証として電子署名を送金履歴に添付するのであるから、通貨の偽造とは電子署名の偽造である。電子署名を作成できるのは、暗号が破られない限り、唯一電子署名を生成するのに必要な秘密鍵を所有する送信元のアカウントの所有者のみである。
【００２０】
しかしながら、上述したように一度ブロックチェーンをくみ上げてしまうとたとえ秘密鍵の所有者であってもブロックチェーンを連結させる連結条件をすべて改ざんすることは難しい。ブロックチェーンが長く伸びるほどその難易度は劇的に上昇する。すなわち、一度ブロックチェーンを長くしてしまえば過去に遡って改ざん、あるいは、編集することはほぼ誰にも不可能になる。
【００２１】
にも拘わらず、秘密鍵を所有すれば新たな送金をすることは可能である。したがって、もし秘密鍵が盗まれれば対応するアカウントから仮想通貨が盗み出されることになる。秘密鍵をどのように管理するかは非常に重要な問題となる。特に、ブロックチェーンでは秘密鍵をネットワークにつながった状態で管理するべきではない。もし秘密鍵がネットワークに繋がった状態で管理されている場合ハッカーに秘密鍵を盗まれる可能性がある。
【００２２】
秘密鍵を盗み出したハッカーは、本来の所有者のアカウントから仮想通貨を任意の別のアカウントに送金することが可能である。これが仮想通貨の盗難である。
【００２３】
こうして秘密鍵はネットワークにつながっていないメディアに保存するべきであることが判る。このように管理された秘密鍵をコールドウォレットという。反対にネットワークにつながった状態で管理された秘密鍵をホットウォレットという。アカウントホルダーが各自のコールドウォレットを他人に渡さないでおくことによって、初めてブロックチェーンは現代最強のセキュリティシステムとなる。
【００２４】
コールドウォレットは、例えば、図２のように秘密鍵を紙面に印字したものである。このように紙に印字したものはネットワークとつながっていない。あるいは、普段は端末に接続せずに保管されるUSBメモリなどに記録した秘密鍵もコールドウォレットと見なすことが可能である。コールドウォレットから秘密鍵を盗み出すのにハッキングは通用しない。物理的に強奪するしかない。
【００２５】
図３は、秘密鍵を０と１のバイナリ形式で紙面に印字した一例である。図４は、秘密鍵をバーコード形式で紙面に印字した一例である。図５は、秘密鍵をQRコード（登録商標）形式で紙面に印字した一例である。その他ここで例示しなくても様々な印字方法が考えられる。また、印字するのは紙だけではない。ネットワークから物理的に隔離できる限り、他のどのような印字あるいは書き込み可能なメディアであっても構わない。ここでは、その中の一例として紙に印字するバーコードやQRコード（登録商標）などの場合を例にとって説明する。
【００２６】
紙上に印字した秘密鍵を所定のリーダーで読み取り、上述した電子署名を生成するのに用いることができる。図６はバーコード表示の一例である。たとえば、ノード（N-１）においてバーコードリーダーを用いて秘密鍵（N-1）を読み取り、ノード（N）の論理アドレスである公開鍵（N）とこれからノード（N）に送付するハッシュ値（N-1）を暗号化して電子署名（N-1）を生成する。ノード（N-1）は、この電子署名（N-1）をハッシュ値（N−１）と共にノード（N）に送付する。
【００２７】
図７はQRコード（登録商標）表示の一例である。たとえば、ノード（N-１）においてQRコード（登録商標）リーダーを用いて秘密鍵（N-1）を読み取り、ノード（N）の論理アドレスである公開鍵（N）とこれからノード（N）に送付するハッシュ値（N-1）を暗号化して電子署名（N-1）を生成する。ノード（N-1）は、この電子署名（N-1）をハッシュ値（N−１）と共にノード（N）に送付する。
【００２８】
もちろん、紙上に印字した秘密鍵であってもハッキングではなく物理的な盗難にあう可能性はゼロではない。そこで、さらに用心するため共通鍵暗号で暗号化された秘密鍵を印字する方法がある。図８は、バイナリ表示した秘密鍵を共通鍵暗号で暗号化したものを紙面に印字してコールドウォレットとする方法の一例を示すものである。暗号化前の秘密鍵（平文）は、図８の一例のように紙に印字したものであっても他のメディアに保存されたものでも何でも良い。ただし、コールドウォレットを生成した後暗号化前の秘密鍵（平文）は消去することが望ましい。
【００２９】
図９は、バーコード表示した秘密鍵を共通鍵暗号で暗号化したものを紙に印字してコールドウォレットとする方法の一例を示すものである。暗号化前の秘密鍵（平文）は、図９の一例のように紙に印字したものであっても他のメディアに保存されたものでも何でも良い。ただし、コールドウォレットを生成した後暗号化前の秘密鍵（平文）は消去することが望ましい。
【００３０】
図１０は、QR表示した秘密鍵を共通鍵暗号で暗号化したものを紙面に印字してコールドウォレットとする方法の一例を示すものである。暗号化前の秘密鍵（平文）は、図９の一例のように紙に印字したものであっても他のメディアに保存されたものでも何でも良い。ただし、コールドウォレットを生成した後暗号化前の秘密鍵（平文）は消去することが望ましい。
【００３１】
いずれにしろ暗号化前の秘密鍵（平文）は、適当に与えられた共通鍵（パスコードなど）を用いて共通鍵暗号方法で暗号化される。暗号化された秘密鍵を紙やディスプレイ等に印字したり、ネットワークから切り離した状態で保存できる何らかのメディアに保存し、コールドウォレットとすることが出来る。
【００３２】
上述したように電子署名を生成する際は、共通鍵（パスコードなど）を使ってこのコールドウォレットから秘密鍵を再生する必要がある。図１１は、バーコード表示の暗号化された秘密鍵を用いる場合の一例を示している。まず、所定の読み取り装置（バーコードリーダー等）を使って暗号化された秘密鍵（一例としてバーコード表示）を読み取り、パスコードを入力して複合し、暗号化前の秘密鍵を得ることができる。
【００３３】
図１２は、QRコード（登録商標）表示の暗号化された秘密鍵を用いる場合の一例を示している。まず、所定の読み取り装置（QRコード（登録商標）リーダー等）を使って暗号化された秘密鍵（一例としてQRコード（登録商標）表示）を読み取り、パスコードを入力して複合し元の秘密鍵を得ることができる。
【００３４】
暗号化された秘密鍵を表示する方法はバーコードやQRコード（登録商標）以外の方法でも構わない。また紙面に印字する以外にもディスプレイに表示したり任意のオフライン状態のメディアに保存・表示することが可能である。
【００３５】
いずれにしろ、秘密鍵を復号して表示する端末はオフライン状態でなければならない。もしオンライン状態にある端末で複合し表示可能な状態にしておくと、すなわちホットウォレットと同じになってしまうからである。
【００３６】
QRコード（登録商標）は、現在特定の読み取り装置がなくても読み取ることが可能である。スマートフォンを利用した一例を図１３に示す。一般に、コールドウォレットの読み取り装置はオフライン状態であることが望ましいので、ここではスマートフォーンを機内モードに設定しておく。ディスプレイ上の所定の領域にパスコード（共通鍵）を入力すると、複合化された秘密鍵が得られる。これを機内モードのスマートフォンのディスプレイに表示することができる。
【００３７】
いずれにしろ、図１４および図１５のように、ノード（N-1）ではオフライン端末で復号した秘密鍵（N-1）を使って電子署名（N-1）を生成する。
【００３８】
ノード（N-1）は、オンライン端末を利用してこの電子署名を上述したハッシュ値（N-1）と共にノード（N）に送付する。図１４は、QRコード（登録商標）表示を利用した一例を示すものであり、図１５はバーコード表示を利用した一例を示すものである。
【００３９】
いずれにしろここで注意すべきことは、秘密鍵を扱うにはオフライン端末が必要であり、ハッシュ値および電子署名を送付するためにはオンライン端末が必要であるということである。
【００４０】
オフライン端末で復号した秘密鍵は、図１６のように、オフライン状態（物理的にネットワークと隔離された状態）にある他のメディアに保存することが可能である。たとえば、USBメモリ、光学メディア、磁気メディア、その他半導体メディア（SSDなど）などである。あるいは、上述の共通鍵暗号を使わない場合、図１７のように、読み取り装置で読み取った秘密鍵をそのままオフライン状態（物理的にネットワークと隔離された状態）にある他のメディアに保存することが可能である。たとえば、USBメモリ、光学メディア、磁気メディア、その他半導体メディア（SSDなど）などである。これらのメディアが通常オフライン状態（物理的にネットワークと隔離された状態）であることは自明であるが、用心のためコピープロテクションをかけておくことが望ましい。
【００４１】
さて、取引所の基本的な役割の一つは、顧客から預かった仮想通貨の送金を代行することである。上述したように、仮想通貨の送金には電子署名を生成する必要がある。したがって、顧客のアカウント名（ネットワーク上の論理アドレス）である公開鍵と一対一にリンクしている秘密鍵を顧客から預かる必要がある。上述したように、秘密鍵の管理は可能な限り安全に行わなければならない。そのため秘密鍵をコールドウォレットに保存する必要がある。
【００４２】
こうして仮想通貨の取引所では、複数の顧客からコールドウォレットを預かり資金を運用することになる。一例として、図１８のように、共通鍵暗号で暗号化された秘密鍵を紙面にQRコード（登録商標）表示等で印字したコールドウォレットを考えよう。したがって、顧客が多くなれば取引所にはQRコード（登録商標）を印字した紙が無数に蓄えられることになる。共通鍵（パスコードなど）は顧客がそれぞれ管理しておく限り、万が一預かったコールドウォレットが物理的に盗難したとしても秘密鍵を復号されて顧客の資産が盗難されることはない。
【００４３】
一方、取引所には顧客の仮想通貨を送金するためネットワークに繋がった（オンラインの）サーバーが必要である。取引所はコールドウォレットを所定の読み取り装置で読み取り、復号するため顧客にパスコード（共通鍵）の入力を要求する。顧客は、例えば所有するスマートフォンのディスプレイに要求されたパスコード（共通鍵）を入力する。このように顧客にパスコードの入力を要求するため取引所の読み取り装置はオンラインでなければならない。これは、図１１−１３で説明したオフラインの読み取り装置とは異なる。この点で取引所の運営には潜在的な脆弱性が混入することになる。にもかかわらず復号された秘密鍵は取引所のサーバーで電子署名を生成するのに利用され、顧客に代わって送金処理を行うのに使われる。
【００４４】
図１９は、バーコード表示を用いた場合の一例である。顧客数が多くなるにつれ取引所にはバーコードを印字した無数の紙が蓄えられることになる。その他詳細は図１８の説明と同様なので省略する。
【００４５】
図２０は、共通鍵暗号で暗号化した秘密鍵をUSBメモリ等に記録する場合の一例を説明するものである。顧客が多くなるにつれ取引所は無数のUSBメモリを管理しなければならなくなる。顧客に代わって電子署名を生成するため、取引所では顧客から預かったUSBメモリを所定の端末に接続し暗号化された秘密鍵を読み取る。次に、復号するため顧客にパスコード（共通鍵）の入力を要求する。顧客は、例えば所有するスマートフォンのディスプレイにパスコード（共通鍵）を入力する。このように顧客にパスコードの入力を要求するためこの端末はオンラインでなければならない。これは、図１１−１３で説明したオフラインの読み取り装置とは異なる。この点で取引所の運営には潜在的な脆弱性が混入することになる。
【００４６】
したがって、電子署名の生成が終わったら直ちにUSBメモリをオンライン端末から抜き取らなければならない。光学メディア、磁気メディアあるいはその他の半導体メディア（SSDなど）を利用した場合であっても事情は同様である。電子署名を生成した後すぐにメディアをオンライン端末から抜き取らなければならない。これは常にヒューマンエラーの原因となる。いずれにしろ、こうして生成された電子署名は顧客に代わって送金処理を行うのに使われる。
【００４７】
このように、いずれのコールドウォレットを活用した場合でも電子署名生成の代行をするためには一定の手作業が必要であることが判る。紙に印字した場合、読み取り装置で読み取る作業が必要である。USBメモリの場合、USBメモリをオンライの端末に差し込んだり抜き取ったりする作業が必要である。光学メディアの場合、光学メディアを光学ドライブに挿入したり取り出したりする作業が必要である。磁気メディアの場合、磁気メディアを磁気ドライブに接続したり切り離したりする作業が必要である。そのほかの半導体メディア（SSDなど）の場合、半導体メディア（SSDなど）をオンライン端末に接続したり切り離したりする作業が必要である。
【００４８】
上述したように、これらの手作業はヒューマンエラーの原因になるばかりでなく、顧客数（実際には送金を代行するアカウント数）が増大するにしたがって人件費の増大や送金作業の遅延を招くことになる。一方仮想通貨は、本来送金手数料を極限まで下げ、送金処理に掛かる時間も短くできると期待されていたものである。
【００４９】
問題の原因は取引所の存在そのものである。取引所は顧客の送金処理を代行するため顧客からコールドウォレットを預からなければならない。コールドウォレットは、その定義からしてオフラインで扱わなければならず、これが取引所ではヒューマンエラーの原因となり、費用の増大を招き、処理の遅延を引き起こしている。
【００５０】
このような状況を回避するため、たとえば、図２１−２３のように、電子署名を生成する際顧客にパスコード（共通鍵）の入力を要求しない運営方法が考えられる。図２１は紙面にQRコード（登録商標）表示の暗号化した秘密鍵を印字する場合一例であり、図２２は紙面にバーコード表示の暗号化した秘密鍵を印字する場合の一例であり、図２３は暗号化した秘密鍵をUSBメモリに保存する場合の一例である。しかしながら、これらはコールドウォレット以外に共通鍵も取引所に預けることに他ならない。銀行通帳と銀行印を同一の他人に預けることと同じである。そして、生成した電子署名を送付するため、やはり読み取り装置はサーバーに接続し、オンライ状態にさらされる。こうして秘密鍵の保管の安全性は著しく損なわれる。
【００５１】
更に利便性を追求すると、図２４のように顧客の秘密鍵を取引所のサーバーのストレージに保存してしまう危険がある。確かに、コールドウォレットを扱うために発生するヒューマンエラー、費用の増大、処理の遅延は防ぐことが可能である。しかしながら、これは顧客から預かった秘密鍵をコールドウォレットからホットウォレットに移すことに他ならない。コインチェック事件はその一例である。
【００５２】
顧客から預かった秘密鍵をハッカーの攻撃から守るためには、図２５のように、十分協力なデータプロテクションが必要である。しかしながら、データプロテクションはブロックチェーンが登場する前から広く用いられており、ハッカーの格好の攻撃対象であり、常に不完全であることが広く知られている。そのような状況の中、データプロテクションとは全く異なる概念でおそらく現在最強のセキュリティシステムとしてブロックチェーンは登場したのである。したがって、図２４のように顧客から預かった秘密鍵をサーバーに保存することは、仮想通貨をブロックチェーンのセキュリティからデータプロテクション（旧来型）のセキュリティシステムに置き換えてしまうことに他ならない。これは、セキュリティシステムの退化である。すなわち、コインチェック事件の本質は、利便性を追求するため送金処理のセキュリティをブロックチェーンからデータプロテクションに退化させたことである。
【００５３】
上述のように、仮想通貨の取引所を運営するにあたり必然的に要求される利便性（ヒューマンエラーの低減、費用の抑制、処理時間の短縮）を追求すると、必然的にブロックチェーンが機能しなくなるという問題が存在することが判る。
【発明の開示】
【発明が解決しようとする課題】
【００５４】
本発明は上記事情を鑑みて成されたものであり、ブロックチェーンの機能を損なうことなく、仮想通貨の取引所を運営するにあたり必然的に要求される利便性（ヒューマンエラーの低減、費用の抑制、処理時間の短縮）を提供することを目的とする。
【課題を解決するための手段】
【００５５】
本発明は、上記課題を解決するため、以下の手段を採用する。
【００５６】
本発明が提案する解決手段は、少なくとも第一、第二、および、第三のノードを含むネットワークにおいてデジタル情報を署名付きで転送するシステムであり、次の特徴を有する。
前記第一のノードは、第一のアカウントおよび第一のハードウォレットから構成され、
前記第二のノードは、第二のアカウントおよび第二のハードウォレットから構成され、
前記第三のノードは、第三のアカウントおよび第三の秘密鍵から構成され、
前記第一のハードウォレットは、前記第一のハードウォレットに固有の第一の秘密鍵、および、第一の鍵生成装置を含み、
前記第二のハードウォレットは、前記第二のハードウォレットに固有の第二の秘密鍵、および、第二の鍵生成装置を含み、
前記第一の秘密鍵は、前記第一のハードウォレット内部に閉じ込められ、前記第一のハードウォレット外部の第一の公開鍵と一対の組みを成し、
前記第二の秘密鍵は、前記第二のハードウォレット内部に閉じ込められ、前記第二のハードウォレット外部の第二の公開鍵と一対の組みを成し、
前記第三の秘密鍵は、第三の公開鍵と一対の組みを成し、
前記第一の公開鍵は、前記第一のアカウントのネットワーク上の論理アドレスとなり、
前記第二の公開鍵は、前記第二のアカウントのネットワーク上の論理アドレスとなり、
前記第三の公開鍵は、前記第三のアカウントのネットワーク上の論理アドレスとなり、
前記第一のアカウントは、第一のハッシュ値、および、第一の電子署名を含み、
前記第二のアカウントは、第二のハッシュ値、および、第二の電子署名を含み、
前記第三のアカウントは、第三のハッシュ値、および、第三の電子署名を含み、
前記第一のハードウォレットは、物理的実態を有する第一のハードウェアであり、
前記第二のハードウォレットは、物理的実態を有する第二のハードウェアであり、
前記第一、前記第二、および、前記第三の秘密鍵は、互いに異なり、
前記第一、前記第二、および、前記第三の公開鍵は、互いに異なり、
前記第二のハッシュ値は、前記第一の公開鍵、前記第一のハッシュ値、および、前記第一の電子署名を、ハッシュ化して生成したものであり、
前記第二の電子署名は、前記第一の秘密鍵を利用し、前記第二の公開鍵および前記第二のハッシュ値を暗号化して生成され、
前記第二のハッシュ値は、前記第二の電子署名と共に、前記第一のアカウントから前記第二のアカウントへ送付され、
前記第二のアカウントは、前記第一のアカウントから第一の署名付きデジタル情報を受けとり、
前記第一の署名付きデジタル情報は、前記第二のハッシュ値および前記第二の電子署名からなる。
【００５７】
本発明が提案する解決手段は、更に次の特徴を有する。
前記ネットワークは、更に、第四のノード、および、取引所を含み、
前記第四のノードは、第四のアカウントおよび第四のハードウォレットから構成され、
前記第四のハードウォレットは、前記第四のハードウォレットに固有の第四の秘密鍵、および、第四の鍵生成装置を含み、
前記第四の秘密鍵は、前記第四のハードウォレット内部に閉じ込められ、前記第四のハードウォレット外部の第四の公開鍵と一対の組みを成し、
前記第四の公開鍵は、前記第四のアカウントのネットワーク上の論理アドレスとなり、
前記第四のアカウントは、第四のハッシュ値、および、第四の電子署名を含み、
前記第四のハードウォレットは、物理的実態を有する第四のハードウェアであり、
前記第四の秘密鍵は、前記第三の秘密鍵とは異なり、
前記第四の公開鍵は、前記第三の公開鍵とは異なり、
前記第一のアカウントは、前記取引所に登録されており、
前記第二のアカウントは、前記取引所に登録されており、
前記第四のアカウントは、前記取引所に登録されており、
前記取引所は、前記第二の電子署名を利用し、前記第一のアカウントから前記第二のアカウントに前記第一の署名付きデジタル情報を送付し、
前記第三のノードは、前記取引所の外部に前記第三のアカウントを有し、
前記第三のハッシュ値は、前記第四の公開鍵、前記第四のハッシュ値、および、前記第四の電子署名を、ハッシュ化して生成したものであり、
前記第三の電子署名は、前記第四の秘密鍵を利用し、前記第三の公開鍵および前記第三のハッシュ値を暗号化して生成され、
前記第三のハッシュ値は、前記第三の電子署名と共に、前記第四のアカウントから前記第三のアカウントへ送付され、
前記第六のアカウントは、前記第五のアカウントから第三の署名付きデジタル情報を受けとり、
前記第三の署名付きデジタル情報は、前記第六のハッシュ値および前記第六の電子署名からなる。
【００５８】
本発明が提案する解決手段は、更に次の特徴を有する。
前記ネットワークは、更に、第五および第六のノードを含み、
前記第五のノードは、第五のアカウントおよび第五の秘密鍵から構成され、
前記第五の秘密鍵は、第五の公開鍵と一対の組みを成し、
前記第五の公開鍵は、前記第五のアカウントのネットワーク上の論理アドレスとなり、
前記第五のアカウントは、第五のハッシュ値、および、第五の電子署名を含み、
前記第六のノードは、第六のアカウントおよび第六のハードウォレットから構成され、
前記第六のハードウォレットは、前記第六のハードウォレットに固有の第六の秘密鍵、および、第六の鍵生成装置を含み、
前記第六の秘密鍵は、前記第六のハードウォレット内部に閉じ込められ、前記第六のハードウォレット外部の第六の公開鍵と一対の組みを成し、
前記第六の公開鍵は、前記第六のアカウントのネットワーク上の論理アドレスとなり、
前記第六のアカウントは、第六のハッシュ値、および、第六の電子署名を含み、
前記第六のハードウォレットは、物理的実態を有する第六のハードウェアであり、
前記第六の秘密鍵は、前記第五の秘密鍵とは異なり、
前記第六の公開鍵は、前記第五の公開鍵とは異なり、
前記第六のアカウントは、前記取引所に登録されており、
前記第六のハッシュ値は、前記第五の公開鍵、前記第五のハッシュ値、および、前記第五の電子署名を、ハッシュ化して生成したものであり、
前記第六の電子署名は、前記第五の秘密鍵を利用し、前記第六の公開鍵および前記第六のハッシュ値を暗号化して生成され、
前記第六のハッシュ値は、前記第六の電子署名と共に、前記第五のアカウントから前記第六のアカウントへ送付される第三の署名付きデジタル情報である。
【発明の効果】
【００５９】
本発明によれば、半導体チップに固有の乱雑さと連携したコールドウォレット（チップウォレット）を用いることにより、仮想通貨の取引所を運営するにあたり必然的に要求される利便性（ヒューマンエラーの低減、費用の抑制、処理時間の短縮）を損なうことなく、ブロックチェーンによる信頼性の高いセキュリティを提供することが可能となる。
【００６０】
以下、発明を実施するための最良の形態について、具体的に説明する。
【発明を実施するための最良の形態】
【００６１】
上述してきたように、本発明では、半導体チップに固有の乱雑さと連携したコールドウォレット（チップウォレット）とその活用方法を提案する。以下図面を用いて具体的に説明してゆく。
（第一の実施形態）
【００６２】
図２６は、取引所のサーバーのストーレジに保管されていた顧客の秘密鍵を個別の一つの半導体チップに移し閉じ込める概念を示すものである。このような半導体チップは、取引所のサーバーを構成するボードにマウントすることが可能である。同様に他の顧客から預かっているすべての秘密鍵をそれぞれ個別の半導体チップに移し閉じ込めることが出来れば上述した問題は解決できる。このように秘密鍵を閉じ込める半導体チップをチップウォレットと呼ぶことにする。
【００６３】
あるいは、自明なので特に図示しないが、取引所のサーバーのストーレジに保管されていた顧客の秘密鍵を個別の一つのチップセットなどに移し閉じ込めても構わない。このようなチップセットは、取引所のサーバーを構成するボードに連結することが可能である。同様に他の顧客から預かっているすべての秘密鍵をそれぞれ個別のチップセットに移し閉じ込めることが出来れば上述した問題は解決できる。このようなチップセットもチップウォレットと同じ概念に含まれる。あるいは、このようなチップセットを含む電子装置もチップウォレットと同じ概念に含まれる。あるいは、このような電子装置は、半導体メモリチップ、磁気メディア、光学メディア等および各種半導体チップを含むことが出来る。
【００６４】
あるいは、自明なので特に図示しないが、取引所のサーバーのストーレジに保管されていた顧客の秘密鍵を個別の一つのボードなどに移し閉じ込めても構わない。このようなボードは、取引所のサーバーを構成するボードに連結することが可能である。同様に他の顧客から預かっているすべての秘密鍵をそれぞれ個別のボードに移し閉じ込めることが出来れば上述した問題は解決できる。このようなボードもチップウォレットと同じ概念に含まれる。
【００６５】
以下説明を簡単にするため、このようなチップウォレットあるいはそれと同等の機能を有する電子装置やボード等を含み総称してチップウォレットと見なす。以下では、このようなチップウォレットの物理的実態の一例として半導体チップあるいは単にチップを用いて本発明の概念を説明するが、これらの半導体チップあるいは単にチップが、上記電子装置や上記ボード等に置き換えられても説明は同様であり、本発明の概念を逸脱するものではない。
【００６６】
そして、このようなチップウォレットは、下記の条件を満たすものとする。
（３）  異なる二枚の半導体チップに納められた二つの秘密鍵は互いに異なるものとする。
（４）  一枚の半導体チップに一つの秘密鍵が納められるものとする。
（５）  半導体チップに納められている秘密鍵は半導体チップの外部に取り出すことができないものとする。
（６）  可能であれば、秘密鍵は半導体チップに固有の乱雑さと何らかの方法で連携しているものとする。
【００６７】
図２７および２８は、上記条件（３）−（５）の条件を満たすチップウォレットを仮想通貨の取引所で活用する方法の一例を示すものである。図２７では、顧客から預かった秘密鍵を閉じ込めた半導体チップ（チップウォレット）を何らかの形でサーバーに連絡し、秘密鍵をチップ内に閉じ込めたまま電子署名を生成する。一例として、サーバーのインターフェースに所定のフォーマットに従ってマウントすることが望ましい。あるいは、一例として、サーバーを構成するボードの一部に所定のインターフェースに従ってマウントすることが望ましい。あるいは、サーバーを構成するボードの一部に所定のインターフェースに従って接続することが望ましい。チップウォレットを使用する場合電子署名を生成した後都度取り外す必要はない。
【００６８】
図２８では、顧客から共通鍵暗号を用いて暗号化した秘密鍵を預かり、半導体チップに納めてチップウォレットとする。あるいは、固有の内部入力を有するチップウォレット（チップ認証）を顧客から預かり、顧客が外部入力する共通暗号鍵（パスコード）で暗号化して秘密鍵を生成する。この秘密鍵はチップウォレット内に閉じ込められる。上述したように電子署名を生成する際顧客にパスコード（共通鍵）の入力を要求する必要がある。一例として、ネットワークを介して顧客の携帯端末にパスコードの入力を要求し、顧客がパスコードを入力すると顧客の送金処理を代行するために必要な電子署名が生成される。自明なので説明を省くが、顧客がパスコードを入力する端末は、直接間接に限らず、顧客が責任を持ってパスコードを管理できる限りどのような端末であっても構わない。
【００６９】
図２７および図２８のいずれの場合でも、インターネットを介して、取引所の内部に登録されているアカウントと取引所の外部に存在するアカウントが一つのネットワークを形成することが出来る。また、上述した方法で生成した電子署名を利用し、図１などで説明した方法で、ネットワーク上の任意のアカウント間で仮想通貨の送付を行うことが出来る。従って、取引所に登録されている二つのアカウント同士で仮想通貨を交換することが可能となる。また、取引所に登録されているアカウントから、上述した方法で生成した電子署名を利用し、図１などで説明した方法で、インターネットを介してこの取引所の外部の任意のアカウントにも仮想通貨を送付することが可能である。反対に、取引所の外部の任意のアカウントから、上述した方法で生成した電子署名を利用し、図１などで説明した方法で、インターネットを介してこの取引所に登録されているアカウントに仮想通貨を送付することが可能である。
【００７０】
各々の顧客が所有するアカウント（ネットワーク上の論理アドレス）は、公開鍵暗号の考えに基づいて一つずつ秘密鍵にリンクしている。したがって上記（３）および（４）の条件を満たす限り、一つのチップが一つのアカウントに対応することになる。また、上記（５）の条件を満たす限り、ハッカーが取引所のサーバーへの攻撃に成功したとしても、ハッカーは取引所が顧客から預かった秘密鍵を盗み出すことができない。ただし、電子署名生成には秘密鍵を使うので、その秘密鍵を半導体チップの中に閉じ込めておくためには幾つかの工夫が必要である。
【００７１】
図２９は、その工夫の一例を説明するための図面である。公開鍵（N-1）に対応する秘密鍵（N-1）を閉じ込めたチップウォレット（N-1）を考えよう。公開鍵（N-1）はチップウォレット（N-1）の外部に出力され、アカウント（N-1）のネットワーク上の論理アドレスとなる。したがって、このチップウォレット（N-1）は、上述したように、半導体チップ、チップセット、あるいはボード等で実現できる。
【００７２】
このチップウォレット（N-1）は、ブロックチェーンの送金方法を説明する図１のアカウント（Ｎ−１）に紐づけされる。ただし、ブロックチェーンでは特定の物理的存在（一例として半導体チップ）を仮定していないが、本発明では物理的存在である半導体チップなどに秘密鍵を閉じ込め、ネットワーク上のノードあるいは仮想通貨のアカウントに対応させるところに特徴がある。
【００７３】
上記条件（４）に従い、チップウォレット（N-1）内では、秘密鍵（N-1）以外に当該半導体チップに固有の乱雑さから生成されるチップ認証（N-1）と、所定のアルゴリズムに基づいてこのチップ認証（N-1）から一対の秘密鍵および公開鍵を生成する鍵生成装置が搭載されている。すなわち、チップ認証（N-1）、あるいは、このチップ認証を適当に変換したコードをこの鍵生成装置に入力し、秘密鍵（N-1）および公開鍵（N-1）のペアを生成する。公開鍵（N-1）は対応するアカウント（N-1）のネットワーク上での論理アドレスとなり、秘密鍵（N-1）はチップウォレット（N-1）に閉じ込められる。自明なので特に図示しないが、秘密鍵がチップ内に閉じ込められる限り鍵生成装置をチップ外部に設置しても構わない。あるいは、秘密鍵がチップ内に閉じ込められる限り鍵生成装置はソフトウェアで実現しても構わない。
【００７４】
上述のように、本実施形態では、チップ認証を鍵生成装置に入力し、互いに一対の組みをなす秘密鍵と公開鍵を生成する。ただし、少なくとも公開鍵から秘密鍵を再生することは非常に困難である。このような鍵生成アルゴリズムは複数存在している。本実施形態では、その一例としてRSA法（リベスト・シャミア・エーデルマン法）
【非特許文献１】参照）を採用することが望ましい。
【非特許文献１】Rivest, Ronald L.; Shamir, Adi; Adelman, Len M. (1977-07-04), “A Method for Obtaining Digital Signature and Public-key Cryptsystems”, MIT-LCS-TM-082 (MIT Laboratory for Computer Science).
【００７５】
このとき、鍵生成装置がRSA型なのでこのチップウォレットをRSA型チップウォレットと呼ぶことが出来る。
【００７６】
RSA法では、まず適当な正の自然数ｅを準備する。通常２の１６乗に１を足したものを採用するが、それ以外の正の自然数を採用することも出来る。次に大きな二つの素数の組み｛ｐ、ｑ｝を何らかの方法で生成し、それらの積ｎ（＝ｐｑ）を計算する。このとき｛ｅ、ｎ｝が公開鍵となる。続いて、（ｐ−１）および（ｑ−１）の積で割った余りが１となる正の整数を更にｅで割ったものを秘密鍵ｄとする。ただし、｛ｅ、ｎ｝以外に｛ｐ、ｑ｝も既知になれば計算によってｄを獲得することが可能になるので、ｄを生成した後｛ｐ、ｑ｝は破棄するかｄと共にチップウォレットの内部に閉じ込めなければならない。素数の組み｛ｐ、ｑ｝を外部に漏れないよう保存しているのであれば組み｛ｄ、ｐ、ｑ｝が秘密鍵であるという見方もできる。いずれにしろ、秘密鍵はチップウォレットに閉じ込めておかねばならない。公開鍵のみ外部で利用可能にし、ネットワーク上のアカウントの論理アドレスとする。
【００７７】
前記適当な正の整数ｅは、チップウォレットの外部から外部入力として入力することが可能である。
【００７８】
あるいは、チップウォレットを構成する半導体チップの内部の別の一部から内部入力として入力することも可能である。一例として、バイナリ表示したチップ認証の最初の数ビットを切り出し１を加算して前記ｅとすることが可能である。あるいは、チップ認証に１を加えて正の整数ｅを生成しても構わない。
【００７９】
前記大きな二つの素数の組み｛ｐ、ｑ｝を準備する方法は、一例として、チップ認証から適当な任意の整数ｋを引き算し、素数かどうかを確かめる。素数であればその素数をｐとする。素数でなければ更に適当な任意の整数ｋを引き算して素数かどうかを確かめる。これを繰り返し、素数ｐを決める。素数ｐを決めたのち、同様の手続きを繰り返し素数ｑを決める。こうして前記素数｛ｐ、ｑ｝を求めることができる。
【００８０】
このとき、前記ｋをセキュリティパラメータとすることができる。たとえば、物理乱数発あるいは疑似乱数などを用いて一定の範囲内の整数からランダムに選択し、それをセキュリティパラメータｋとすることが可能である。あるいは、チップ認証とｋを何らかの方法で合成したものが素数になるまで合成を繰り返すことが可能である。いずれにしろ、チップ認証が数値として十分大きい限りｐもｑも十分大きな素数となり、セキュリティパラメータｋの選択もより多様になる。
【００８１】
物理乱数を発生する物理乱数発生装置は、チップウォレットの中に含めることも出来るし、あるいは、チップウォレットの外部に設置したものを採用することも可能である。後者の場合外部入力として乱数が与えられる。ソフトウェアで疑似乱数を発生する場合も同様である。ここで、チップ認証とｋの合成方法は、加減乗除すべての算術演算およびその組み合わせ、あるいは、可能な限りあらゆるビット演算が可能である。いずれにしろ、チップ認証、あるいは、外部入力が数値として十分大きい限り素数ｐも十分大きな素数となる。
【００８２】
いずれにしろ、チップ認証から素数ｐまたはｑを求める方法は、一例として、図３０のように、前記チップ認証と適当に与えられた変数（一例としてｋ）を合成する合成ステップと、合成された数が素数であるかどうかを判定する判定ステップとから構成され、実際に素数が得られるまで前記合成ステップおよび前記判定ステップを繰り返すことである。
【００８３】
図３１は、図１のブロックチェーンにチップウォレットを連結させる方法の一例を示すものである。ただし、一例として、チップウォレットはRSA型を採用している。
【００８４】
ここでは、送金（N-2、N-1）をノード（N-2）からノード（N-1）に対して行い、送金（N-１、N）をノード（N-１）からノード（N）に対して行っている。図１と同様に、各ノードは公開鍵、ハッシュ値、電子署名からなるアカウントを下段に備えている。これに対し上段には、鍵生成装置、チップ認証および秘密鍵から構成されるチップウォレットを備えている。ただし、Nはノードに紐づけされた自然数であり、ノード（N）はチップウォレット（Ｎ）とアカウント（Ｎ）から構成される。この点で、図１で説明した従来のブロックチェーンの送金処理とは異なる。
【００８５】
具体的に働き方を見るため、右端のノード（N）に着目する。ハッシュ値（N-1）はアカウント（Ｎ）の中身であり、一つ前のノード（N-1）で次の方法により生成する。まず、ノード（N-1）は、アカウント（N-1）のネットワーク上の論理アドレスである公開鍵（N-1）、アカウント（N-1）の中身であるハッシュ値（N-２）、および電子署名（N-2）をまとめてハッシュ化してハッシュ値（N-1）を得る。ハッシュ化にはハッシュ関数を用いればよい。ハッシュ関数は、MD２、MD4、MD5、RIPE-MD160、SHA-256、SHA-384、SHA-512など多数存在し、このうち一例としてビットコインではSHA-256を使用している。
【００８６】
更にノード（N-1）は、アカウント（N）のネットワーク上の論理アドレスである公開鍵（N）を取得し、ハッシュ値（N-1）と一緒に秘密鍵（N-1）で暗号化して電子署名（N-1）を生成する。これを前記ハッシュ値（N-1）と共にアカウント（N）に送付する。アカウント（N）では、公開鍵（N）、ハッシュ値（N-1）および電子署名（N-1）をまとめてハッシュ化してハッシュ値（N）を生成し、電子署名（N）と共にアカウント（N+1）に転送する。電子署名（N-2）および電子署名（N）の生成方法は、電子署名（N-1）の生成方法と同様なので、説明を省略する。
【００８７】
このように、秘密鍵がチップウォレット含まれていること以外、図１のビットコインの説明とまったく同様である。したがって、本発明は従来のブロックチェーンと完全な互換性がある。
【００８８】
一方、図１との決定的な違いは、チップウォレットの存在にある。下段のアカウントの中に納まっている公開鍵は、上段のチップウォレットによって所定の物理的生成プロセスを用いて生成されたものであり、対応するチップウォレットに閉じ込めれている秘密鍵と一組の対をなすものである。さらにチップウォレットは物理的実態である半導体チップであり論理的存在とは異なる。
【００８９】
あるいは、前記秘密鍵は、電子署名を生成する際に生成し電子署名の生成が終わった後消去することも可能である。いずれにしろ、チップウォレットの外部に出なければ「閉じ込められている」のと同様であり、本発明を特徴づける概念から逸脱しない。
【００９０】
以上秘密鍵および公開鍵の生成方法としてＲＳＡ法を仮定し、（第一の実施形態）を説明して来た。ただし、これはあくまで一例に過ぎず、鍵生成装置がチップ認証、あるいはチップ認証に関連づけられた何らかの入力を受け入れて秘密鍵と公開鍵を生成する限り他のどのようなアルゴリズムによる鍵生成方法を採用しても構わない。
（第二の実施形態）
【００９１】
図３２は、その工夫の別の一例を説明するための図面である。公開鍵（N-1）に対応する秘密鍵（N-1）を閉じ込めたチップウォレット（N-1）を考えよう。公開鍵（N-1）はチップウォレット（N-1）の外部に出力され、アカウント（N-1）のネットワーク上の論理アドレスとなる。したがって、このチップウォレット（N-1）は、上述したように、半導体チップ、チップセット、あるいはボード等で実現できる。
【００９２】
このチップウォレット（N-1）は、ブロックチェーンの送金方法を説明する図１のアカウント（Ｎ−１）に紐づけされる。ただし、ブロックチェーンでは特定の物理的存在（たとえば半導体チップ）を仮定していないが、本発明では物理的存在である半導体チップなどに秘密鍵を閉じ込め、ネットワーク上のノードあるいは仮想通貨のアカウントに対応させるところに特徴がある。
【００９３】
チップウォレット（N-1）内では、秘密鍵（N-1）以外に半導体チップに固有の乱雑さから生成されるチップ認証（N-1）と、エルガマル・アルゴリズムに基づいて秘密鍵および公開鍵を生成する鍵生成装置が搭載されている。すなわち、まずチップ認証（N-1）を秘密鍵とし、あるいは、チップ認証（N-1）から何らかの方法で秘密鍵を生成する。その秘密鍵をエルガマル型鍵生成装置に入力し公開鍵（N-1）を生成する。ここで、秘密鍵（N-1）と公開鍵（N-1）は一対一のペアを成す。公開鍵（N-1）は対応するアカウント（N-1）のネットワーク上での論理アドレスとなり、秘密鍵（N-1）はチップウォレット（N-1）内に閉じ込められる。
【００９４】
上述のように、本実施形態では、チップ認証をそのまま秘密鍵とするか、あるいは、チップ認証を適当に変換して秘密鍵とする。この秘密鍵を鍵生成装置に入力し、この秘密鍵と一対の組みをなす公開鍵を生成する。ただし、少なくとも公開鍵から秘密鍵を再生することは非常に困難である。このような鍵生成アルゴリズムは複数存在する。本実施形態では、その一例としてエルガマル法（
【非特許文献２】参照。）を採用することが望ましい。
【非特許文献２】A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms; Taher Elgamal; IEEE Transactions on Information Theory, vol. 31 Issue 4, 1985, pp. 469-472.
【００９５】
このとき、鍵生成装置がエルガマル型なのでエルガマル型チップウォレットと呼ぶことが出来る。
【００９６】
エルガマル法では、まず大きな素数ｐとその原始根ｇを決める。素数ｐおよび原始根ｇは設計仕様に応じて選択し、鍵生成装置あるいはチップウォレット内の別のモジュールに保存しておくことができる。次に、ｐ−１より小さい非負整数ｘをランダムに選び秘密鍵とする。本実施形態では、一例として、チップ認証から適当なコード変換を施し秘密鍵を得ることができる。続いて、前記原始根ｇのｘ乗をｐで割った余りを公開鍵とすし、秘密鍵はチップウォレット内に閉じ込めて置く。公開鍵のみ外部で利用可能にし、ネットワーク上のアカウントの論理アドレスとする。  
【００９７】
前記大きな素数ｐを準備する方法は、一例として、チップ認証から適当な任意の整数ｋを引き算し、素数かどうかを確かめる。素数であればその素数をｐとする。素数でなければ更に適当な任意の整数ｋを引き算して素数かどうかを確かめる。これを繰り返し、素数ｐを決める。
【００９８】
このとき、前記ｋをセキュリティパラメータとすることができる。たとえば、物理乱数発あるいは疑似乱数などを用いて一定の範囲内の整数からランダムに選択し、それをセキュリティパラメータｋとすることが可能である。あるいは、チップ認証とｋを何らかの方法で合成したものが素数になるまで合成を繰り返すことが可能である。いずれにしろ、チップ認証が数値として十分大きい限りｐも十分大きな素数となり、セキュリティパラメータｋの選択もより多様になる。
【００９９】
物理乱数を発生する物理乱数発生装置は、チップウォレットの中に含めることも出来るし、あるいは、チップウォレットの外部に設置したものを採用することも可能である。後者の場合外部入力として乱数が与えられる。ソフトウェアで疑似乱数を発生する場合も同様である。ここで、チップ認証とｋの合成方法は、加減乗除すべての算術演算およびその組み合わせ、あるいは、可能な限りあらゆるビット演算が可能である。いずれにしろ、チップ認証、あるいは、外部入力が数値として十分大きい限りｐも十分大きな素数となる。
【０１００】
いずれにしろ、チップ認証から素数ｐを求める方法は、一例として、図３０のように、前記チップ認証と適当に与えられた変数（一例としてｋ）を合成する合成ステップと、合成された数が素数であるかどうかを判定する判定ステップとから構成され、実際に素数が得られるまで前記合成ステップおよび前記判定ステップを繰り返すことである。
【０１０１】
更に本実施形態では、一例として、チップ認証をｐ−１で割った余りを秘密鍵とすることができる。これを鍵生成装置に入力して公開鍵を生成する。
【０１０２】
あるいは、チップウォレットを構成する半導体チップの内部の別の一部からチップ認証に内部入力を加えても良い。すなわち、チップ認証と前記内部入力を何らかの演算で合成したものをｐ−１で割った余りを秘密鍵とすることができる。これを鍵生成装置に入力して公開鍵を生成する。
【０１０３】
前記合成方法は各種多様である。たとえば、足し算、引き算、掛け算、割り算、これら算術演算の組み合わせ、論理演算、その他可能な限りのあらゆるビット演算を活用することが可能である。
【０１０４】
図３３は、図１のブロックチェーンにチップウォレットを連結させる方法の一例を示すものである。ただし、一例として、チップウォレットはエルガマル型を採用している。
【０１０５】
ここでは、送金（N-2、N-1）をノード（N-2）からノード（N-1）に対して行い、送金（N-１、N）をノード（N-１）からノード（N）に対して行っている。図１と同様に、各ノードは公開鍵、ハッシュ値、電子署名からなるアカウントを下段に備えている。これに対し上段には、鍵生成装置、認証装置、および秘密鍵から構成されるチップウォレットを備えている。ただし、Nはノードに紐づけされた自然数であり、ノード（N）はチップウォレット（Ｎ）とアカウント（Ｎ）から構成される。
【０１０６】
具体的に働き方を見るため、右端のノード（N）に着目する。ハッシュ値（N-1）はアカウント（Ｎ）の中身であり、一つ前のノード（N-1）で次の方法により生成する。まず、アカウント（N-1）のネットワーク上の論理アドレスである公開鍵（N-1）、アカウント（N-1）の中身であるハッシュ値（N-２）、および電子署名（N-2）をまとめてハッシュ化してハッシュ値（N-1）を得る。ハッシュ化にはハッシュ関数を用いればよい。ハッシュ関数は、MD２、MD4、MD5、RIPE-MD160、SHA-256、SHA-384、SHA-512など多数存在し、このうち一例としてビットコインではSHA-256を使用している。  
【０１０７】
ノード（N-1）は、アカウント（N）のネットワーク上の論理アドレスである公開鍵（N）を取得し、前記ハッシュ値（N-1）と一緒に秘密鍵（N-1）で暗号化する。それを電子署名（N-1）とし、ハッシュ値（N-1）と共にアカウント（N）に送付する。アカウント（N）では、公開鍵（N）、ハッシュ値（N-1）および電子署名（N-1）をまとめてハッシュ化し、ハッシュ値（N）を生成し、電子署名（N）と共にアカウント（N+1）に転送する。電子署名（N-2）および電子署名（N）の生成方法は、電子署名（N-1）の生成方法と同様なので、説明を省略する。  
【０１０８】
このように、秘密鍵がチップウォレット含まれていること以外、図１のビットコインの説明とまったく同様である。したがって、本発明は従来のブロックチェーンと完全な互換性がある。
【０１０９】
一方、図１との決定的な違いはチップウォレットの存在にある。下段のアカウントの中に納まっている公開鍵は、上段のチップウォレットによって所定の物理的生成プロセスを用いて生成されたものであり、対応するチップウォレットに閉じ込めれている秘密鍵と一組の対をなすものである。さらにチップウォレットは物理的実態である半導体チップ、チップセット、あるいはボード等であり、論理的存在とは異なる。
【０１１０】
あるいは、前記秘密鍵は、電子署名を生成する際に生成し、電子署名の生成が終わった後消去することも可能である。いずれにしろ、チップウォレットの外部に出なければ「閉じ込められている」のと同様であり、本発明を特徴づける概念を逸脱しない。
【０１１１】
以上秘密鍵および公開鍵の生成方法としてエルガマル法を仮定し、（第二の実施形態）を説明して来た。ただし、これはあくまで一例に過ぎず、鍵生成装置がチップ認証あるいはチップ認証に関連づけられた何らかの入力を受け入れ公開鍵を生成する限り他のどのようなアルゴリズムによる鍵生成方法を採用しても構わない。
（第三の実施形態）
【０１１２】
図３４−３６は、チップウォレットに外部入力を入力する方法の一例を説明するものである。図３４では、チップウォレットのネットワーク上の論理アドレスである公開鍵と一対をなす秘密鍵がチップウォレットに含められている。図３５は、RSA型チップウォレットを採用する一例を示している。図３６は、エルガマル型型チップウォレットを採用する一例を示している。このようにチップウォレットは、一例として図２９のようなRSA型チップウォレットであり、あるいは、別の一例として図３２のようなエルガマル型チップウォレットであることが可能である。あるいは、更に別の一例として他の暗号鍵生成アルゴリズムを採用したチップウォレットであることも可能である。
【０１１３】
図３４のようにチップウォレットの外部から外部入力を入力し、生成される電子署名を変更することが可能である。あるいは、図３５あるいは図３６のように、外部入力を鍵生成装置に入力し、生成される秘密鍵と公開鍵のペアを変更することが可能である。このような特徴は、同じチップウォレットを複数のアカウントで共有するときに便利である。すなわち、外部入力が異なればチップウォレットが同じでも異なるアカウントとなる。またチップウォレットが異なれば、同じ外部入力を入力しても異なるアカウントである。
【０１１４】
一例として、外部入力とはネットワーク上で動作する何らかのアプリを起動するためのパスコード、PINコード、バーコード、QRコード（登録商標）などのデジタルコード情報、指紋情報、静脈情報、網膜情報、DNA情報、その他前記アプリの正規ユーザーを特定する何らかの生体情報、正規ユーザーの音声や画像などから抽出した個人を特徴できる音声・画像情報、正規ユーザーの身体的特徴などから抽出した個人を特徴できる身体情報、その他正規ユーザーを特徴できる個人情報などである。
【０１１５】
別の一例として、外部入力とはネットワーク上で動作する何らかのアプリが必要に応じてユーザーに要求するパスコード、PINコード、バーコード、QRコード（登録商標）などのデジタルコード情報、指紋情報、静脈情報、網膜情報、DNA情報、その他前記アプリの正規ユーザーを特定する何らかの生体情報、正規ユーザーの音声や画像などから抽出した個人を特徴できる音声・画像情報、正規ユーザーの身体的特徴などから抽出した個人を特徴できる身体情報、その他正規ユーザーを特徴できる個人情報などである。
【０１１６】
更に別の一例として、外部入力とはネットワーク上で動作する何らかのアプリがインストールされている情報端末を起動するためのパスコード、PINコード、バーコード、QRコード（登録商標）などのデジタルコード情報、指紋情報、静脈情報、網膜情報、DNA情報、その他前記アプリの正規ユーザーを特定する何らかの生体情報、正規ユーザーの音声や画像などから抽出した個人を特徴できる音声・画像情報、正規ユーザーの身体的特徴などから抽出した個人を特徴できる身体情報、その他正規ユーザーを特徴できる個人情報などである。  
【０１１７】
あるいは、更に別の一例として、外部入力とは何等かの物理的プロセスにより認証装置を構成する半導体チップに固有な状態で生成される物理乱数を取得するための特殊モード取得コードなどである。ここで特殊モード取得コードは、少なくともチップ内部のデータに対するアクセスモード、アドレス、動作モードを指定するコードである。
【０１１８】
あるいは、外部入力とは、上記複数の外部入力の組み合わせにより構成されるものであても良い。
【０１１９】
また、予めチップウォレット内部に保存された内部入力を外部入力に合成して利用することも可能である。この合成方法は、加減乗除あるいはそれらの組み合わせ、あるいは可能な限りあらゆるビット演算が可能である。
【０１２０】
一例として、チップ認証と外部入力あるいは内部入力を何らかの方法で合成し整数を得る。この整数から任意の整数ｋを引き算し、素数かどうかを確かめる。素数であればその素数をｐとする。素数でなければ更にｋを引き算して素数かどうかを確かめる。これを繰り返して素数ｐを決める。この素数は、前記RSA型鍵生成装置でも前記エルガマル型鍵生成装置でも利用することが可能である。
【０１２１】
このとき、前記ｋをセキュリティパラメータとすることができる。
【０１２２】
一例として、セキュリティパラメータは、内部入力としてチップウォレット内部に保存しておくことが可能である。
【０１２３】
一例として、セキュリティパラメータは、チップウォレット内部で生成することが可能である。この場合セキュリティパラメータは内部入力と見なすことが出来る。
【０１２４】
一例として、セキュリティパラメータは、外部入力としてチップウォレットに外部から与えることが可能である。
【０１２５】
一例として、セキュリティパラメータは、物理乱数あるいは疑似乱数などを用いて一定の範囲内の整数からランダムに選択することが可能である。
【０１２６】
物理乱数を発生する物理乱数発生装置は、チップウォレットの中に含めることも出来るし、あるいは、チップウォレットの外部に設置したものを採用することも可能である。前者の場合物理乱数が内部入力として与えられる。後者の場合物理乱数が外部入力として与えられる。
【０１２７】
チップウォレット外部でソフトウェアを使って疑似乱数を発生する場合、この疑似乱数は外部入力と見なすことが出来る。チップウォレット内部でソフトウェアを使って疑似乱数を発生する場合、この疑似乱数は内部入力と見なすことが出来る。
【０１２８】
いずれにしろ、チップ認証および外部入力あるいは内部入力から素数ｐを求める方法は、一例として、図３０のように、前記チップ認証と適当に与えられた変数（一例としてセキュリティパラメータ）を合成する合成ステップと、合成された数が素数であるかどうかを判定する判定ステップとから構成され、実際に素数が得られるまで前記合成ステップおよび前記判定ステップを繰り返すことである。
【０１２９】
更に別の一例として、外部入力をを原始根ｇとすることができる。
【０１３０】
あるいは別の一例として、外部入力と内部入力を何らかの方法で合成したものを原始根ｇとすることが可能である。この合成方法は、加減乗除すべての算術演算およびその組み合わせ、あるいは、可能な限りあらゆるビット演算が可能である。
（第四の実施形態）
【０１３１】
前記チップ認証（一例として図２９−３３、図３５、および図３６のチップ認証）は、物理的実態を有する半導体チップ内のセルアレイから抽出した何らかの物理的乱雑さより合成できる。このようにチップ認証を生成する半導体チップを認証チップと呼ぶ。
【０１３２】
図３７は、ワード線５０３およびビット線９０２からなるセルアレイの一例である。ワード線５０３およびビット線９０２が交差したところに認証素子９７７が配置している。この例では、行数（ワード線数）はＮであり、列数（ビット線数）はＭである。ただし、行と列はいつでも入れ替え可能である。
【０１３３】
一例として、認証素子９７７はそれぞれ少なくとも二つの端子（第一の端子および第二の端子）を持ち、ワード線５０３およびビット線９０２の一方が前記第一の端子に接続し、他方が前記第二の端子に接続する。
【０１３４】
認証素子９７７は、図３８のように抵抗９８５である。あるいは図３９のようにキャパシタ９８２である。あるいは図４０のようにＰＮ接合９８６である。あるいは図４１のようにショットキー接合９８７である。あるいは図４２のようにトランジスタ９８３である。あるいは図４３のようにトランジスタ９８３およびキャパシタ９８２からなるＤＲＡＭセル９８４である。あるいは図４４のようにトランジスタ９８３および可変抵抗９８１からなる可変抵抗メモリセル９８９である。
【０１３５】
変抵抗９８１が電圧で抵抗値を制御する場合、これはReRAMセルである。可変抵抗９８１が加熱によって抵抗値を制御する場合、これはPCRAMである。あるいは図４５のようにトランジスタ９８３および磁気抵抗９８０からなる磁気抵抗メモリセル９９０である。この磁気抵抗がGMR膜である場合、これはMRAMセルである。この磁気抵抗がSTT膜である場合、これはSTT−MRAMセルである。あるいは図４６のように電荷蓄積層付き不揮発性メモリセル９８８である。電荷蓄積層は電荷トラッピング層でも浮遊ゲートでも良い。
【０１３６】
あるいは、図４７のように意図的にビット線端子を排除したＮＡＮＤ型配列上に配置した電荷蓄積層付き不揮発性メモリセル９８８である。あるいは、図４８のように意図的にビット線端子を排除したＮＡＮＤ型配列上に配置したトランジスタ９８３である。
【０１３７】
図４９および図５０は、ビット線９０２およびワード線５０３を使って認証素子９７７にアクセスする別の例である。この例における認証素子９７７の具体例は上述したものと同様であり、詳細な説明を省略する
【０１３８】
いずれにしろ、このようにワード線５０３およびビット線９０２と認証素子９７７により形成されるセルアレイからチップに固有で物理的にランダムな認証を取得することができる。
【０１３９】
以下その方法の一例を具体的に説明する。
【０１４０】
まずワード線デコーダを使ってワード線を選択し、ビット線デコーダを使ってビット線を選択し、それぞれ選択されたワード線とビット線に関連する認証素子を選択セルとする。
【０１４１】
ここで、認証素子は大きく分けて２種類ある。第一の種類は破壊されると読み出し電圧を印加した際電流を流しやすく、破壊されていないと電流を流しにくい。
【０１４２】
第二の種類は破壊されると読み出し電圧を印加した際電流を流しにくく、破壊されていないと電流を流しやすい。
【０１４３】
ここで、破壊判定された認証素子からなるビットセル（破壊ビット）のアドレスはワード線番号およびビット線番号からなる配列である。セルアレイ上の認証素子の集団から複数のセルを選択し読み出すと、一般に複数の破壊ビットが見つかる。これら複数の破壊ビットのアドレスの分布は物理的に乱雑である。したがって、これら複数の破壊ビットのアドレスを所定の方法で並べてコード表現すれば破壊ビットの分布に応じたコード（チップ認証）が得られる。破壊ビットの発生が物理的にランダムである限りチップに固有で物理的にランダムな認証コードを取得することができる。
【０１４４】
破壊ビットの数をＱとし、選択セルの数をＲとする。ただし、ＱはＲより小さな数である。このとき認証コードの場合の数はＲからＱを選ぶ場合の数に等しい。すなわち、Ｒが十分大きく破壊ビットの存在確率が無視できるほど小さくなければチップ認証の場合の数は非常にに大きな数になる。
【０１４５】
Ｑを１ギガ（１０億）とし、Ｒを１キロ（１０００）とすると、チップ認証の場合の数はおよび１０の６４３２乗に２．５を掛けた程度になる。すなわち、トリリオンノードに必要な１兆個（１０の１２乗）の認証チップを生産したとき偶然に二つのチップ認証が同じになる確率が１０の６４２０乗に２．５を掛けた数の逆数（４Ｅ−６４２１）になることを意味している。認証チップを１００兆個供給したとしても偶然に二つのチップ認証が同じになる確率は１０の−６４１９乗の４倍（４Ｅ−６４１９）になる。
【０１４６】
このように、チップウォレットをどれほど大量に生産したとしても、偶然に二つのチップウォレットのチップ認証が同じになる確率は現実的にほぼゼロである。
【０１４７】
また、Ｑが１ギガでＲが１キロというのは不良率１００万分の１に相当する。すなわち、認証チップがシックスシグマ（１００万分の３．４以下）を達成するほど不良率が低いと仮定しても、偶然に二つのチップウォレットのチップ認証が同じになる確率はほぼゼロであると言える。
【０１４８】
また、シックスシグマ（１００万分の３．４以下）に沿って考えると、１ギガビットのメモリチップ製品において１００万分の１以下に相当する１キロビットを他の目的に使用することは何ら問題にならない。したがって、１キロビットを認証素子用のセルアレイに割り当て、認証セル用のセルアレイに何らかのストレスを印加してちょうど半分を破壊することにする。このとき、チップ認証の場合の数は１０の２９９乗の２．７倍程度になる。すなわち、チップ認証を１００兆個供給したとしても偶然に二つのチップウォレットのチップ認証が同じになる確率は１０の−２８５乗の２．７倍（３．７Ｅ−２８６）になる。すなわち、現実的にほぼゼロである。
【０１４９】
前記ストレスは、電気的ストレス、光学的ストレス、機械的ストレス、電磁場的ストレスなど多種多様である。
【０１５０】
電気的ストレスの一例は、まず認証セル用のセルアレイのすべてのセルを同時に選択し、全選択セルに高電圧パルスを印加する。各セルを読み出し、非破壊ビットの数が破壊ビットの数より少なかった場合非破壊ビットのみ選択して２回目の高電圧パルスを印加する。非破壊ビットの数が破壊ビットの数とほぼ同数になるまでこの作業を繰り返す。
【０１５１】
光学的ストレスの一例は、アセンブリする前に認証素子用のセルアレイにＸ線や紫外線などを一定量照射する。照射量は、非破壊ビットと破壊ビットの数がほぼ同数になる程度に調整する。
【０１５２】
機械的ストレスの一例は、認証チップを湾曲させることである。ただし、認証素子用のセルアレイ以外にも同様にストレスが印可されるので、チップ全体を認証素子用のセルアレイとするときにのみ有効な方法である。
【０１５３】
電磁場的ストレスの一例は、認証チップを強い電磁場に晒すことである。ただし、認証素子用のセルアレイ以外にも同様にストレスが印可されるので、チップ全体を認証素子用のセルアレイとするときにのみ有効な方法である。
【０１５４】
いずれにしろ、認証セルの破壊が確率的に発生する限りチップ認証は物理的にランダムに生成される。また、偶然に二つのチップ認証が同じになる確率が現実的にほぼゼロである限り、図２９−３３、図３５、および図３６に記載のチップ認証として十分通用する。
【０１５５】
このように、意図的にランダムに破壊することでチップ認証を生成することが可能である。
（第五の実施形態）
【０１５６】
一部のメモリ製品ではメモリセルの中に予め一定の割合以下で不良ビットが発生することを考慮に入れ、不良ビットが発生したビット線をビット線ごと入れ替えるための冗長ビット線を備えている。このような不良の発生原因は多種多様であり、製造段階における製造ばらつきや部材の物理的な形成過程において自然発生するばらつきに依存する。冗長ビット線は通常メモリチップ製品のビット容量には含まれない。一例として図５１参照。
【０１５７】
図５１では、行方向に配列したビット線群を二つのグループに分ける。一方を複数の冗長ビット線からなる冗長ビット線群とし、他方を正規ビット線からなる正規ビット線群とする。正規ビット線群の行数をＮとし、冗長ビット線群の行数をＬとする。ＮもＬも非負整数であり、ＮはＬより大きい。メモリ製品のビット容量は、この正規ビット線群に含まれるセル数に相当する。
【０１５８】
出荷前検査で正規ビット線群の中に一定の条件を満たす不良ビットが発生していることが判明すると、その不良ビットを含む正規ビット線のアドレスを冗長ビット線群の中の一つの冗長ビット線に割り当てる。このような読み換え（図中読み換えＡ、読み替えＢ…）を、不良ビットを含む正規ビット線それぞれに対して行い、不良ビットを実質的に取り除くことが可能となる。
【０１５９】
より具体的には、出荷前検査で不良が見つかったビット線のビット線番号とそのビット線を読み換える冗長ビット線のビット線番号を周辺領域に混載している周辺メモリ（一例としてフューズメモリなど）に記録する。本実施形態では、この周辺メモリに記録された情報が前記チップ認証と同じ役割を果たす。
【０１６０】
このような条件を満たすメモリチップの一例としてＤＲＡＭがあげられる。そのほかフラッシュメモリ、相変化メモリ、抵抗変化メモリ、磁気抵抗変化メモリ（ＭＲＡＭ）、スピントルク型ＭＲＡＭ（STT-MRAM）等が考えられる。
【０１６１】
出荷前検査で発覚する回復不能の不良ビットの数をｍとすると、その場合の数はＮの中からｍを選ぶ組み合わせである。すなわち、Ｃ（Ｎ，ｍ）である。それぞれをどの冗長ビット線に読み換えるかを考慮に入れると、場合の数は更にｍの階上とＬの中からｍを選んで並べる順列の数を掛け合わせなければならない。すなわち、Ｃ（Ｎ，ｍ）Ｐ（Ｌ，ｍ）である。つまり、過小評価しても場合の数はＣ（Ｎ，ｍ）程度ある。
【０１６２】
典型的な４ギガビットDRAM製品の場合、たとえば、全ビット線数６５５万本に対して冗長ビット線数は１５万３千本程度である。すなわち、何らかの事情によって正規ビット群内のビット線に不良ビットが発生する行数は、最大１５万３千程度まで量産DRAMとして許容できる。このとき冗長ビット線への再割り付けの場合の数は６５５万の内から１５万３千を選ぶ組み合わせに等しい。計算すると約１０の３１５、２８９乗になる。すなわち、認証チップを１００兆個供給したとしても偶然に二つのチップ認証が同じになる確率は１０の−３１５、２７５乗（１Ｅ−３１５、２７５）になる。こうして、偶然に二つのチップウォレットのチップ認証が同じになる確率は現実的にほぼゼロであることが判る。
【０１６３】
なお、本実施形態ではビット線とワード線を入れ替えることも可能である。すなわち、ビット線の代わりにワード線を行方向に配置した場合では、ワード線数４４０万本から３、０４４本を選ぶ組み合わせの数を計算すれば良い。これは、およそ２．９×１０の１０、９３８乗となる。前者の場合の数より大分少なくなるが、それでも恐ろしく大きな数である。すなわち、認証チップを１００兆個供給したとしても偶然に二つのチップ認証が同じになる確率は１０の−１０、９２４乗（１Ｅ−１０、９２４）になる。こうして、偶然に二つのチップウォレットのチップ認証が同じになる確率は現実的にほぼゼロであることが判る。
【０１６４】
こうして、非常に大きな情報エントロピーを有するチップ認証を生成することが可能となる。ここで着目すべきことは、本実施形態ではチップ認証を生成するために１ビットも余計に割いていないことである。すなわち、冗長ビット線（あるいは冗長ワード線）は既に製品メモリチップに搭載されているものであり、読み替え情報を記録する周辺メモリも同様である。
（第六の実施形態）
【０１６５】
上記すべての実施形態は、すべてチップウォレット（例として、図２９あるいは図３２）を前提としている。ただし、上述したようにチップウォレットは単体の半導体チップであっても複数の半導体チップを組み合わせたチップセットであっても構わない。あるいは、一つ以上の半導体チップと他の電子部品を組み合わせた装置でも良い。あるいは、一つ以上の半導体チップと磁気メディアを組み合わせた装置でもよい。あるいは、一つ以上の半導体チップと光学部品や光学メディアを組み合わせた装置でもよい。あるいは、一つ以上の半導体チップと機械部品を組み合わせた装置でもよい。あるいは、一つ以上の半導体チップと化学材料を組み合わせた装置でもよい。あるいは、電子部品と磁気メディアを組み合わせた装置でもよい。あるいは、電子部品と光学部品や光学メディアを組み合わせた装置でもよい。あるいは、電子部品と機械部品を組み合わせた装置でもよい。あるいは、電子部品と化学材料を組み合わせた装置でもよい。あるいは、機械部品と磁気メディアを組み合わせた装置でもよい。あるいは、機械部品と光学部品や光学メディアを組み合わせた装置でもよい。あるいは、機械部品と化学材料を組み合わせた装置でもよい。
【０１６６】
いずれにしろ、このような装置を総称してハードウェアと呼ぼう。このようなハードウェアは、ネットワーク上の論理ノードと異なり物理的実態を備えている。したがって、このハードウェアの中に秘密鍵を閉じ込めておけば上記すべての実施形態を実現することが可能である。
【０１６７】
秘密鍵を閉じ込めネットワーク上のアカウントに紐づけられるハードウェアをハードウォレットと呼ぼう。ただし、秘密鍵をハードウェアの中に閉じ込めておくためには幾つかの工夫が必要である。
【０１６８】
図５２は、このようなハードウォレットの一例を示す図面である。閉じ込められた秘密鍵（N-1）を鍵生成装置に入力し、公開鍵（N-1）を生成する。この公開鍵（N-1）はハードウォレット外部に取り出され、ネットワーク上のアカウント（N-1）の論理アドレスとなる。自明なので特に図示しないが、アカウント（N-1）は、図３３、図３４および図３６と同様に、公開鍵（N-1）と共にアカウント（N-1）の中身であるハッシュ値（N-2）および電子署名（N-2）を構成要素とする。
【０１６９】
この鍵生成装置はエルガマル型であり、このハードウォレット（N-1）はエルガマル型ハードウォレットである。ハードウォレット（N-1）は、アカウント（N-1）と共にネットワーク上の論理ノードであるノード（N-1）を構成する。また、図５３のように、公開鍵（N-1）を生成する際鍵生成装置に外部入力を加えることも可能である。この外部入力は、図３６で説明したものと同様であるので詳細な説明は省略する。
【０１７０】
一例として、秘密鍵（N-1）はハードウォレット（N-1）を構成する半導体チップに固有のチップ認証である。この場合ハードウォレット（N-1）はチップウォレット（N-1）である。
【０１７１】
秘密鍵（N-1）は、図５４のように、ハードウォレット（N-1）内部で内部入力（N-1）より生成することが可能である。内部入力（N-1）から秘密鍵（N-1）を生成する方法は、任意の方法で構わない。一例として、その生成方法は、秘密鍵のコード形式を整えるためのフォーマット変換である。一例として、その生成方法は、共通鍵暗号などである。この場合、図５３などのような外部入力から共通鍵（パスコード）を入力し、暗号化された内部入力（N-1）を秘密鍵（N-1）とすることが出来る。一例として、内部入力（N-1）は、化学材料、光学メディアおよび光学部品、磁気メディアおよび磁気部品、機械部品などから取り出した固有の情報である。あるいは、図５３の外部入力と併用し、外部から任意の操作を加えた上で内部入力（N-1）より秘密鍵（N-1）を生成することも可能である。また、内部入力（N-1）には、秘密鍵（N-1）を生成するアルゴリズムの操作に影響するパラメータ等を含めることも可能である。
【０１７２】
一例として、内部入力（N-1）はハードウォレット（N-1）を構成する半導体チップに固有のチップ認証である。この場合ハードウォレット（N-1）はチップウォレット（N-1）である。
【０１７３】
図５５は、ハードウォレット（N-1）にRSA型鍵生成装置を搭載した一例である。そのため、このハードウォレットはRSA型ハードウォレットである。
【０１７４】
ハードウォレット（N-1）は、少なくとも内部入力（N-1）と鍵生成装置を備えている。内部入力（N-1）をRSA型鍵生成装置に入力し、一組の秘密鍵（N-1）と公開鍵（N-1）を生成する。この公開鍵（N-1）はハードウォレット外部に取り出され、ネットワーク上のアカウント（N-1）の論理アドレスとなる。自明なので特に図示しないが、このアカウント（N-1）は、図３１、図３４および図３５と同様に、公開鍵（N-1）と共にアカウント（N-1）の中身であるハッシュ値（N-2）および電子署名（N-2）を構成要素とする。
【０１７５】
ハードウォレット（N-1）は、アカウント（N-1）と共にネットワーク上の論理ノードであるノード（N-1）を構成する。また、図５６のように、秘密鍵（N-1）および公開鍵（N-1）を生成する際鍵生成装置に外部入力を加えることも可能である。この外部入力は、図３５などで説明したものと同様であるので詳細な説明は省略する。
【０１７６】
図５４−図５６のいずれの場合でも、一例として、内部入力（N-1）はハードウォレット（N-1）を構成する半導体チップに固有のチップ認証である。この場合ハードウォレット（N-1）はチップウォレット（N-1）である。
【０１７７】
あるいは、図５４−図５６のいずれの場合でも、内部入力（N-1）はハードウォレット（N-1）を構成する半導体チップに固有のチップ認証を含むことが出来る。この場合ハードウォレット（N-1）はチップウォレット（N-1）であり、内部入力（N-1）は、秘密鍵（N-1）および公開鍵（N-1）を生成する工程に影響を与えるパラメータ等を含めることが可能である。このようなパラメータ等は、システム上の理由、コードフォーマット上の理由、アルゴリズム制御上の理由などによって決まる。
【０１７８】
複数のハードウォレットから構成されるシステムは、複数類のハードウォレットで構成することが可能である。一例として、RSA型ハードウォレットとエルガマル型ハードウォレットの双方を含むことが可能である。
【０１７９】
いずれにしろ、ハードウォレット（N-1）は少なくとも外部の公開鍵（N-1）と一対の組みを成す秘密鍵（N-1）を閉じ込めている。更に、アルゴリズムの種類に関わらず少なくともこの秘密鍵（N-1）と一対の組みを成す公開鍵（N-1）を生成する鍵生成装置を備えている。こうして、これまでに延べて来たすべての条件を兼ね備えたハードウォレットの一般形が図５７である。言い換えると、図５７の一例が図５２−図５６のそれぞれである。図５８は、この一般形のハードウォレットを使って構成したアカウント間のデジタルデータ通信（一例として仮想通貨の送金）の仕組みを説明するものである。自明のなので詳細な説明を省略するが、図５８は、図５３−図５６の外部入力および内部入力を含めることも可能である。したがって、図３０、および、図３４−図３６の事例も含めることが可能である。また、ハードウォレットがチップウォレットである場合、図５７の一例は、図２９あるいは図３２などである。
【０１８０】
図５８では、送金（N-2、N-1）をノード（N-2）からノード（N-1）に対して行い、送金（N-１、N）をノード（N-１）からノード（N）に対して行っている。図１と同様に、各ノードは公開鍵、ハッシュ値、電子署名からなるアカウントを下段に備えている。これに対し上段には、鍵生成装置、チップ認証および秘密鍵から構成されるチップウォレットを備えている。ただし、Nはノードに紐づけされた自然数であり、ノード（N）はチップウォレット（Ｎ）とアカウント（Ｎ）から構成される。この点で、図１で説明した従来のブロックチェーンの送金処理とは異なる。
【０１８１】
具体的に働き方を見るため、右端のノード（N）に着目する。ハッシュ値（N-1）はアカウント（Ｎ）の中身であり、一つ前のノード（N-1）で次の方法により生成する。まず、ノード（N-1）は、アカウント（N-1）のネットワーク上の論理アドレスである公開鍵（N-1）、アカウント（N-1）の中身であるハッシュ値（N-２）、および電子署名（N-2）をまとめてハッシュ化してハッシュ値（N-1）を得る。ハッシュ化にはハッシュ関数を用いればよい。ハッシュ関数は、MD２、MD4、MD5、RIPE-MD160、SHA-256、SHA-384、SHA-512など多数存在し、このうち一例としてビットコインではSHA-256を使用している。
【０１８２】
更にノード（N-1）は、アカウント（N）のネットワーク上の論理アドレスである公開鍵（N）を取得し、ハッシュ値（N-1）と一緒に秘密鍵（N-1）で暗号化して電子署名（N-1）を生成する。これを前記ハッシュ値（N-1）と共にアカウント（N）に送付する。アカウント（N）では、公開鍵（N）、ハッシュ値（N-1）および電子署名（N-1）をまとめてハッシュ化してハッシュ値（N）を生成し、電子署名（N）と共にアカウント（N+1）に転送する。電子署名（N-2）および電子署名（N）の生成方法は、電子署名（N-1）の生成方法と同様なので、説明を省略する。
【０１８３】
このように、秘密鍵がハードウォレット含まれていること以外、図１のビットコインの説明とまったく同様である。したがって、本発明は、従来のブロックチェーンと完全な互換性がある。
【０１８４】
一方、図１との決定的な違いは、ハードウォレットの存在にある。下段のアカウントの中に納まっている公開鍵は、上段のハードウォレットによって所定の物理的・電子的・化学的・光学的・機械的・磁気的生成プロセスを用いて生成されたものである。上述したように、電子デバイスである認証素子の破壊や不良ビットなどは物理的にランダムに発生する。また、公開鍵は対応するハードウォレットに閉じ込めれている秘密鍵と一組の対をなすものである。さらに、ハードウォレットは物理的実態であるハードウェアであり論理的存在とは異なる。
【０１８５】
あるいは、前記秘密鍵は、電子署名を生成する際に生成し電子署名の生成が終わった後消去することも可能である。いずれにしろ、ハードウォレットの外部に出なければ「閉じ込められている」のと同様であり、本発明を特徴づける概念から逸脱しない。
【０１８６】
秘密鍵および公開鍵の生成方法は複数種存在する。一例としてＲＳＡ法やエルガマル法が考えられる。ただし、これはあくまで一例に過ぎず、鍵生成装置が、ハードウォレットを構成するハードウェアに個別に関連づけられた何らかの入力を受け入れ秘密鍵と公開鍵を生成する限り他のどのようなアルゴリズムによる鍵生成方法を採用しても構わない。
【０１８７】
鍵生成装置が受け入れる、ハードウォレットを構成するハードウェアに関連づけられた何らかの入力とは、所定の物理的・電子的・化学的・光学的・機械的・磁気的生成プロセスを用いて生成されたものである。ただし、前記入力は、コード変換して取り出す時ハードウェアに固有の乱雑さを反映することが望ましい。
【０１８８】
一例として、前記乱雑さは、半導体チップに適当なストレスを印加して発生させた破壊素子のセルアレイ上の制御不能な分布を起因とする乱雑さである。
【０１８９】
一例として、前記乱雑さは、半導体チップの製造段階に混入する不良ビットのセルアレイ上の制御不能な分布を起因とする乱雑さである。
【０１９０】
一例として、前記乱雑さは、装置表面、基板表面、ウェハー表面等に光学材料を塗布する際化学的に混入する分子的欠陥の制御不能な分布に起因する光学的乱雑さである。  
【０１９１】
一例として、前記乱雑さは、装置表面、基板表面、ウェハー表面等に磁気材料を塗布する際化学的に混入する分子的欠陥の制御不能な分布に起因する磁気的乱雑さである。
【０１９２】
一例として、前記乱雑さは、わずかな誤差を含む複数の部品からなる精密機械の制御不能な機械的動作誤差に起因する機械的乱雑さである。
【０１９３】
そして、このようなハードウォレットは、下記の条件を満たすものとする。
（７）  異なる二つのハードウェアに納められた二つの秘密鍵は互いに異なるものとする。
（８）  一つのハードウェアに一つの秘密鍵が納められるものとする。
（９）  ハードウェアに納められている秘密鍵はハードウエアの外部に取り出すことができないものとする。
（１０）    可能であれば、秘密鍵はハードウェアに固有の乱雑さと何らかの方法で連携しているものとする。したがって、秘密鍵は、閉じ込められるハードウェアに固有である。
【０１９４】
上記条件（７）−（１０）は、チップウォレットをハードウォレットに交換すれば、それぞれチップウォレットに関する条件（３）−（６）と同等である。よって、詳しい説明は省略する。
【０１９５】
前記上記（１０）に記載のハードウェアに固有の乱雑さとは、一例として、半導体チップに固有の乱雑さである。たとえば、上述した認証素子の破壊や不良ビットの分布などである。このとき、このハードウェアはチップウォレットであることは自明である。
【０１９６】
あるいは、前記上記（１０）に記載のハードウェアに固有の乱雑さとは、一例として、光学装置あるいは光学材料に固有の乱雑さである。
【０１９７】
あるいは、前記上記（１０）に記載のハードウェアに固有の乱雑さとは、一例として、磁気装置あるいは磁気材料に固有の乱雑さである。
【０１９８】
あるいは、前記上記（１０）に記載のハードウェアに固有の乱雑さとは、一例として、機械装置に固有の乱雑さである。
【０１９９】
あるいは、前記上記（１０）に記載のハードウェアに固有の乱雑さとは、一例として、化学材料に固有の乱雑さである。
【０２００】
図５８のハッシュ値は、ハードウォレットに関連付けているアカウントの間を転送される署名付き処理情報（あるいはデジタル情報）である。この署名付きデジタル情報が貨幣価値のあるものであればビットコインなどのような仮想通貨となるが、それは特殊な一例に過ぎない。また、送金（N,N+1）に必要な作業はすべてアカウント（N）側で完結するので、秘密鍵をハードウォレット（N）に閉じ込めておくことが可能である。
【０２０１】
あるいは、図３１、図３３、図３５および図３６のハッシュ値は、チップウォレットと関連付けてられているアカウントの間を転送される署名付き処理情報（あるいはデジタル情報）である。この署名付きデジタル情報が貨幣価値のあるものであればビットコインなどのような仮想通貨となるが、それは特殊な一例に過ぎない。また、送金（N,N+1）に必要な作業はすべてアカウント（N）側で完結するので、秘密鍵をチップウォレット（N）に閉じ込めておくことが可能である。
【０２０２】
具体的には、まずアカウント（N）は、アカウント（N）の中身であるハッシュ値（N-1）と公開鍵（N）と電子署名（N-1)をまとめてハッシュ化し、ハッシュ値（N）を生成する。これは、アカウント（N）の内部に一時的に保存できる。次に、処理の転送先であるアカウント（N+1）のネットワーク上の論理アドレスである公開鍵（N+1）を取得する。続いて、アカウント（N）にリンクするハードウォレット（あるいは一例としてチップウォレット）内部に閉じ込めた秘密鍵（N）を用い、ハッシュ値（N）および公開鍵（N+1）をまとめて暗号化する。こうして電子署名（N）を生成する。最後に、生成した電子署名（N）とハッシュ値（N）を共にアカウント（N+1）に送付する。
【０２０３】
したがって、秘密鍵をチップウォレットの外部に出す必要がない。
【０２０４】
こうして、何らかの方法で物理的実態であるハードウェア（一例として半導体チップ）に割り当てられる乱雑さ（一例としてチップ認証）に応じて一対の秘密鍵と公開鍵のペアが生成される。公開鍵はネットワーク上のアカウントの論理アドレスとして利用され、秘密鍵はハードウォレット（一例としてチップウォレット）に閉じ込めることが望ましい。あるいは、秘密鍵は電子署名を生成する度ハードウォレット（一例としてチップウォレット）内部で生成され、電子署名生成後削除されることが望ましい。
（第七の実施形態）
【０２０５】
図５９および６０は、上記（７）−（９）の条件を満たすハードウォレットを仮想通貨の取引所で活用する方法の一例を示すものである。図５９では、顧客から預かった秘密鍵を閉じ込めたハードウェア（ハードウォレット）を何らかの形でサーバーに連絡し、秘密鍵をハードウエア内に閉じ込めたまま電子署名を生成する。一例として、サーバーのインターフェースに所定のフォーマットに従ってマウントすることが望ましい。あるいは、一例として、サーバーを構成するボードの一部に所定のインターフェースに従ってマウントすることが望ましい。あるいは、サーバーを構成するボードの一部に所定のインターフェースに従って接続することが望ましい。
【０２０６】
ただし、図５９は、図２７のチップウォレットをハードウォレットに置き換えたものと同等である。
【０２０７】
なお、ハードウォレットに閉じ込められる秘密鍵は、チップウォレットに閉じ込められる秘密鍵と同様に共通鍵暗号で暗号化することが可能である。
【０２０８】
図６０では、共通鍵暗号を用いて暗号化した秘密鍵を顧客から預かり、ハードウェアに納めてハードウォレットとする。あるいは、固有の内部入力を有するハードウォレットを顧客から預かり、顧客が外部入力する共通暗号鍵（パスコード）で暗号化して秘密鍵を生成する。この秘密鍵はハードウォレット内に閉じ込められる。この場合、図２８のチップウォレットの活用例と同様に、電子署名を生成する際顧客にパスコード（共通鍵）の入力を要求する必要がある。一例として、ネットワークを介して顧客の携帯端末にパスコードの入力を要求し、顧客がパスコードを入力すると顧客の送金処理を代行するために必要な電子署名が生成される。自明なので説明を省くが、顧客がパスコードを入力する端末は、直接間接に限らず、顧客が責任を持ってパスコードを管理できる限りどのような端末であっても構わない。
【０２０９】
図６０は、図２８のチップウォレットをハードウォレットに置き換えたものと同等である。
【０２１０】
図５９および図６０のいずれの場合でも、インターネットを介して、取引所に登録されているアカウント（取引所の内部のアカウント）と取引所の外部に存在するアカウントが一つのネットワークを形成することが出来る。また、上述した方法で生成した電子署名を利用し、図１などで説明したのと同様の方法で、ネットワーク上の任意のアカウント間で仮想通貨の送付を行うことが出来る。従って、取引所に登録されている二つのアカウント同士で仮想通貨を交換することが可能となり、また、取引所に登録されているアカウントから、上述した方法で生成した電子署名を利用し、図１などで説明したのと同様の方法で、インターネットを介してこの取引所の外部の任意のアカウントにも仮想通貨を送付することが可能である。また、取引所の外部の任意のアカウントから、上述した方法で生成した電子署名を利用し、図１などで説明したのと同様の方法で、インターネットを介してこの取引所に登録されているアカウントにも仮想通貨を送付することが可能である。
【０２１１】
このように、本実施形態が提案する取引所に登録されるアカウントは、ハードウォレットと関連付けて管理されることが望ましい。さらに、本実施形態が提案する取引所は、インターネットを介して、本実施形態が提案する取引所に登録されているアカウントと登録されていない外部のアカウントの間で署名付きデジタル情報を交換することが可能である。ただし、アカウントが取引所に登録されているか否かに関わらず、次の条件を満たさなければならない。
（１１）    二つの異なるノードに関連する秘密鍵は互いに異なる。
（１２）    二つの異なるノードに関連する公開鍵は互いに異なる。
（１３）    同一のノードに関連する秘密鍵と公開鍵は、互いに一組を成す。
（１４）    公開鍵は、関連するノードのネットワーク上の論理アドレスであり、アカウント名である。
（１５）    秘密鍵は、関連するノードに閉じ込められており、関連するノードから他のノードにデジタル情報を送付する際に必要となる電子署名を生成するために利用される。
【０２１２】
最後に、本発明の技術範囲は上記実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
【産業上の利用可能性】
【０２１３】
安全かつ利便性の仮想通貨の取引所を運営する情報基盤技術を、より低いコストで提供することが可能となる。
【図面の簡単な説明】
【０２１４】
【図１】ノード（N-2）からノード（N）までの送金の仕組みの一例を説明する図。
【図２】コールドウォレットの一例を説明する図。
【図３】コールドウォレットの一例を説明する図。
【図４】コールドウォレットの一例を説明する図。
【図５】コールドウォレットの一例を説明する図。
【図６】紙上に印字した秘密鍵を所定のリーダーで読み取り電子署名を生成する方法の一例を説明する図。
【図７】紙上に印字した秘密鍵を所定のリーダーで読み取り電子署名を生成する方法の一例を説明する図。
【図８】バイナリ表示した秘密鍵を共通鍵暗号で暗号化したものを紙面に印字してコールドウォレットとする方法の一例を説明する図。
【図９】バーコード表示した秘密鍵を共通鍵暗号で暗号化したものを紙に印字してコールドウォレットとする方法の一例を説明する図。
【図１０】QR表示した秘密鍵を共通鍵暗号で暗号化したものを紙面に印字してコールドウォレットとする方法の一例を説明する図。
【図１１】共通鍵（パスコード）を使ってコールドウォレットから秘密鍵を再生する方法の一例を説明する図。
【図１２】共通鍵（パスコード）を使ってコールドウォレットから秘密鍵を再生する方法の一例を説明する図。
【図１３】共通鍵（パスコード）を使ってコールドウォレットから秘密鍵を再生する方法の一例を説明する図。
【図１４】ノード（N-1）ではオフライン端末で生成した複合化された秘密鍵（N-1）を使って電子署名（N-1）を生成する方法の一例を説明する図。
【図１５】ノード（N-1）ではオフライン端末で生成した複合化された秘密鍵（N-1）を使って電子署名（N-1）を生成する方法の一例を説明する図。
【図１６】オフライン端末で複合化した秘密鍵をオフライン状態にある他のメディアに保存する方法の一例を説明する図。
【図１７】読み取り装置で読み取った秘密鍵をそのままUSBメモリ、光学メディア、磁気メディア、その他半導体メディア（SSDなど）などに保存する方法の一例を説明する図。
【図１８】仮想通貨取引所の運営方法の一例を説明する図。
【図１９】仮想通貨取引所の運営方法の一例を説明する図。
【図２０】仮想通貨取引所の運営方法の一例を説明する図。
【図２１】電子署名を生成する際顧客にパスコード（共通鍵）の入力を要求しない運営方法の一例を説明する図。
【図２２】電子署名を生成する際顧客にパスコード（共通鍵）の入力を要求しない運営方法の一例を説明する図。
【図２３】電子署名を生成する際顧客にパスコード（共通鍵）の入力を要求しない運営方法の一例を説明する図。
【図２４】顧客の秘密鍵を取引所のサーバーのストレージに保存してしまう運営方法の一例を説明する図。
【図２５】協力なデータプロテクションを前提に顧客の秘密鍵を取引所のサーバーのストレージに保存してしまう運営方法の一例を説明する図。
【図２６】取引所のサーバーのストーレジに保管されていた顧客の秘密鍵を独立した一枚の半導体チップに移し閉じ込める概念の一例を説明する図。
【図２７】チップウォレットを用いた仮想通貨の取引所の運営方法の一例を説明する図。
【図２８】チップウォレットを用いた仮想通貨の取引所の運営方法の一例を説明する図。
【図２９】秘密鍵を半導体チップの中に閉じ込めておく方法の一例を説明する図。
【図３０】チップ認証から大きな素数を求める方法の一例を説明する図。
【図３１】ブロックチェーンにチップウォレットを連結させる方法の一例を説明する図。
【図３２】秘密鍵を半導体チップの中に閉じ込めておく方法の一例を説明する図。
【図３３】ブロックチェーンにチップウォレットを連結させる方法の一例を説明する図。
【図３４】チップウォレットに外部入力を入力する方法の一例を説明する図。
【図３５】チップウォレットに外部入力を入力する方法の一例を説明する図。
【図３６】チップウォレットに外部入力を入力する方法の一例を説明する図。
【図３７】ワード線およびビット線からなるセルアレイの一例を説明する図。
【図３８】認証素子の一例を説明する図。
【図３９】認証素子の一例を説明する図。
【図４０】認証素子の一例を説明する図。
【図４１】認証素子の一例を説明する図。
【図４２】認証素子の一例を説明する図。
【図４３】認証素子の一例を説明する図。
【図４４】認証素子の一例を説明する図。
【図４５】認証素子の一例を説明する図。
【図４６】認証素子の一例を説明する図。
【図４７】認証素子の一例を説明する図。
【図４８】認証素子の一例を説明する図。
【図４９】ビット線およびワード線使って認証素子にアクセスする別の一例を説明する図。
【図５０】ビット線およびワード線使って認証素子にアクセスする別の一例を説明する図。
【図５１】セルアレイ上に不良ビットが分布している一例を説明する図。
【図５２】ハードウォレットの一例を説明する図。
【図５３】ハードウォレットの一例を説明する図。
【図５４】ハードウォレットの一例を説明する図。
【図５５】ハードウォレットの一例を説明する図。
【図５６】ハードウォレットの一例を説明する図。
【図５７】ハードウォレットの一般形の一例を説明する図。
【図５８】ブロックチェーンにハードウォレットを連結させる方法の一例を説明する図。
【図５９】取引所のサーバーのストーレジに保管されていた顧客の秘密鍵を独立した一つのハードウェアに移し閉じ込める概念の一例を説明する図。
【図６０】ハードウォレットを用いた仮想通貨の取引所の運営方法の一例を説明する図。
【符号の説明】
【０２１５】
５０３  ワード線
９０２  ビット線
９７７  認証素子
９８５  抵抗
９８２  キャパシタ
９８６  PN接合
９８７  ショットキー接合
９８３  トランジスタ
９８４  DRAMセル
９８１  可変抵抗
９８９  可変抵抗メモリセル
９８０  磁気抵抗
９８８  電荷蓄積層付き不揮発性メモリセル
９９０  磁気抵抗メモリ
【図１】
2019145926.tif 000003
【図２】
2019145926.tif 000004
【図３】
2019145926.tif 000005
【図４】
2019145926.tif 000006
【図５】
2019145926.tif 000007
【図６】
2019145926.tif 000008
【図７】
2019145926.tif 000009
【図８】
2019145926.tif 000010
【図９】
2019145926.tif 000011
【図１０】
2019145926.tif 000012
【図１１】
2019145926.tif 000013
【図１２】
2019145926.tif 000014
【図１３】
2019145926.tif 000015
【図１４】
2019145926.tif 000016
【図１５】
2019145926.tif 000017
【図１６】
2019145926.tif 000018
【図１７】
2019145926.tif 000019
【図１８】
2019145926.tif 000020
【図１９】
2019145926.tif 000021
【図２０】
2019145926.tif 000022
【図２１】
2019145926.tif 000023
【図２２】
2019145926.tif 000024
【図２３】
2019145926.tif 000025
【図２４】
2019145926.tif 000026
【図２５】
2019145926.tif 000027
【図２６】
2019145926.tif 000028
【図２７】
2019145926.tif 000029
【図２８】
2019145926.tif 000030
【図２９】
2019145926.tif 000031
【図３０】
2019145926.tif 000032
【図３１】
2019145926.tif 000033
【図３２】
2019145926.tif 000034
【図３３】
2019145926.tif 000035
【図３４】
2019145926.tif 000036
【図３５】
2019145926.tif 000037
【図３６】
2019145926.tif 000038
【図３７】
2019145926.tif 000039
【図３８】
2019145926.tif 000040
【図３９】
2019145926.tif 000041
【図４０】
2019145926.tif 000042
【図４１】
2019145926.tif 000043
【図４２】
2019145926.tif 000044
【図４３】
2019145926.tif 000045
【図４４】
2019145926.tif 000046
【図４５】
2019145926.tif 000047
【図４６】
2019145926.tif 000048
【図４７】
2019145926.tif 000049
【図４８】
2019145926.tif 000050
【図４９】
2019145926.tif 000051
【図５０】
2019145926.tif 000052
【図５１】
2019145926.tif 000053
【図５２】
2019145926.tif 000054
【図５３】
2019145926.tif 000055
【図５４】
2019145926.tif 000056
【図５５】
2019145926.tif 000057
【図５６】
2019145926.tif 000058
【図５７】
2019145926.tif 000059
【図５８】
2019145926.tif 000060
【図５９】
2019145926.tif 000061
【図６０】
2019145926.tif 000062