IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 柴田 直樹の特許一覧

特許7290299コインの価値の変動を抑えつつ暴落を防止するブロックチェーンシステム及びコンピュータープログラム
<>
  • 特許-コインの価値の変動を抑えつつ暴落を防止するブロックチェーンシステム及びコンピュータープログラム 図1
  • 特許-コインの価値の変動を抑えつつ暴落を防止するブロックチェーンシステム及びコンピュータープログラム 図2
  • 特許-コインの価値の変動を抑えつつ暴落を防止するブロックチェーンシステム及びコンピュータープログラム 図3
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-05
(45)【発行日】2023-06-13
(54)【発明の名称】コインの価値の変動を抑えつつ暴落を防止するブロックチェーンシステム及びコンピュータープログラム
(51)【国際特許分類】
   G06Q 20/06 20120101AFI20230606BHJP
   G06Q 40/04 20120101ALI20230606BHJP
【FI】
G06Q20/06
G06Q40/04
【請求項の数】 4
(21)【出願番号】P 2022199949
(22)【出願日】2022-12-15
(65)【公開番号】P2023030028
(43)【公開日】2023-03-07
【審査請求日】2022-12-15
【早期審査対象出願】
(73)【特許権者】
【識別番号】520291065
【氏名又は名称】柴田 直樹
(74)【代理人】
【識別番号】100196391
【弁理士】
【氏名又は名称】萩森 学
(72)【発明者】
【氏名】柴田 直樹
【審査官】永野 一郎
(56)【参考文献】
【文献】特開2019-125201(JP,A)
【文献】特開2018-073268(JP,A)
【文献】国際公開第2019/111338(WO,A1)
【文献】米国特許出願公開第2020/0396065(US,A1)
【文献】韓国公開特許第10-2020-0049491(KR,A)
【文献】国際公開第2019/239086(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
ピアツーピアネットワークに参加するノードにより運営されるブロックチェーンシステムであり,二つ以上の種類のコインのうち任意の種類のコインを使ったシステム上の取引をユーザが行えるようにする手段を備え,いずれかの種類のコインの総量の制限値を設定する手段を備え,全ユーザの所持する該種類のコインの総量が該制限値を超えない場合に限定して該種類のコインに他の種類のコインからシステムの機能により交換する取引をユーザが行えるようにする手段を備え,該種類のコインをユーザがマイニングできるようにする手段を備え,該種類のコインが今までにマイニングされた総量が大きいほど該制限値が大きな値を取ることを特徴とするブロックチェーンシステム。
【請求項2】
請求項1に記載のブロックチェーンシステムであって,ユーザの所持するコインを他の種類のコインにシステムの機能により交換する取引を該ユーザが行えるようにする手段を備え,この際に交換レートを計算する手段を備え,該交換レートは,ユーザの所持する、ある種類のコイン1枚を,種類のコインをマイニングするのに必要な計算量の期待値が大きいほど多くの枚数の他の種類のコインに交換するようなレートとすることを特徴とするブロックチェーンシステム。
【請求項3】
請求項2に記載のブロックチェーンシステムであって,システムが提供する機能をユーザが利用する際の利用料としてシステムがユーザから受け取ったコインを,システムが他のユーザに支払うことなくシステムから消滅させる手段を備えることを特徴とするブロックチェーンシステム。
【請求項4】
請求項1ないし3のいずれか一項に記載のブロックチェーンシステムを実現するためのコンピュータープログラムを含む非一時的なコンピュータ可読媒体。

【発明の詳細な説明】
【技術分野】
【0001】
本願発明は,ブロックチェーンシステムで発行されるコインの法定通貨建ての価格の変動を抑える一方で,コインの価値が下がった場合にその価値を自然回復させる機構を実現するために,二種類以上のコインを扱うことのできるブロックチェーンシステムでコインの発行数を制限するための仕組み,またそれによって実現される暗号資産に関する。
【背景技術】
【0002】
最初に本明細書で使用する用語の定義を記す。
暗号資産とはインターネット上でやりとりできる財産的価値である。ブロックチェーンを用いることにより,銀行等の第三者を介することなく暗号資産をやりとりすることができる。
交換所とは暗号資産と法定通貨を交換する業者を指す。
ブロックチェーンシステムとはマイナーやウォレットなどのソフトウェアを走らせる全てのコンピュータにより構成される,ブロックチェーンを実現するためのコンピュータシステムである。
ユーザとはブロックチェーンシステムを利用する人を指す。
アカウントとは銀行口座に相当する物で,各ユーザがブロックチェーンシステム上で所有する暗号資産を管理するための,ブロックチェーン上に記録されたデータを指す。該当ユーザの公開鍵が含まれる。
オラクルとは、ブロックチェーンシステムの外部の情報をブロックチェーンシステム内のノードに送るサービスである。
コンセンサスアルゴリズムとはブロックチェーンシステムを構成する多数のノード間で正しい取引結果について合意を形成するためのアルゴリズムである。ビットコインで利用されているプルーフオブワークの他にプルーフオブステークなどが利用されている。
ノードとはネットワークに接続されたコンピュータを指す。
ピアツーピアネットワークとはネットワークで接続された複数のコンピュータが,対等な関係で通信をすることを特徴とするような,分散型コンピュータシステムのアーキテクチャである。
ブロードキャストとはネットワークに接続された全てのコンピュータに情報が行き渡るように情報を伝えることを意味する。
ゴシッププロトコルとはネットワークに接続されたコンピュータ間で,繰り返し確率的に情報を交換する手法である。
トポロジーとはネットワークに接続された各コンピュータが,どのコンピュータと直接接続して情報を交換するかを表す。直接接続されていないコンピュータ間で通信を行うには,直接接続されたコンピュータにデータを中継してもらう必要が生じる。
スレッドとは並列に複数の処理が可能なコンピュータの上で,連続して実行される一本の命令の並びを表す。
ハッシュ値とは任意のデータに対し生成された固定長のデータであり,任意のデータからハッシュ値を生成するために必要な計算時間はわずかである一方,ハッシュ値から対応するデータを探し出すことは,極めて大きい計算時間が必要であるため実際上は不可能であるという性質がある。
電子署名。各ユーザはあらかじめ公開鍵と秘密鍵と呼ばれる対となるデータを生成し,公開鍵を広く公開しておき,秘密鍵は誰にも知らせずに持っておく。ユーザは秘密鍵を用いて任意のデータに対し電子署名と呼ばれるデータを生成して添付する。任意のデータに対して,電子署名は秘密鍵を用いてしか生成できない。電子署名付きのデータを受け取った人は,電子署名が公開鍵に対応するユーザによって生成されたことを,電子署名に公開鍵を用いることで確認できる。
【0003】
ビットコイン(非特許文献1)の登場以来、ブロックチェーンを利用した暗号資産が多数開発されてきた。暗号資産を用いた取引は年々増加しており,暗号資産の時価総額は2021年初頭に1兆ドルを突破した。
【0004】
ビットコインは完全分散型の暗号資産であり,中央銀行など特定のノードを必要とせず,ユーザ間でコインの受け渡しを行うことができる。
暗号資産における全ての取引の履歴はブロックチェーンに保存される。ブロックチェーンとはリスト構造のデータであり、データを次々と新たに追加することができ、過去に登録されたデータの修正が困難となるように設計されている。ブロックチェーンには多数のブロックをリンクトリストとして保存することができ,ブロックチェーンに登録された情報は全て公開される。各ブロックは複数のアイテムと一つ前のブロックのハッシュ値を含む。アイテムの一部は取引データであり,暗号資産の取引を表す。取引を行おうとするユーザノードは取引内容を表す取引データを含むアイテムに電子署名し,ネットワークにブロードキャストする。署名が真正であり,含まれる取引データが矛盾なく実行可能であるアイテムのみがブロックチェーンに受理され記録される。各ユーザのアカウントの最新状態は,アカウントの初期状態から,ブロックチェーンに含まれる各ブロックに記録された取引データの表す取引を順に全て実行した結果として定義される。
ビットコインではプルーフオブワーク(PoW)と呼ばれる仕組みにより,ブロックチェーンに記録される取引の正しい結果を決めており、コインの二重使用等を防いでいる。ネットワークにおいては多数のIPアドレスを確保するのが容易であり、各IPアドレスに対して投票権の与えられる多数決はうまく機能しない。PoWは、このような環境において計算量の多寡に応じて投票権の与えられる多数決を実現するのに使用される。各ブロックにはナンスと呼ばれる整数値を格納するエントリが用意されており、ブロックのハッシュ値が決められた数のゼロビットで始まるナンスを持ち,かつブロックに含まれた取引が全て矛盾なく実行可能であるようなブロックのみが有効なブロックとして受理される。ブロックに含まれた各取引が矛盾なく実行可能であることを確かめることを検証と呼ぶ。PoWでは、ユーザノードによりブロードキャストされた取引データをネットワークに参加するノードが集め,検証に成功した取引データを含んだ新しいブロックを構成し,新しいブロックのハッシュ値が決められた数のゼロビットで始まるようなナンスを探す。ノードがそのようなナンスを見つけると,見つけたナンスを含む新しいブロックをネットワーク上にブロードキャストし,このブロックを受信した他のノードは,このブロックを検証し,それに成功するとこのブロックの後に新しいブロックを追加しようとする。
【0005】
ネットワークを維持するために、新しいブロックを追加することに成功したノードに対してインセンティブとして新しく発行されたコインが授与される。新しいコインは新しいブロックが追加されるたびに発行される。ビットコインのシステム上で流通するコインは全てこのようにして発行され,システムのユーザのアカウントに保管される。ブロックを追加しようとするノードのことをマイナーと呼ぶ。新たなブロックのハッシュ値が決められた数のゼロビットで始まるナンスを探し,見つけたナンスを含む新たなブロックをブロックチェーンに追加することを,ブロックのマイニングと呼ぶ。善意のマイナーは、そのノードの知る限り最も長いブロックチェーンにブロックを追加しようとする。各ブロックが追加されるのにかかる時間をブロックタイムと呼ぶ。ハッシュ値のゼロビットの数は,ブロックタイムの期待値が10分になるように自動的に調整される。
【0006】
大半のCPU資源が善意のマイナーによりブロックの追加に使用される限り正しい取引を記録したブロックチェーンが最も速く伸びる。計算量に応じて投票権の与えられる多数決はこのようにして実現される。このような仕組みにより,ブロックチェーンに記録された情報の偽造や改ざんは困難であり,偽造などの攻撃を行おうとする悪意のあるノードのCPU資源が善良なノードの持つCPU資源を上回らない限り,攻撃は成功しない。
【0007】
追加されるブロックにできるだけ多くのアイテムをマイナーが含めるインセンティブを確保するため,ユーザノードがアイテムをブロードキャストする際にトランザクションフィーと呼ばれる料金をアイテムに含めて支払う。ブロックがブロックチェーンに追加されると,そのブロックに含まれた全てのアイテムのトランザクションフィーがブロックを追加したマイナーに支払われる。一つのブロックの大きさには上限があり,ブロックに収まりきらない数のアイテムがあるときにはマイナーはブロックを追加することで得られるトランザクションフィーが最大になるようにブロックに含めるアイテムの組み合わせを決めることができる。ユーザノードは大きな額のトランザクションフィーをアイテムに対して支払うことで,そのアイテムがブロックチェーンに早く登録される可能性が高まる。
【0008】
各国の中央銀行が発行する法定通貨は,通貨当局が発行し,経済界で広く利用されることで価値が保たれる。また,かつては金本位制が採用されており,この制度の下では,政府が通貨を同額の金と交換することで通貨の価値を保証していた。通貨が通貨として成立するためには,希少性,分割性,受容性,携帯性,耐久性,耐偽造性の6つの性質が成り立つ必要があると言われており,その一方で通貨の価値を裏付けるものは必ずしも必要であるわけではない。暗号資産はこれら6つの性質を備えており,それ故に通貨として利用できる。
【0009】
ビットコイン等の暗号資産の課題として,価格変動が大きいことが挙げられる。暗号資産が決済のために安心して利用できるためには,法定通貨に対する価格変動が小さいことが望ましい。一方で,投機目的で暗号資産を利用したいユーザも存在する。投機目的で利用するユーザに対しては,価格変動が小さいことは必ずしも良いことではなく,価格変動を単純に抑えるという方向性が必ずしも暗号資産の普及に資するわけではない。
【0010】
これまで暗号資産の価格変動を抑えるための取り組みがなされてきた。特定の法定通貨に対して一定の価格を維持する,すなわちペッグするように設計された暗号資産をステーブルコインと呼ぶ。以下では,1アメリカ合衆国ドル(以下1米ドルと呼ぶ)の価値を維持するように設計された代表的なステーブルコインであるTetherとDai,Empty Set DollarおよびTerraについて述べる。
【0011】
Tether(非特許文献2)は1米ドルの価値を維持するように設計されている。ユーザがTetherを買うと,その代金はTetherのリザーブに入る。リザーブには全ユーザが購入したTetherの総量と同額のUSドルが備蓄されている。ユーザがTetherを売って相当額のUSドルを得るときには,このリザーブからUSドルが支払われる。ユーザが購入したTetherは他の暗号資産と同様にネットワーク上で取引ができる。Tetherは発行額と同額のUSドルの法定通貨のリザーブを必要とする。また,完全分散では実現できない。
【0012】
Dai(非特許文献3)はEthereum(非特許文献4)上でスマートコントラクトによって実現されるステーブルコインで,1米ドルの価格を維持するよう設計されている。ユーザはEtherを担保として預け入れることで,新たに生成されたDaiを借りることができる。最低担保率は現在150%に設定されており,例えば150ドル相当のEtherを預けると約100ドル相当のDaiまで借りることができる。借り入れたDaiとその利息を返済すると,預け入れた担保であるEtherを引き出すことができる。担保の額が最低担保率を下回ると,担保のEtherが売却され,借り入れたDaiに相当する額にペナルティーを加えた額がここから差し引かれる。発行されたDaiの総額を常に上回る額のEtherが担保として預け入れられるようになっており,Daiの価値は担保のEtherの持つ価値に裏付けられている。Daiを借りるためにはEtherによる担保が必要となり,この担保の額は発行されるDaiの額の150%以上である。また,完全分散では実現できない。
【0013】
Empty Set Dollar (ESD)(非特許文献5)は純粋にアルゴリズム的な手法により1米ドルの価値を維持するように設計されている。ESDの価格が1米ドルを上回っている時は,より多くのESDを発行することでESDの価格を引き下げる。ESDの価格が1米ドルを下回った場合には,債務クーポンが発行される。債務クーポンは次回ESDの価格が1米ドルを上回った時にESDと交換することができ,多くの債務クーポンを買うほどより多くのESDと交換することができる。ESDの価格が1米ドルを下回った時に,ユーザが債務クーポンを購入することでESDの流通量が引き下げられ,ESDの価格が上昇する。ESDの問題点は,債務クーポンが償還される保証がないことであり,原理的には価格の暴落が起こりうる。
【0014】
Terra(非特許文献6)は純粋にアルゴリズム的な手法により1米ドルの価値を維持するように設計されている。Terraは,対になるコインであるLunaと同一のブロックチェーンシステム上で取引され,Terraの価値はLunaにより裏付けられている。ユーザはブロックチェーンシステム上でLunaをマイニングすることができ,LunaはTerraの価値の変動を吸収する役割を持っている。ユーザはブロックチェーンシステムの機能を利用してTerraとLunaを交換することができる。Terraが1米ドルを上回った場合,ユーザがLunaをTerraにより多く交換するように交換レートが設定される。これにより,より多くのTerraを供給され,Terraの価値が下がり,Lunaの価値が上がる。逆にTerraが1米ドルを下回った場合は,ユーザがTerraからLunaに交換するように交換レートが設定される。より多くのユーザがTerraをLunaに交換し,Terraの流通量が減少することによりTerraの価値が上昇し,Lunaの価値が下がる。LunaはマイニングとTerraからの交換により発行され,交換レートの推移によっては,Lunaの流通量はLunaがマイニングされた総量を上回ることがある。Terraの価値を安定化させる仕組みが動作するよりも速いスピードでTerra/Lunaの取引が行われた場合には,両暗号資産の価値の変動が大きくなる可能性がある。
【0015】
交換所では,Terraなどの暗号資産を一定量保有している。あるユーザが交換所でTerraを売ると,交換所の保有するTerraの量が増加する。このバランスを修正するため,交換所は自ら保有するTerraを割引して他のユーザに販売する。
2022年の4月から5月にかけ,TerraとLunaの価値が同時に暴落した(非特許文献7)。TerraとLunaの暴落は,下記のような経過を辿った(非特許文献8,9)。 [3, 4]。
1. ユーザ間でTerraの価値が下落する観測が広まった。
2. Terraの価値が自然変動により1米ドルよりもわずかに低下した。
3. TerraをTetherなど他のステーブルコインに交換するためにユーザが交換所に殺到した。
4. 多数のユーザがTerraを手放そうとしたため,交換所は保有するTerraを売却することができなくなり,Terraの交換を中止した。
5. 多数のユーザがTerraをLunaに変えようとした。
6. 多数のTerraがLunaに交換されたため,Lunaの価値が急落した。
7. 多数の取引が短時間で行われたため,ブロックチェーンシステム上の取引に遅延が生じた。Terraの価値は1米ドルより低いまま回復しなかった。
8. Terraの価値はさらに下落し,Lunaの価値も回復しなかった。
【0016】
Terraの価値が1米ドルよりも下がった時に多くのユーザがTerraをLunaに交換しようとすると,Lunaが短時間に大量に発行され,Terraが1米ドルの価値を回復するよりも前にLunaの価値が急落する可能性がある。また,一般に通貨を多く発行しすぎると,通貨の価値が下落し,インフレが発生する。これは暗号資産だけではなく法定通貨でも同様である。通貨の価値の下落を防止する効果的な方法は,通貨の発行の制限や市場に流通している通貨の回収により流通量を減らすことである。Terra/Lunaには,上記のような状況においてLunaが大量に発行されてしまうことを防止する仕組みがない。
【0017】
US 20200202311 A1(特許文献1)に記載のシステムは,ユーティリティトークンとリザーブトークンの二つの種類のコインをシステムが扱うことができる。ユーザが取引で利用できるのはユーティリティトークンのみであり,コインの価値が1米ドルよりも低下した際には,マイニングされるコインと取引されるコインの一定割合をリザーブトークンとして徴収する。コインの流通量が減ることにより,コインの価値が回復する。コインの価値が1米ドルを上回った場合,リザーブトークンはマイニング報酬に追加されてマイナーに支払われる。ユーティリティトークンとリザーブトークンをユーザが交換する仕組みはない。コインの価値が低下した場合に,ユーザが所持するコインに対して一定割合を強制的に徴収する仕組みであり,ユーザに受け入れられない可能性がある。また,コインの法定通貨での取引価格を監視する仕組みが必要であり,明細書ではオラクルとしてこれを実現しているが,オラクルが正しく動作することを前提としてシステムを設計する必要がある。
【0018】
US 20200042988 A1(特許文献2)に記載の手法は,二種類の暗号資産をシステム上で交換できる手段を提供するシステムを広くカバーしている。この手法では,二種類のうち一種類の暗号資産がブロックチェーンシステム外で取引されている資産の市場価格にペッグしており,このためにこの市場価格を監視する仕組みをブロックチェーンシステムに持たせている。このような市場価格を監視する仕組みは,ネットワーク上の一部のノードが正しく動作することを前提にしないと実現が困難である。この方法にはTerra/Lunaと同様の問題点がある。
【先行技術文献】
【特許文献】
【0019】
【文献】US 20200202311 A1
【文献】US 20200042988 A1
【文献】特許第6811504号
【非特許文献】
【0020】
【文献】Nakamoto, S.: Bitcoin: A Peer-to-Peer Electronic Cash System (2008).
【文献】“Tether: Fiat currencies on the Bitcoin blockchain,” [Online] available:https://assets.ctfassets.net/vyse88cgwfbl/5UWgHMvz071t2Cq5yTw5vi/c9798ea8db99311bf90ebe0810938b01/TetherWhitePaper.pdf.
【文献】The Maker Team, “The Dai Stablecoin System,” Accessed: Dec.6, 2022, [Online] available: https://makerdao.com/whitepaper/DaiDec17WP.pdf.
【文献】Buterin, Vitalik. "A next-generation smart contract and decentralized application platform." white paper 3, no. 37 (2014): 2-1.
【文献】Lewis Freiberg, “Empty Set Dollar (ESD),” Accessed: Dec.6, 2022, [Online] available: https://medium.com/@lewisfreiberg/empty-set-dollar-esd-a0abbfc5ecdb
【文献】Evan Kereiakes, Do Kwon, Marco Di Maggio, and Nicholas Platias, “Terra Money: Stability and Adoption,” Accessed Dec.6, 2022, [Online] available: https://assets.website-files.com/611153e7af981472d8da199c/618b02d13e938ae1f8ad1e45_Terra_White_paper.pdf, 2019.
【文献】Jeff John Roberts, “7 Big Moments From Bitcoin and Crypto's Craziest Week Ever,” Accessed Nov.12, 2022, [Online] available: https://decrypt.co/100358/7-big-moments-from-bitcoin-crypto-crash, 2022.
【文献】Liam J. Kelly, “How Terra's UST and LUNA Imploded,” Accessed Nov.12, 2022, [Online] available: https://decrypt.co/100402/how-terra-ust-luna-imploded-crypto-crash, 2022.
【文献】Chainalysis Team, “The Trades That Triggered TerraUSD’s Collapse,” Accessed Nov.12, 2022, [Online] available: https://blog.chainalysis.com/reports/how-terrausd-collapsed/, 2022.
【文献】Tim Copeland, “Billions of Luna minted as supply grows 20-fold in four days,” Accessed: Nov. 12, 2022, [Online] available: https://www.theblock.co/post/146532/billions-of-luna-minted-as-supply-grows-20-fold-in-four-days, 2022.
【文献】Naoki Shibata, "Proof-of-Search: Combining Blockchain Consensus Formation With Solving Optimization Problems," in IEEE Access, vol. 7, pp. 172994-173006, 2019, doi: 10.1109/ACCESS.2019.2956698.
【発明の概要】
【発明が解決しようとする課題】
【0021】
本願発明が解決しようとする課題は、コインの法定通貨に対する価格変動を抑える仕組みおよびコインの価値が暴落することを防ぐための仕組みの両方を実現するブロックチェーンシステムを提供することである。
【課題を解決するための手段】
【0022】
TerraとLunaが同時に暴落したことの要因として,TerraからLunaに無制限に交換できるブロックチェーンシステム上の仕組みが挙げられる。Lunaの流通量を制限する仕組みがないため,短期間に極めて多くのLunaが発行され,その結果Lunaの価値が暴落した (非特許文献10)。TerraをLunaに無制限に交換する仕組みがなければ,Terraが暴落しても,それに巻き込まれてLunaが暴落することはなかったはずであり,TerraからLunaへの交換を制限すれば,二つのコインの価値が同時に下落する危険を大幅に減らすことが可能である。この場合に問題となるのは,Terraの価値が下がった場合にこれを回復する手段をどのようにして実現するかである。
【0023】
本願発明では,Terra/Lunaと同様に単一のブロックチェーンで複数の種類のコインの取引ができるようにする。以下では,High Volatility Coin (HVコイン)とLow Volatility Coin (LVコイン)と呼ぶ二種類の暗号資産を取引できるようにする例について説明する (図1)。HVコインはLunaに相当し,投機用に利用されることを想定する。HVコインの価格変動は大きくても問題ない。また,長期的には価値が上昇傾向となることが望ましい。LVコインはTerraに相当し,決済用に利用されることを想定する。LVコインの価格変動はなるべく小さくなることが望ましい。LunaはProof of Stakeと呼ばれるコンセンサスアルゴリズムを用いてマイニングされるが,HVコインもLunaと同様に何らかのコンセンサスアルゴリズムを用いてユーザによりマイニングされる。
LVコインはユーザが直接マイニングすることはできず,システムで定められた交換レートでユーザの所持するHVコインをLVコインに交換する仕組みをシステムが提供する。HVコインからLVコインへの交換レートは,HVコインの法定通貨との交換レートになるべく近いように設定される。これに関しては後述する。HVコインがLVコインに交換されると,HVコインの流通量が減り,LVコインの流通量が増える。
【0024】
本願発明では,コインの交換に制限を設ける。上記の例において制限方法は複数考えられるが,その中でも最も簡単な例として,LVコインからHVコインへの交換を一切禁止することが挙げられる。この場合,ユーザがLVコインをHVコインと交換するには,ユーザ間で個人的に取引するか,交換所を経由する必要がある。LVコインからHVコインに交換する仕組みはないので,HVコインの流通量が今までにHVコインがマイニングされた総量を超えることはない。HVコインの流通量は,HVコインが今までにマイニングされた総数からLVコインに交換された数を差し引いた数であり,LVコインが暴落した場合でもHVコインが大量に発行されることはなく,したがってHVコインの価値が影響を受けることはない。HVコインのコンセンサスアルゴリズムとしてビットコインと同様にPoWを用いる場合には,HVコインはビットコインと同程度またはそれ以上に価値の下落に耐性がある。
LVコインからHVコインへの交換を一切禁止する上記の方法だと,LVコインの価値が下がった場合に回復に時間がかかる。本願発明の狙いは,マイニングされたHVコインの総量を超えて無制限にHVコインが発行されることを防ぐことである。以下ではLVコインからHVコインへの交換を一定範囲で認めつつ,その交換レートを制御することによりHVコインが無制限に発行されることを防ぐ方法の例について述べる。
【0025】
M, H, Lをそれぞれ現在までにマイニングされたHVコインの枚数,現在流通しているHVとLVコインの枚数とする。Xを現在のHVコインからLVコインへの交換レートの逆数,すなわちHVコインX枚をLVコイン1枚に交換するとする。現在流通しているLVコインは合計(M-H)枚のHVコインから交換されたとみなせるので,LVコイン一枚あたり(M-H)/L 枚のHVコインから交換されたことになる。MINを与えられた引数のうち最小値を返す関数とする。Y=MIN((M-H)/L, X) をLVコインからHVコインへの交換レート,すなわちLVコイン1枚をHVコインY枚に交換する場合,HVコインの流通量がMを超えることはない。この例では,交換レートがマイナスになる場合はシステムによるLVコインからHVコインへの交換を停止する。
【0026】
HVコインが無制限に発行されてしまうのを防ぐという観点からは,必ずしもHVコインの流通量をM以下に抑える必要は無い。従って,HVコインの流通量の上限をMとする代わりに,適切な関数Fをシステムで定めて,HVコインの流通量の上限を F(M) と一般化してもよい。上記の例と組み合わせると,MIN((F(M)-H)/L, X) がLVコインからHVコインへの交換レートとなる。このようにすると,システムによるLVコインからHVコインへの交換の結果,HVコインの流通量が F(M) を超えることはなくなる。F(M) がMよりも大きな値を取るようにすることで,システムによるLVコインからHVコインへの交換レートがユーザにとってより魅力的なものとなり,またシステムによる交換が停止する頻度が低くなる。前記のLVコインからHVコインへの交換を一切禁止する方法の例は F(M)=0という関数を与えたことに相当し,HVコインの流通量をM以下に抑える方法の例は F(M)=M という関数を与えたことに相当する。
【0027】
交換レートを設定する際には,このようにして定めた交換レートからさらに交換手数料を徴収しても良い。例えば交換手数料を1%とする場合には, MIN((F(M)-H)/L, (1-0.01)X) をLVコインからHVコインへの交換レートとする。また,HVコインの流通量を制限する方法として上記で述べたいくつかの方法以外にも様々な方法が考えられる。
LVコインの価値がシステムの交換レートよりも低いときには,システムの提供する交換機能を利用してHVコインからLVコインへ交換されることはほとんどないと期待できる。HVコインを所持しているユーザは,システムを介さずに取引所またはユーザ間取引でHVコインを法定通貨に替え,LVコインを買った方が得だからである。そうするとHVコインの流通量があまり減らなくなるので,しばらくするとシステムによるLVコインからHVコインへの交換も停止する可能性がある。このような場合にLVコインの価値を上昇させるには,流通しているLVコインを回収すれば良い。LVコインを保有するユーザから税金と同様に強制的にLVコインを徴収することも考えられるが,そのような仕組みの暗号資産をユーザが好んで使うとは思えない。
【0028】
本願発明のブロックチェーンシステムでは,システムがユーザに提供する機能をユーザが利用する際に利用料としてユーザがシステムに支払うコインの一部を,システムが他のユーザに支払うことなくシステムから消滅させることで,流通しているLVコインを回収する。LVコインを回収するために利用可能な,システムが徴収する利用料として,トランザクションフィーや,スマートコントラクトの実行手数料(いわゆるガス代),Proof-of-Search(特許文献3、非特許文献11)におけるタスクの実行料金などが挙げられる。
【0029】
これらの利用料をLVコインでのみ支払えることとしてもよく,このようにすればユーザがHVコインのみの取引を行う場合でもLVコインを入手する必要が生じ,従って,システム上で取引が行われる限り常にLVコインに対する需要が生まれる。このようにすると,LVコインの価値がシステムの交換レートよりも低いときには,新たにLVコインが発行されることはほとんどなく,ユーザがシステムの機能を利用する際に支払われる利用料の一部がシステムから消滅していくことでLVコインの流通量が減っていくと期待でき,時間がたつとLVコインの価値が回復することが期待できる。
【0030】
上記の仕組みによりLVコインの価値はHVコインの価値により裏付けられ,HVコインが価値を持つ限りLVコインは一定量の法定通貨に近い価値を持つ。LVコインの価値が何らかの理由で下落した場合でも,ユーザは慌ててLVコインを手放す必要はなく,価値が自然に回復するのを待っていればよい。HVコインには価格変動を抑える仕組みがないので,ビットコインと同等の価格変動が起こることが期待できる。HVコインの価値はLVコインの価値に影響を受けることがそれほどなく,価値の下落に対する耐性はビットコインと同等であると期待できる。また,LVコインの流通量が増えると,流通しているHVコインの総数がマイニングされた総数を下回る量が増え,その結果HVコインは価値が上昇することが期待できる。LVコインは決済目的での暗号資産の利用に適しており,HVコインは投機目的の暗号資産の取引に適している。
【0031】
LVコインの価値を回復する問題に加えて,HVコインからLVコインにシステムが交換する際のレートをどのようにして決定するかという問題がある。Terraでは,ネットワークのある特定のノードに権限を与え,このノードがブロックチェーンシステム全体で使われる米ドル建ての取引価格をブロックチェーンシステムに導入し,これを交換レートとしている。ブロックチェーンシステムの外部の情報をブロックチェーンシステムに導入するために権限を与えられた特定のノードを一般にはオラクルと呼ぶ。このような方法はオラクルを信用する必要があり,またオラクルが単一故障点となる欠点がある。オラクルが攻撃を受けて誤った交換レートが設定されると,LVコインの価値を保つ仕組みが破綻する恐れがある。特定のノードが正しく動くことを一切仮定せずにコインの取引価格をブロックチェーンシステムに導入するのはそれほど容易ではない。
【0032】
上記に加え,シニョリッジを侵す問題がある。シニョリッジとは国家にとっての通貨の発行利益であり,国家がコインを製造して発行することで,コインを製造するコストとコインの額面の差額を財政収入とすることができる。1米ドルの価格を維持する暗号資産を発行することは,米国が得られるはずだったシニョリッジを侵していると考えることができる。これはすなわちステーブルコインが法定通貨と等価に決済,貯蓄,融資等に使われるようになると,ステーブルコインの発行額が対応する法定通貨を発行する国家におけるインフレ率等に直接影響を与えることが考えられるということである。既存の通貨システムを混乱させないためには,暗号資産が特定国家のシニョリッジを侵さないことが望ましい。
本願発明では,HVコインをマイニングするのに必要な計算量の期待値がHVコインの価値に比例すると仮定し,これをシステムによる交換レートとして用いる。コインをマイニングするのに必要な計算量の期待値は,ビットコインにおいてブロックを一つブロックチェーンに追加される時間の期待値を調整するために自動的に計算される内部変数であり,当初から実装されている。これは完全分散で動作する仕組みで,高い信頼性で動作する実績があり,攻撃は容易ではない。このレートでLVの価値を定めると,いずれかの法定通貨にペッグするわけではないので,LVもしくはHVの価値の変動がいずれかの国の法定通貨の価値に直接影響を与えることはなく,従ってシニョリッジを侵してしまう懸念はない。
【0033】
HVコインをマイニングするのに必要な計算量の期待値がHVコインの価値に比例する理由として以下が挙げられる。マイニングのために必要な金銭的コストよりもマイニングで得られるコインの価値が大きければ,より多くのマイナーがマイニングに参加し,逆にマイニングを行って得られるコインがマイニングの金銭的コストより少なければ,マイニングに参加するマイナーの数は減ることが期待される。また,マイナーはできるだけ低コストでマイニングを行おうとするので,マイニングを行う時点で最も効率の良い機材を利用してマイニングを行うと期待できる。結果的に,マイナーは皆同じような機材を利用してマイニングすると期待できるので,マイニングに必要なコストは各マイナーが支払う電力料金に主に左右される。電力料金がマイナー間でそれほど変わらないと仮定すると,計算量とそれに必要な価格の比は短期的にはマイナー間で概ね一定であると期待できる。
【0034】
上記の例はいずれもHVコインとLVコインの二種類のコインを単一のブロックチェーンシステム上で取引できるようにする方法の例であるが,複数の異なったコンセンサスアルゴリズムをそれぞれ使ってマイニングすることのできる複数の種類のコインや,異なった指標にそれぞれ連動する複数の種類のコインを取引できるようにすることで,三種類以上のコインを単一のブロックチェーンシステム上で取引できるようにしてもよい。
【0035】
第1の発明に係るブロックチェーンシステムは、ピアツーピアネットワークに参加するノードにより運営されるブロックチェーンシステムであり,二つ以上の種類のコインのうち任意の種類のコインを使ったシステム上の取引をユーザが行えるようにする手段を備え,いずれかの種類のコインの総量の制限値を設定する手段を備え,全ユーザの所持する該種類のコインの総量が該制限値を超えない場合に限定して該種類のコインに他の種類のコインからシステムの機能により交換する取引をユーザが行えるようにする手段を備え,該種類のコインをユーザがマイニングできるようにする手段を備え,該種類のコインが今までにマイニングされた総量が大きいほど該制限値が大きな値を取ることを特徴とするものである。
【0036】
第2の発明に係るブロックチェーンシステムは、第1の発明に係るブロックチェーンシステムであって,ユーザの所持するコインを他の種類のコインにシステムの機能により交換する取引を該ユーザが行えるようにする手段を備え,この際に交換レートを計算する手段を備え,該交換レートは,ユーザの所持するコイン1枚を,この種類のコインをマイニングするのに必要な計算量の期待値が大きいほど多くの枚数の該他の種類のコインに交換するようなレートとすることを特徴とするものである。
【0037】
第3の発明に係るブロックチェーンシステムは、第2の発明に係るブロックチェーンシステムであって,システムが提供する機能をユーザが利用する際の利用料としてシステムがユーザから受け取ったコインを,システムが他のユーザに支払うことなくシステムから消滅させる手段を備えることを特徴とするものである。
【0038】
第4の発明は、第1乃至第3の発明のいずれかの発明に係るブロックチェーンシステムを実現するためのコンピュータープログラムを含む非一時的なコンピュータ可読媒体である。
【発明の効果】
【0039】
本願発明によって、コインの法定通貨に対する価格変動を抑える仕組みおよびコインの価値が暴落することを防ぐための仕組みの両方を実現するブロックチェーンシステム及び該ブロックチェーンシステムを実現するためのコンピュータープログラムを含む非一時的なコンピュータ可読媒体が提供される。
【図面の簡単な説明】
【0040】
図1】本願発明により二種類の暗号資産を取引する例におけるコインの流れのイメージ図である。
図2】実施例1乃至3におけるブロックの構造の例を示す図である。
図3】実施例おけるブロックチェーンシステムのイメージ図である。
【発明を実施するための形態】
【0041】
つぎに、本発明の実施形態を説明するが、本発明の技術的範囲を逸脱しない範囲において様々な変更や修正が可能であることは言うまでもない。
【0042】
以下に第1乃至第3の発明の実施例1乃至3を示す。これらのブロックチェーンシステム上ではHVコインとLVコインをユーザ間で送金することができ,またこれら二種類のコイン間で交換を行うシステム上の取引が可能である。マイナーはHVコインのみをマイニングすることができ,ブロックが追加される毎に定数枚の新しいHVコインがブロックを追加したマイナーに授与される。取引を行うには,ユーザは取引データとトランザクションフィーとして支払うLVコインの枚数を含んだアイテムに電子署名し,ネットワークにブロードキャストする。アイテムがブロックチェーンに登録されると,アイテムをブロードキャストしたユーザのアカウントからトランザクションフィーが引かれる。
【0043】
アルゴリズム1, 2,及び3は,実施例1, 2及び 3において共通に利用される。アルゴリズム2においてアルゴリズムUとVを呼び出している部分は,実施例に応じて,後述の対応するアルゴリズムが呼び出される。これらの実施例におけるブロックの構造の例を図2に示す。実施例1, 2,及び3の各システムはPoWを用いるブロックチェーンシステムを強化したものであり,PoWと同じ技術を用いている。これらのブロックチェーンシステムはピアツーピアネットワークとして構成される。各マイナーは無作為に選ばれたいくつかのマイナーと繋がっており,マイナーのネットワークは固定トポロジー無しに緩やかに結合している (図3)。メッセージはゴシッププロトコルによってブロードキャストされる。ノードが新たにネットワークに参加するためには,すでにネットワークに参加しているマイナーを一つは知っている必要がある。各マイナーはブロックチェーンの全情報のコピーを保持しており,また正確な現在時刻を知っている。ユーザIDはユーザの公開鍵である。
【0044】
各マイナーでは2つのスレッドを並列して走らせ,それぞれのスレッドでアルゴリズム1とアルゴリズム2を実行する。2つのスレッドは新しく受信されたアイテムのリストLを共有する。このアイテムは,各マイナーが実行するアルゴリズム1により受信され,アルゴリズムUによって有効な取引と認められたアイテムのみがブロックチェーンに記録される。アルゴリズム中で扱われる状態には各ユーザの所持するHVコインとLVコインの数およびこれまでにマイニングされたHVコインの総数が含まれる。初期状態は全て0である。
【0045】
アルゴリズム1: アイテムの受信
begin
// 新しく受信されたアイテムをアイテムリストの最後尾に追加し続ける。
while true do
アイテム t を受信する。
アイテム t をアイテムリスト L に追加する。
end while
end
【0046】
アルゴリズム2 : マイニング
begin
// 最初にマイニングの対象とするブロックチェーンを決める。
if このノードがブロックチェーンシステムの最初のマイナーである then
初期状態を s に代入する。
以降初期のブロックチェーンに対して処理を行う。
else
// 他のノードがブロックを追加するまで待つ。
repeat
他のノードによって新たなブロックが追加されるまで待つ。
追加されたブロックを引数としてアルゴリズム3を呼び出し,結果を状態 s に代入する。
until 状態s がNULLでなくなるまで。
以降新たなブロックが追加されたチェーンに対して処理を行う。
end if

// メインループ
while true do
// リスト L 内のアイテムから次に追加するブロック b を構成する。
ブロック b を初期化し,処理しているチェーンの最新ブロックとしてb を内部的に登録する。
b を追加したユーザのIDとしてこのノードを実行しているユーザのIDをセットする。
処理しているチェーンのブロックが追加された時間から次のブロックを追加するのに必要な計算量の期待値 Z を計算する。

for リスト L 内の各アイテム t についてアイテムに含まれるトランザクションフィーの降順に do
アルゴリズムUを (t, s, b) を引数として呼び出し,返り値を状態 j に代入する。
if j がNULLでない then
アイテム t をブロック b に追加する。
状態 j を s に代入する。
if ブロック b に含められるアイテム数がシステムで定められた上限に達した then
break。
end if
end if
end for
ブロック b に含められたアイテムをリスト L から削除する。
一定以上古いアイテムをリスト L から削除する。
アルゴリズムVを (b, s) を引数として呼び出し,結果を状態 s に代入する。
// この時点で,ブロック b 追加後の状態が s に代入されている。

repeat
repeat
ブロック b の追加された時刻として現在時刻をセットする。
異なったナンスでブロック b のハッシュ値を計算する。
until ブロックを受信する,もしくはlog2 Z 個のゼロビットで始まるナンスを見つけるまで。
if log2 Z 個のゼロビットで始まるナンスを見つけた then
ブロック bに見つけたナンスを追加し,ネットワークにブロードキャストする。
以降ブロック b の追加されたチェーンに対して処理を行う。
end if
if ブロック r を受信した,かつ
ブロック r に対応するチェーンが現在処理しているチェーンより長い,かつ
ブロック r の追加された時刻と現在時刻の差がシステムで定められた定数以下 then
ブロック r を引数としてアルゴリズム3を呼び出し,結果を t に代入する。
if t がNULLでない then
状態 t を s に代入する。
ブロック r に対応するチェーンに含まれないアイテムをリスト L に移動する。
以降新しく追加されたブロック r に対応するチェーンに対して処理を行う。
end if
end if
until 処理対象のチェーンが更新されるまで。
end while
end
【0047】
アルゴリズム3: チェーンを検証し,成功した場合には全ブロック追加後の状態を,失敗した場合にはNULLを返す
入力:ブロック b
出力:ブロック b を最新のブロックとして含むチェーンを検証し,成功すれば最新の状態を,失敗すればNULLを返す
begin
ブロック b を最新ブロックとして含むチェーンを保持していなければ,ダウンロードする。
状態 s をブロックチェーン開始時の状態に初期化する。
for ブロック b を最新ブロックとして含むチェーン内の全てのブロックkについて時間順に do
for ブロック k 内のすべてのアイテム t について do
アルゴリズムUを (t, s, b) を引数として呼び出し,返り値を状態 s に代入する。
if s がNULL then
return NULL.
end if
end for
アルゴリズムVを (k, s) を引数として呼び出し,結果を状態 s に代入する。
end for
return s.
end
【実施例1】
【0048】
実施例1のブロックチェーンシステムは、第1の発明の一実施例であり、PoWを利用するブロックチェーンシステム構成の他に,アルゴリズム1, 2, 3, 1-U,及び1-Vを有する。本実施例においては,アルゴリズム1, 2,及び3の中でアルゴリズムUとVを呼び出している箇所では,それぞれアルゴリズム1-Uと1-Vが呼び出される。
実施例1においては,全ユーザの所持するHVコインの総量がマイニングされたHVコインの総量を超えるような,LVコインからHVコインへの交換が行われようとした際に,そのような交換を指示するアイテムの検証をアルゴリズム1-Uにおいて失敗させることで,そのアイテムがブロックチェーンに登録されないようにしている。また, HVコインの市場価格をオラクルから受信している。
【0049】
アルゴリズム1-U : アイテムの検証および状態の更新
入力:アイテム t, 状態 s, チェーンの最新ブロック b
出力:検証に成功した場合は更新後の状態,検証に失敗した場合は NULL
begin
ユーザ u をアイテム t の送信者とする。
if アイテム t の電子署名の検証に失敗した,または
状態 s 内に指定されたユーザ u の所持するLVコインがアイテム t のトランザクションフィーより少ない then
return NULL.
end if
状態 s 内の指定されたユーザ u の所持するLVコインからアイテム t のトランザクションフィーを引く。

// HVコインからLVコインへの交換レートを X に代入する。 市場でHVコインX枚とLVコイン1枚が交換されている。
アイテム t の含まれるブロックのひとつ前のブロックが追加された時刻におけるHVコインの市場価格をオラクルから受信し,X に代入する。

// LVコインからHVコインへの交換レートをYに代入する。HVコインY枚とLVコイン1枚を交換する。
状態 s から全ユーザが所持するHVコインとLVコインそれぞれの総量を計算し,H と L に代入。
状態 s に含まれる,今までマイニングされたHVコインの総量を M に代入。
システムにより定められた,HVコインの流通量の上限を計算する関数を F とする。
Y に MIN((F(M)-H)/L, X) を代入。

if アイテム t がLVコインをHVコインに交換する取引である then
if ユーザ u の所持するLVコインが指定された額より少ない,または Y < 0 then
// 交換後にHVコインの流通量が上限を超える場合には Y < 0となる。
return NULL.。
end if
状態 s 内のユーザ u の所持するLVコインから交換する額を引く。
状態 s 内のユーザ u の所持するHVコインに,LVコイン一枚あたり HVコイン Y 枚のレートで交換した額を足す。
end if

if アイテム t がHVコインをLVコインに交換する取引である then
if ユーザ u の所持するHVコインが指定された額より少ない then
return NULL.
end if
状態 s 内のユーザ u の所持するHVコインから交換する額を引く。
状態 s 内のユーザ u の所持するLVコインに,HVコイン一枚当たりLVコイン 1/X 枚 で交換した額を足す。
end if

if アイテム t がLVコインの指定されたアカウント v への送金である then
if ユーザ u の所持するLVコインが指定された額より少ない then
return NULL.
end if
状態 s 内のユーザ u の所持するLVコインから送金額を引く。
状態 s 内のユーザ v の所持するLVコインに送金額を足す。
end if

if アイテム t がHVコインの指定されたアカウント v への送金である then
if ユーザ u の所持するHVコインが指定された額より少ない then
return NULL.
end if
状態 s 内のユーザ u の所持するHVコインから送金額を引く。
状態 s 内のユーザ v の所持するHVコインに送金額を足す。
end if
return 状態 s.
end
【0050】
アルゴリズム1-V : ブロックが追加されたことによる状態の更新を行う
入力:ブロック b, 状態 s
出力:更新後の状態
begin
ブロック b を追加したユーザのIDを u に代入する。
状態 s 内の「ユーザ u の所持するHVコインの数」にシステムで定められた定数を足す。
状態 s 内の「今までマイニングされたHVコインの総量」に上と同じ定数を足す。
for ブロック b 内のすべてのアイテム t について do
状態 s 内の「ユーザ u の所持するLVコインの数」にアイテム t のトランザクションフィーを足す。
end for
return 状態 s.
end
【実施例2】
【0051】
実施例2のブロックチェーンシステムは、第2の発明の一実施例であり、PoWを利用するブロックチェーンシステム構成の他に,アルゴリズム1, 2, 3, 2-U,及び2-Vを有する。本実施例においては,アルゴリズム1, 2及び 3の中でアルゴリズムUとVを呼び出している箇所では,それぞれアルゴリズム2-Uと2-Vが呼び出される。
実施例2においては,アルゴリズム2-Uにおいてブロックを追加するのに必要な計算量の期待値からHVコインとLVコインの交換レートを計算している。
【0052】
アルゴリズム2-U : アイテムの検証および状態の更新
入力:アイテム t, 状態 s, チェーンの最新ブロック b
出力:検証に成功した場合は更新後の状態,検証に失敗した場合は NULL
begin
ユーザ u をアイテム t の送信者とする。
if アイテム t の電子署名の検証に失敗した,または
状態 s 内に指定されたユーザ u の所持するLVコインがアイテム t のトランザクションフィーより少ない then
return NULL.
end if
状態 s 内の指定されたユーザ u の所持するLVコインからアイテム t のトランザクションフィーを引く。

// HVコインからLVコインへの交換レートを,ブロックを追加するのに必要な計算量の期待値から計算して X に代入。市場でHVコインX枚とLVコイン1枚が交換されていると推測する。
ブロックbを最新のブロックとして含むチェーンのブロックが追加された時間から次のブロックを追加するのに必要な計算量の期待値Zを計算し,Z とシステムで定められた定数の積を X に代入する。

// LVコインからHVコインへの交換レートをYに代入する。HVコインY枚とLVコイン1枚を交換する。
状態 s から全ユーザが所持するHVコインとLVコインそれぞれの総量を計算し,H と L に代入。
状態 s に含まれる,今までマイニングされたHVコインの総量を M に代入。
システムにより定められた,HVコインの流通量の上限を計算する関数を F とする。
Y に MIN((F(M)-H)/L, X) を代入。

if アイテム t がLVコインをHVコインに交換する取引である then
if ユーザ u の所持するLVコインが指定された額より少ない,または Y < 0 then
// 交換後にHVコインの流通量が上限を超える場合には Y < 0 となる。
return NULL.
end if
状態 s 内のユーザ u の所持するLVコインから交換する額を引く。
状態 s 内のユーザ u の所持するHVコインに,LVコイン一枚あたり HVコイン Y 枚のレートで交換した額を足す。
end if

if アイテム t がHVコインをLVコインに交換する取引である then
if ユーザ u の所持するHVコインが指定された額より少ない then
return NULL.
end if
状態 s 内のユーザ u の所持するHVコインから交換する額を引く。
状態 s 内のユーザ u の所持するLVコインに,HVコイン一枚当たりLVコイン 1/X 枚 で交換した額を足す。
end if

if アイテム t がLVコインの指定されたアカウント v への送金である then
if ユーザ u の所持するLVコインが指定された額より少ない then
return NULL.
end if
状態 s 内のユーザ u の所持するLVコインから送金額を引く。
状態 s 内のユーザ v の所持するLVコインに送金額を足す。
end if

if アイテム t がHVコインの指定されたアカウント v への送金である then
if ユーザ u の所持するHVコインが指定された額より少ない then
return NULL.
end if
状態 s 内のユーザ u の所持するHVコインから送金額を引く。
状態 s 内のユーザ v の所持するHVコインに送金額を足す。
end if
return 状態 s。
end
【0053】
アルゴリズム2-V : ブロックが追加されたことによる状態の更新を行う
入力:ブロック b, 状態 s
出力:更新後の状態
begin
ブロック b を追加したユーザのIDを u とする。
状態 s 内の「ユーザ u の所持するHVコインの数」にシステムで定められた定数を足す。
状態 s 内の「今までマイニングされたHVコインの総量」に上と同じ定数を足す。
for ブロック b 内のすべてのアイテム t について do
状態 s 内の「ユーザ u の所持するLVコインの数」にアイテム t のトランザクションフィーを足す。
end for
return 状態 s.
end
【実施例3】
【0054】
実施例3 のブロックチェーンシステムは、第3の発明の一実施例であり、PoWを利用するブロックチェーンシステム構成の他に,アルゴリズム1, 2, 3, 3-U,及び3-Vを有する。本実施例においては,アルゴリズム1, 2及び3の中でアルゴリズムUとVを呼び出している箇所では,それぞれアルゴリズム3-Uと3-Vが呼び出される。
実施例3においては,アルゴリズム3-Vにおいてトランザクションフィーとして徴収されたLVコインの半分をシステムから消滅させている。
【0055】
アルゴリズム3-U : アイテムの検証および状態の更新
入力:アイテム t, 状態 s, チェーンの最新ブロック b
出力:検証に成功した場合は更新後の状態,検証に失敗した場合は NULL
begin
ユーザ u をアイテム t の送信者とする。
if アイテム t の電子署名の検証に失敗した,または
状態 s 内に指定されたユーザ u の所持するLVコインがアイテム t のトランザクションフィーより少ない then
return NULL.
end if
状態 s 内の指定されたユーザ u の所持するLVコインからアイテム t のトランザクションフィーを引く。

// HVコインからLVコインへの交換レートを,ブロックを追加するのに必要な計算量の期待値から計算して X に代入。市場でHVコインX枚とLVコイン1枚が交換されていると推測する。
ブロックbを最新のブロックとして含むチェーンのブロックが追加された時間から次のブロックを追加するのに必要な計算量の期待値Zを計算し,Z とシステムで定められた定数の積を X に代入する。

// LVコインからHVコインへの交換レートをYに代入する。HVコインY枚とLVコイン1枚を交換する。
状態 s から全ユーザが所持するHVコインとLVコインそれぞれの総量を計算し,H と L に代入。
状態 s に含まれる,今までマイニングされたHVコインの総量を M に代入。
システムにより定められた,HVコインの流通量の上限を計算する関数を F とする。
Y に MIN((F(M)-H)/L, X) を代入。

if アイテム t がLVコインをHVコインに交換する取引である then
if ユーザ u の所持するLVコインが指定された額より少ない,または Y < 0 then
// 交換後にHVコインの流通量が上限を超える場合には Y < 0となる。
return NULL.
end if
状態 s 内のユーザ u の所持するLVコインから交換する額を引く。
状態 s 内のユーザ u の所持するHVコインに,LVコイン一枚あたり HVコイン Y 枚のレートで交換した額を足す。
end if

if アイテム t がHVコインをLVコインに交換する取引である then
if ユーザ u の所持するHVコインが指定された額より少ない then
return NULL.
end if
状態 s 内のユーザ u の所持するHVコインから交換する額を引く。
状態 s 内のユーザ u の所持するLVコインに,HVコイン一枚当たりLVコイン 1/X 枚 で交換した額を足す。
end if

if アイテム t がLVコインの指定されたアカウント v への送金である then
if ユーザ u の所持するLVコインが指定された額より少ない then
return NULL.
end if
状態 s 内のユーザ u の所持するLVコインから送金額を引く。
状態 s 内のユーザ v の所持するLVコインに送金額を足す。
end if

if アイテム t がHVコインの指定されたアカウント v への送金である then
if ユーザ u の所持するHVコインが指定された額より少ない then
return NULL.
end if
状態 s 内のユーザ u の所持するHVコインから送金額を引く。
状態 s 内のユーザ v の所持するHVコインに送金額を足す。
end if
return 状態 s.
end
【0056】
アルゴリズム3-V : ブロックが追加されたことによる状態の更新を行う
入力:ブロック b, 状態 s
出力:更新後の状態
begin
ブロック b を追加したユーザのIDを u とする。
状態 s 内の「ユーザ u の所持するHVコインの数」にシステムで定められた定数を足す。
状態 s 内の「今までマイニングされたHVコインの総量」に上と同じ定数を足す。
for ブロック b 内のすべてのアイテム t について do
状態 s 内の「ユーザ u の所持するLVコインの数」にアイテム t のトランザクションフィーの半分を足す。
// アルゴリズム3-U内で引かれたトランザクションフィーの半分はユーザ u に支払われずにシステムから消滅する。
end for
return 状態 s。
end

図1
図2
図3