JP6811504B2 - 最適化問題の解探索を利用した合意形成プロトコルを備えたブロックチェーンシステム及びコンピュータープログラム。 - Google Patents

最適化問題の解探索を利用した合意形成プロトコルを備えたブロックチェーンシステム及びコンピュータープログラム。 Download PDF

Info

Publication number
JP6811504B2
JP6811504B2 JP2020131296A JP2020131296A JP6811504B2 JP 6811504 B2 JP6811504 B2 JP 6811504B2 JP 2020131296 A JP2020131296 A JP 2020131296A JP 2020131296 A JP2020131296 A JP 2020131296A JP 6811504 B2 JP6811504 B2 JP 6811504B2
Authority
JP
Japan
Prior art keywords
block
job
node
blockchain
solution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020131296A
Other languages
English (en)
Other versions
JP2020188503A (ja
Inventor
柴田 直樹
直樹 柴田
Original Assignee
柴田 直樹
直樹 柴田
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 柴田 直樹, 直樹 柴田 filed Critical 柴田 直樹
Priority to JP2020131296A priority Critical patent/JP6811504B2/ja
Publication of JP2020188503A publication Critical patent/JP2020188503A/ja
Application granted granted Critical
Publication of JP6811504B2 publication Critical patent/JP6811504B2/ja
Priority to US17/199,504 priority patent/US11475025B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明はブロックチェーンシステム、特にクライアントから要請された最適化問題の解探索を行うことにより有効なナンスが得られる仕組みを備えることにより、有効なナンスを見つけるための計算資源を最適化問題の解探索のために使えるブロックチェーンシステムに関する。
ビットコイン(非特許文献1)の登場以来、ブロックチェーンを利用した暗号通貨が多数開発されてきた。ブロックチェーンとはリスト構造のデータであり、データを次々と新たに追加することができ、過去に登録されたデータの修正が困難となるように設計されている。暗号通貨における全ての取引の履歴はこのブロックチェーンに保存される。ビットコインでは、プルーフオブワーク(proof-of-work、以下PoWと記す) と呼ばれる仕組みにより正しい取引の結果を決めており、コインの二重使用等を防いでいる。PoWにおいては、ネットワークに参加するノードがある計算を行うことで、ノードの持つ計算量に応じた投票権を行使できるような多数決がとられる。なりすましの容易な計算機ネットワークにおいて、PoWは非常にロバストに動作する一方、PoWのために浪費される計算資源および電力が社会問題となっている。2018 年においては、このための電力はアイルランド全体で消費される電力(3.1ギガワット) に及んだ(非特許文献2)。暗号通貨の維持のために浪費される多大な電力の問題を解決するため、PoWの代替として利用できる様々なプロトコルが考案されてきた。これらにより消費される電力を抑えられる一方、完全分散ではないものや、プロトコル特有の問題を抱えているものが多い。PoWのセキュリティの高さと頑健性は他の代替プロトコルより優れており、このためPoWに基づく暗号通貨は依然として最もよく使われている。
ビットコイン(非特許文献1)は、ロバストでセキュアな完全分散型の暗号通貨であり、取引の時間的順序をピアツーピア(以後P2Pと記す)型分散タイムスタンプサーバに記録する。この時間的順序に対して、PoWによる計算量的な証明が与えられる。ネットワークにおいては多数のIPアドレスを確保するのが容易であり、各IPアドレスに対して投票権の与えられる多数決はうまく機能しない。PoWは、このような環境において計算量の多寡に応じて投票権の与えられる多数決を実現するのに使用される。ビットコインの分散タイムスタンプサーバは、データアイテムのブロックにタイムスタンプを刻印し、多数のブロックをリンクトリストとして保存する。このリンクトリストはブロックチェーンと呼ばれる。各ブロックは、複数のデータアイテムと、一つ前のブロックのハッシュ値を含む。新しいブロックがチェーンに追加される毎に、新しいブロックのハッシュ値が計算され、ネットワーク上にブロードキャストされる。ビットコインのPoWでは、このハッシュ値が決められた数のゼロビットで始まる数値を見つける。各ブロックには、ナンスと呼ばれる整数値を格納するエントリが用意されており、ブロック全体のハッシュ値が決められた数のゼロビットで始まるナンスを持つブロックのみが、有効なブロックとして受理される。ネットワークを維持するために、新しいブロックを追加することに成功したノードにインセンティブとして新しいコインが授与される。ブロックを追加しようとするノードのことをマイナーと呼ぶ。善意のマイナーは、そのノードの知る限り最も長いチェーンにブロックを追加しようとする。大半のCPU資源が、善意のマイナーによりブロックの追加に使用される限り、正しい取引を記録したチェーンが最も速く伸びる。計算量に応じて投票権の与えられる多数決はこのようにして実現される。各ブロックが追加されるのにかかる時間をブロックタイムと呼ぶ。ハッシュ値のゼロビットの数は、ブロックタイムの期待値が10分になるように自動的に調整される。ビットコインは、下記の性質を満たす。
イ)完全分散であり、自立的に調整される。
ロ)ノードや、外部の組織、人などに一切依存しない。
ハ)ブロックに記録されたデータを変更することが困難である。
ニ)なりすましに耐性がある。
ホ)各マイナーが新たなブロックの追加に成功する確率は、そのノードのCPU 資源の量に比例する。
へ)ブロックの正当性は、任意のノードが任意のタイミングで検証できる。
ト)任意のノードが事前登録無しにいつでも参加できる。
しかしながら、ビットコインではマイナーがCPU 資源をPoWのために費やす必要があり、このCPU資源は、ハッシュ値を繰り返し計算するためだけに使われる。これは、CPU資源の浪費である。
ビットコインにより多大な電力が浪費される問題に対処するため、数々のPoWを代替するための手法が提案されてきた。プルーフオブステーク(Proof-of-stake)とプルーフオブバーン(proof-of-burn、非特許文献3)は、最近になって開発された暗号通貨に利用されている手法である。プルーフオブステークは、最初にピアコイン(Peercoin、非特許文献4)において実装された。この手法では、所持する通貨の量や、ノードの古さ、ランダム選択などを組み合わせて次のブロックを追加するノードを選ぶ。所持する通貨の量が多いノードほど頻繁にブロックを追加することができ、従って多くの新しいコインを得ることができる。このプロトコルでは、プロトコルにより選ばれた新しいブロックを追加するノードを信用する必要がある。実質的に、金持ちのノードによりネットワークがコントロールされる。プルーフオブアクティビティー(Proof-of-activity 、非特許文献5)は、PoWとプルーフオブステークの組み合わせである。この手法では、マイナーはPoWと同様の方法で、チェーンに空のブロックヘッダーを追加する。このヘッダーには、プルーフオブステークと同様の方法で複数のノードが指名されており、これらのノード群が新しいブロックに署名する。新しいブロックが全てのノードにより署名されると、このブロックはブロックチェーンの一部として受理される。この手法の利点として、ネットワークをコントロールするためにCPU資源と所持する通貨の両方が必要になること、またCPU資源の消費が純粋なPoWに比べて穏やかであることが挙げられる。プルーフオブバーン(非特許文献3)では、ある特別な宛先に送られたコインが回収不能になるような宛先を用意しておき、ノードが所持しているコインをこの宛先に送った場合に投票権が得られるようにする手法である。この手法では、投票権を持つノードを信用する必要がある。
プルーフオブユースフルワーク(Proof-of-useful-work、非特許文献6)、グリッドコイン(Gridcoin、非特許文献7)、パーマコイン(Permacoin、非特許文献8)では、多数決におけるCPU資源をより意味のある用途に利用できる。プルーフオブユースフルワーク (非特許文献6) では、多数決におけるCPU資源を直交ベクトル問題(Orthogonal Vectors problems)を解くために利用できる。プライムコイン(Primecoin、非特許文献9)では、CPU資源を新たな素数を探すために利用できる。しかしながら、これらの問題を解く社会的な需要がどれほどあるのかは明らかではない。グリッドコイン(非特許文献7)は、プルーフオブリサーチ(proof-of-research) と呼ばれる手法を利用する。この手法では、マイナーがバークレー オープンリサーチインフラストラクチャー フォー ネットワークコンピューティング(Berkeley Open Infrastructure for Network Computing、以下BOINCと記す、非特許文献10)で計算を行うことにより、マイナーに対しインセンティブを授与する。この手法では、多数決を取るためのCPU資源を非常に意味のある用途に利用することができるが、暗号通貨はBOINCシステムに依存する必要がある。したがって、BOINC システムがダウンすると、グリッドコインは動作しなくなる。
プルーフオブスペース(Proof-of-space、非特許文献11)は、証明者と検証者の間のプロトコルであり、証明者がある大きなデータをローカルストレージに保存しておく。検証者は、証明者にデータを送るよう指示し、これにより証明者がデータを保存しているか確認する。このプロトコルは、確認に必要な計算量および通信量が小さくなるように設計されている。プルーフオブスペースを完全分散のブロックチェーンにおいて利用するためには、新たなブロックを追加するのに成功したノードを決めるための方法と、各ノードがノードの追加に成功する確率を知る方法が必要になる。ノードの追加に成功する確率は、各ノードが保存しているデータ量に比例する必要がある。これらの実用上の問題については、非特許文献12で考察されている。論文中で述べられているとおり、プルーフオブスペースおよびそれを利用したブロックチェーンには、固有の弱点がある。まず、マイナーが同一のストレージ領域を利用して複数のチェーンを同時にマイニングできてしまう。また、同一のストレージ領域を利用してわずかに異なったブロックの追加を試みることができる。
特許文献1に係るブロックチェーンシステムは秘密鍵を保有する唯一の特権ノードと公開鍵を保有する複数の通常ノードにより構成されるシステムである。このシステムは秘密鍵で署名値を作ることでブロックを生成する方式であるためブロック生成にともなう計算コストが一般的なブロックチェーンに比べると格段に小さいとのことである。しかし、このシステムにおける特権ノードは信頼される必要がありこのブロックチェーンシステムは分散型ではない。
特開2020−88864
Nakamoto, S.: Bitcoin: A Peer-to-Peer Electronic CashSystem (2008). Vries, A.: Bitcoin's Growing Energy Problem (2018). P4Titan: Slimcoin A Peer-to-Peer Crypto-Currencywith Proof-of-Burn (2014). Popper, N.: In Bitcoin's Orbit: Rival Virtual Currencies Vie for Acceptance (2013). Bentov, I., Lee, C., Mizrahi, A. and Rosenfeld, M.: Proof of Activity: Extending Bitcoin's Proof of Work via Proof of Stake, ACM SIGMETRICS Performance Evaluation Review, Vol. 42, No. 3, pp. 34{37 (2014). Ball, M., Rosen, A., Sabin, M. and Vasudevan,P. N.: Proofs of Useful Work, IACR Cryptology ePrintArchive, Vol. 2017, p. 203 (2017). Halford, R.: Gridcoin: Crypto-currency using Berkeley open infrastructure network computing grid as a proof of work (2014). Miller, A., Juels, A., Shi, E., Parno, B. and Katz, J.: Per-macoin: Repurposing bitcoin work for data preservation,Security and Privacy (SP), 2014 IEEE Symposium on,IEEE, pp. 475{490 (2014). King, S.: Primecoin: Cryptocurrency with prime num-ber proof-of-work (2013). Anderson, D. P.: BOINC: A System for Public-Resource Computing and Storage, Proceedings of the 5th IEEE/ACM International Workshop on Grid Comput-ing, GRID '04, Washington, DC, USA, IEEE Computer Society, pp. 4{10 (2004). Dziembowski, S., Faust, S., Kolmogorov, V. and Pietrzak, K.: Proofs of Space, Advances in Cryptology {CRYPTO 2015 (Gennaro, R. and Robshaw, M., eds.), Berlin, Heidelberg, Springer Berlin Heidelberg, pp. 585{605 (2015). Fuchsbauer, G.: Spacemint: A Cryptocurrency Based on Proofs of Space, ERCIM News, Vol. 2017 (2015).
本願発明が解決しようとする課題は段落0003に記載したイ)からト)までの全ての長所を備えており、PoWのために浪費される計算資源を最適化問題の近似解の探索に利用でき、また任意のノードが解候補の評価プログラムであるエバリュエーターを含むジョブを登録することができる完全分散型多数決プロトコルを備えたブロックチェーンシステムを提供することである。
本願発明に係るブロックチェーンシステムのブロックチェーンをプルーフオブサーチ(proof of search)ブロックチェーンと呼び、以下PoSブロックチェーンと記す。また、本願発明に係るブロックチェーンシステムを以下本システムと呼ぶ。
本システムでは、整数値の代わりに、解候補とその評価値を連結したものをナンスとして用いる。有効なナンスを生成するためには、マイナーはエバリュエーターを実行し、何らかの解候補を評価する必要がある。多数決を取る過程において多数のナンスが生成され、従って多数の解候補が評価される。ノード間の共謀を防止するため、本システムでは二つの異なった方法でマイニングノードにインセンティブを提供する。新しいブロックを追加することに成功したマイナーに対しては、PoWと同様に新たなコインを授与する。各ジョブに対し最も良い近似解を見つけたノードに対しては、ジョブを登録したノードが料金を支払う。クライアントはマイニングをすることなくジョブを登録することができ、マイナーはジョブを登録する必要はない。もし、ジョブが全く登録されていなければ、自動的に空のジョブが登録され、これにより本システムはPoW と同等の働きをする。本明細書では、解とは近似解のことを指し、最適化問題の解を得るとは、近似解を得ることを意味する。
エバリュエーターは解探索を行う最適化問題のインスタンスを含み、与えられた解候補の評価値を決定的に計算するプログラムである。実行される環境によらず入力が同じであれば全く同じ出力を与える。ジョブは解探索の実行に必要なデータ全てであり、エバリュエーターもジョブに含まれる。任意のノード(クライアント) は、ジョブをブロックチェーンに登録することで最適化問題の解探索をリクエストする。例えば、あるクライアントが巡回セールスマン問題のあるインスタンスの解探索を行いたい場合には、そのためのエバリュエーターを実装し、これを含むジョブをブロックチェーンに登録する。この場合、都市の巡回順がエバリュエーターの入力であり、経路長が出力となる。本システムにおいては、解候補とその評価値を連結したものをナンスとする。本システムを利用したブロックチェーンが、登録された複数のジョブに含まれたエバリュエーターから次のブロックを追加するためのナンスを生成するためのエバリュエーターを選択する。PoWと同様に、次のブロックを追加するために、マイナーはナンスを含むブロック全体のハッシュ値が指定された個数のゼロビットで始まるようなナンスを探す。本システムでは、PoWと異なり、全てのナンスが有効ではない。本システムにおいては、有効なナンスを生成するために指定されたエバリュエーターを使用して解候補を評価する必要がある。この解候補と正しい評価値の組み合わせが有効なナンスである。次のブロックを追加するためには、マイナーは多数のナンスを生成する必要があり、そのために多数の解候補を評価する必要がある。マイナーが次のブロックを追加するためのナンスを見つけたということは、マイナーが多数の解候補を評価したことの確率的な証明となる。
マイナーが解候補の評価値を計算することの目的は二つある。一つはナンスを含むブロック全体のハッシュ値が指定された個数のゼロビットで始まるような有効なナンスを探し、次のブロックを追加することであり、これによりマイナーはPoWと同様にコインを得ることができる。もう一つの目的は、良い評価値を持つ解を探すことである。本システムにおいては、よい解を見つけるために多数の解候補を評価する必要があると仮定しており、全ノード中で最も良い解を見つけたノードに、クライアントの登録したジョブに含まれる料金が支払われる。以後、あるジョブの最適化問題の解候補の中で最も良い解を最良の近似解と呼ぶ。この解探索を効率化するために、クライアントはサーチャーと呼ぶプログラムを実装し、ジョブに含める。サーチャーは遺伝アルゴリズムのような解探索アルゴリズムの実装であり、マイナーにより実行される。サーチャーは内部的にエバリュエーターを何度も呼び出す。エバリュエーターが呼び出されるごとに、対応するナンスを含むブロック全体のハッシュ値を計算し、それが指定された個数のゼロビットで始まるか調べ、そうである場合は新たなブロックをネットワークにブロードキャストする。サーチャーの実行は新たなブロックがいずれかのノードによってチェーンに追加されるまで継続する。
PoWにおいては、過去の計算結果を再利用することについて考慮する必要はない。本システムにおいては、解候補の評価値の計算量がブロックのハッシュ値の計算量よりも大きいケースがあり、この場合に有効なナンスを異なったノード間で共有することで、一つの有効なナンスに対して複数のハッシュ値を計算する不正が可能になる。これを防止するため、本システムでは評価値とブロックに含まれるナンス以外のデータを関連付ける。エバリュエーターがブロックに含まれるナンス以外のデータのハッシュ値を二つ目の入力とし、この値に応じて出力にわずかな誤差を付加する。各クライアントは、この誤差を付加するアルゴリズムを独自に考案して実装する必要がある。評価値に誤差を付加することで、エバリュエーターをハッシュ関数の代わりに利用していることになるが、本システムにおいては暗号学的ハッシュ関数としての性質はそれほど強く要求されない。エバリュエーターが異なった入力に対し同じ値を出力する頻度はある程度低い必要があるが、ある程度の頻度で同じ値が出力されることは許される。
本システムの最小限の機能を利用するためのブロックチェーンのデータ構造を図1に示す。このデータ構造により、単一の固定されたエバリュエーターを利用できるが、最適化問題の良い近似解を見つけるための仕組みは持たない。以降、様々な機能を付け加える方法について述べていく。
本システムにおいては、下記の性質が成り立つ。
イ)マイナーは良い解を探してそれをクライアントに提供するインセンティブがある。
ロ)クライアントが既に良い解を知っているジョブを登録するインセンティブがない。
ハ)ジョブの登録・実行のためにコストが必要である。(この性質により価値のないジョブの登録が阻止される。)
特に、クライアントが既に良い解を知っているジョブを登録するケースについて対処が必要である。このようなジョブを登録する動機として、以下が考えられる。
(1)新たなブロックを追加する際に有利になる。
(2)新たなブロックを追加して得られるコインの利益の一部が得られる。
(3)良い解を見つけることで利益が得られる。
本システムでは、クライアントがジョブの実行に対して料金を支払うようにすることで、不正を防ぐ。上記項目(1)と(2)に関しては、段落0015で述べたように、良い解を知っていても、新たなブロックを追加する上で有利にならない。項目(3)に関しては、良い解を見つけることに対する対価はクライアントが支払うため、クライアントが利益を得ることはできない。また、良い解を見つけることに対する対価の受け渡しは、特定のノードを信頼する必要なく自動的に行われる。クライアントにより対価の支払いが確実に行われるようにするため、ジョブの受付時に対価がクライアントの口座から差し引かれる。探索の結果見つかった解はクライアントに安全に通知される。単純にあるノードが見つけた解をネットワークにブロードキャストすると、タイミングによってはこの解を別のノードが盗んでしまうことがあり得る。本システムでは、まず各ノードが見つけた解とノードIDを結合したもののハッシュ値をブロックチェーンに登録し、次のブロック時間に解を登録する。クライアントの払った対価は、最も良い解を見つけたノードに自動的に支払われる。
本システムにおいては各ブロック時間に複数のジョブが実行され得るので、ジョブの実行料金を手頃にすることができる。また、各ノードが最も良い解を見つけることで支払われる対価の期待値が、ノードの計算能力に比例する。単純にブロック時間をジョブの実行料金に比例するように調整する方法だと、少額の実行料金でジョブを登録した場合にブロック時間が短くなってしまう。ブロック時間が短くなるとブロックチェーンがフォークする可能性が大きくなってしまう問題が生じる。これを避けるため、本システムではブロック時間を変化させずに、ブロックの間に複数のミニブロックを設け、各ミニブロックが一つのジョブに対応するようにしている。図2に示すように、ミニブロックは前のブロックのハッシュ値、マイナーのIDおよび対応するナンスからなる。マイナーはいずれかのミニブロックのハッシュ値が指定された個数のゼロビットで始まるような有効なナンスを探す。段落0012で説明したとおり、有効なナンスは、ミニブロックに対応する問題のインスタンスの解候補とその評価値からなる。そのようなナンスが見つかるたびに、マイナーはナンスを含むミニブロックをブロードキャストする。PoSブロックチェーンの末尾のブロックがチェーンに付加した後の1ブロックタイムの間にブロードキャストされた全てのミニブロックに対応するナンスが見つかると、ミニブロックの前にある最後のブロックがブロックチェーンに加わる。この時新たなコインが発行され、各ミニブロックに対応するナンスを見つけたノード全てに、新たに発行されたコインが支払われる。メッセージ配送遅延により、ネットワーク中の異なったノードがある時間までに受け取ったメッセージの集合は異なる可能性がある。従って、異なったマイナーは、異なった内容のブロックをネットワークに追加するために計算を行っている可能性がある。これはつまり、これらの二つのマイナーが探しているナンスに対応するミニブロックに含まれる、最後のブロックのハッシュ値が異なる可能性があるということである。ミニブロックに起因するブロックチェーンのフォーク(ミニフォーク) を防止し、より大きな数のマイナーが同じブロックをチェーンに追加するための計算を行うようにするため、本システムでは各マイナーは可能な限り最も長いチェーンに対して新たなブロックを追加するために計算を行う。ここで、あるチェーンが別のチェーンより多くのブロックを含むとき、チェーンの長さがより長いとし、またブロックの数が同じ場合、最後のブロックの後にあるミニブロックの数が多いチェーンの長さがより長いとしている。マイナーがミニブロックを受信したときに、そのチェーンがより長い場合は、このチェーンに対して新たなブロックを追加するために計算を行う。マイナーがミニブロックをブロードキャストする際には、最後のブロックとそれ以降のミニブロック全てをブロードキャストする。
本システムでは、エバリュエーターとサーチャーを実行するための環境が必要となる。任意のユーザーがジョブを登録することができるため、ジョブに含まれるプログラムが適切に実装されてない場合に備える必要がある。まず、プログラムが終了しない場合に備え、定められたステップ数の実行の後にプログラムを強制終了する機能を備えている。プログラムは決定的に動作する必要があるため、このステップ数のカウントは正確である必要がある。エバリュエーターがクラッシュした場合、最も低い評価値が返されたものとして扱う。上記をふまえて、ジョブの実行環境は下記の条件を全て満たす。
イ)信頼できないコードを安全に実行できる。
ロ)エバリュエーターを決定的に動作させられる。
ハ)アーキテクチャによらず、実行ステップ数を決定的に数える機能を持つ。
ニ)実行ステップ数を返す。
ホ)指定されたステップの実行の後、実行を中断する。
上記の全ての条件を満たす実行環境を、インタプリタとして実装することは容易である。実行環境中で非決定的な動作をするAPIを提供しないことで、決定的な動作を実現している。
ブロックチェーンに登録されたすべてのエバリュエーターはチェーンを検証するために実行されなければならない。しかし、エバリュエーターのサイズはハッシュ値よりもかなり大きいと想定されるので、全てのエバリュエーターを保持するための貯蔵スペースはブロックチェーンの運営にとってかなり重い負荷となる可能性が高い。貯蔵に要するスペースはチェーン検証の要求を緩和することにより小さくすることができる。参加者が、一定数のブロックを検証すれば十分と考えるなら、古いブロックに記録されているジョブの情報を廃棄できる。図2において古いブロックでは点線より上のハッシュ値のみ検証し点線より下の情報は廃棄し得る。このような緩和した検証方法を採用しても新しいブロックの全てのPoSをやり直すことなく古いブロックのアイテムを改変することは極めて困難である。
第1の発明に係るブロックチェーンシステムは、ピアツーピアネットワークに参加するノードにより運営されるブロックチェーンシステムであって、各ノードはジョブを作成しブロックチェーンにブロードキャストする手段と、他のノードから受信したブロックが真正かどうかを検証する手段とを有し、ブロックは一つ前のブロックのハッシュ値とブロードキャストされたジョブの中から選んだジョブと、ナンスからなり、前記ナンスは、当該ブロックに対応するジョブに含まれる最適化問題の解候補とその解候補の評点を結合したものであり、ブロックが真正であるとは、ブロック中のナンスの解候補と評点が対応することであることを特徴とするものである。
第2の発明に係るブロックチェーンシステムは、第1の発明に係るブロックチェーンシステムであって、各ノードはミニブロックを作成しブロックチェーンにブロードキャストする手段と、他のノードから受信したミニブロックが真正かどうかを検証する手段とを有し、ブロックは複数の前記ミニブロックを含み、前記ミニブロックは、ブロックのミニブロック以外の部分のハッシュ値とそのミニブロックを作成したノードのIDとブロードキャストされたジョブの中から選んだ一つのジョブと、ナンスからなり、前記ミニブロックのハッシュ値が要求された数のゼロビットで始まる数である場合にのみ当該ミニブロックはブロックに含まれることができ、当該最後のブロックは、要求された全てのジョブに対応するミニブロックの全部が当該最後のブロックに含まれた時にブロックチェーンの末尾に結合することを特徴とするものである。
第3の発明に係るブロックチェーンシステムは、第2の発明に係るブロックチェーンシステムであって、前記のジョブは、それを作成したノードのIDと、それを作成したノードが最良の近似解を得ることを希望する最適化問題と、最良の近似解を算出したノードに支払う料金と、エバリュエーターを備えており、前記エバリュエーターは解候補を評価し評点を付すプログラムであり、前記エバリュエーターの出力する評点の最も高い解をブロードキャストしたノードがその最適化問題に設定された料金を得ることを特徴とするものである。
第4の発明に係るブロックチェーンシステムは、第1ないし第3の発明に係るブロックチェーンシステムであって、上記の解候補を探索するために実行したステップ数を決定的に数える機能と、実行したステップ数を返す機能と、指定されたステップ数を実行した後に解候補探索のプログラムを強制終了する機能を備えていることを特徴とするものである。
第5の発明は、第1の発明ないし第4の発明に係るブロックチェーンシステムを実現するためのコンピュータープログラムである。
ビットコインと同等にロバストでセキュアな完全分散型のブロックチェーンシステムであって、ビットコインではその維持のために浪費されている計算資源と電力を、任意のユーザー(クライアント)が登録した最適化問題の近似解の探索に利用出来るブロックチェーンシステムが提供される。
本システムの最小限の機能を利用するためのブロックチェーンのデータ構造の概念図である。 本システムにおける分散タイムスタンプサーバの概念図である。
つぎに、本発明の実施形態を説明するが、本発明の技術的範囲を逸脱しない範囲において様々な変更や修正が可能であることは言うまでもない。
あるクライアントが、最適化すべき問題のインスタンスを持っている。このクライアントは、問題のインスタンスに対するエバリュエーターとサーチャーを実装し、このインスタンスの解探索に支払う料金を決める。次に、エバリュエーター、サーチャー、料金を組み合わせてジョブを作り、ブロックチェーンに登録する。この料金は自動的に引き落とされる。このジョブのためにマイナーが使用するCPU資源の期待値は、料金に比例する。マイナーはこの問題の解を探索するためにCPU資源を使う。見つかった解は、ブロックチェーンに登録され、クライアントは支払った料金と引き替えに見つかった解を得る。ここではいつでも十分な数のマイナーがいると仮定する。最も長いチェーンにブロックを追加するために、解探索を行えるジョブは通常複数用意されている。もしジョブを登録するクライアントが居ない場合、通常のPoWにフォールバックし、ミニブロックのハッシュ値が決められた数のゼロビットで始まるようなナンスを見つけるジョブが自動的に追加される。マイナーはサーチャーとエバリュエーターをジョブから抽出し、サーチャーを実行する。サーチャーは、実行中に多数の解候補を生成し、エバリュエーターを何度も呼び出すことでこれらの解候補を評価する。マイナーが良い解候補を見つけた場合、その解候補は保存しておく。マイナーが解候補を評価する際、有効なナンスを生成し、このナンスを含むミニブロック全体のハッシュ値を計算する。もし、このハッシュ値が決められた数のゼロビットで始まる場合、マイナーはこのナンスを含むミニブロックをネットワークにブロードキャストする。新しいミニブロックを追加するのに成功したマイナーは、PoWと同様にコインが授与される。マイナーが、ブロードキャストされた新しいミニブロックを受け取ると、そのマイナーはすぐにそのミニブロックを含む最も長いチェーンに対して新しいミニブロックを追加する処理にとりかかる。これにより、ミニフォークを防ぐことができる。全てのミニブロックが追加されるまでブロックタイムが続く。ブロックタイムの終了後、各マイナーは見つけた中で最も良い解をブロックチェーンに登録する。全てのマイナーの中で最も良い解を見つけたマイナーに対し、ジョブに添付された料金が支払われる。
クライアントとマイナーが共謀することで本来より多くのコインを得ようとするケースについて述べる。マイナーが新しいブロックを追加するためには、ブロック全体のハッシュ値が決められた数のゼロビットで始まるようなナンスを探す必要がある。これは、基本的にはランダムな解を選んでハッシュ値を計算することの繰り返しであり、ジョブの問題やそれに対する解とは関係がない。従って、新しいブロックを追加して得られるコインを得るためにクライアントとマイナーが共謀するメリットはない。一方、クライアントは、あるジョブを登録する前に解を計算しておき、その結果を共謀したマイナーに教えるケースが考えられる。しかし、良い解を見つけたことに対する料金はクライアントから共謀したマイナーに支払われるのであり、これはクライアントからマイナーに送金しているのと同じである。送金は、暗号通貨の基本操作で行うことができる。
本システムはPoWを強化したものでありPoWと同じ技術を用いている。PoSブロックチェーンはピアツーピアネットワークとして構成される。ネットワーク全体は固定トポロジー(fixed topology)無しに緩やかに結合している。あるノードがネットワークに参加するためにはすでに参加しているノードを一つは知っている必要がある。各ノードは無作為に選ばれたいくつかのノードと繋がっている。メッセージはゴシッププロトコル(gossip protocol)によってブロードキャストされる。各ノードはブロックチェーンの全情報のコピーを保持している。本プロトコルではどのノードもジョブを登録し解を受け取ることができる。これはクライアントの観点からみると大変単純でありアルゴリズム1に示される。あるジョブが実行されその結果として支払いが為されるためには少なくとも4ブロックタイムを要する。下記は最速のシナリオでジョブがどのように処理されるかを示す。
アルゴリズム1 ジョブ実行をリクエストする。
入力:ジョブ実行リクエスト q
出力:探索によって得られた最も良い解 s
1: q をブロックチェーンに登録する。
2: 解 s が得られるまで待つ。
3: s を返す。
あるブロックタイムをブロックタイム0とし、それに続くブロックタイムをブロックタイム1、ブロックタイム2、ブロックタイム3、ブロックタイム4とする。この時、各ブロックタイムにおいて以下のことが為される。
ブロックタイム0においてあるジョブがクライアントによりブロードキャストされる。
ブロックタイム1においてこのジョブの有効性が調べられる。このジョブの料金がクライアントのアカウントから取り出され取り置かれる。このジョブがブロックタイム2で実行されるべく選ばれる。
ブロックタイム2においてこのジョブが実行される。
ブロックタイム3において各ノードはこのジョブについて発見した解のハッシュ値をブロードキャストする。ハッシュ値はブロックチェーンに登録される。
ブロックタイム4においてこのジョブの最良の近似解を発見したノードに料金が支払われる。
ジョブの実行と支払いは全てマイナーにより処理される。マイナーはジョブをパイプラインの方法で処理する。アルゴリズム2はマイナーの観点からジョブがどのように処理されるかを示す。
アルゴリズム2 マイニング。
1: 新たなブロックが(他のノードによって)追加されるまで待つ。
2: 以降新たなブロックが追加されたチェーンについて処理を行う。
3: while true do
4: // 次のブロック時間に実行されるジョブに関する処理。
5: 未実行の有効なジョブのリストを作成する。
6: 次のブロック時間に実行されるジョブを選択する。
7: クライアントの口座からこれらのジョブの実行料金を引き落とす。
8: 追加しようとするブロックにこれらのジョブを追加する。
9: // このブロック時間に実行されているジョブに関する処理。
10: 新しいトランザクションを検証し,追加しようとするブロックに追加する。
11: // 2ブロック時間前(上記のブロック時間の前)に実行されたジョブに関する処理。
12: ブロックチェーンに登録された情報(マイナーのIDと解の評価値)を参照し,2ブロック時間前に見つけた解が最も良い解であったか調べる。もしそうであれば,見つけた解をブロックチェーンに追加する。
13: // 3ブロック時間前に実行されたジョブに関する処理
14: ブロックチェーンに登録された解が真正か調べ,そうであれば支払いの手続きを行う。
15: repeat
16: 追加しようとしているブロックにある完了してないジョブのうち一つを選んで,新しいミニブロックを受信する(もしくは規定数のゼロビットで始まるナンスを見つける)まで実行する。
17: (規定数のゼロビットで始まるナンスを見つけた場合には)ハッシュ値をブロックチェーンに登録する。
18: (新しいミニブロックを受信した場合には) アルゴリズム3によりチェーンを検証する。
19: if 新しいミニブロックが有効で,それに対応するチェーンがより長い場合 then
20: 以降そのミニブロックに対応するチェーンに対して処理を行う。
21: 変更後のチェーンに含まれないトランザクションを新規に受信したトランザクションのリストに移動する。
22: end if
23: until 新しいブロックが追加されるまで
24: end while
2つのスレッドが並列して走っており、その一つはアルゴリズム2である。もう一つのスレッドでは新しく受信されたアイテムはアイテムリストの最後尾に付加される。ブロックチェーンにアイテムを登録するためには、アイテムはネットワークにブロードキャストされなければならない。マイナーに受信されたアイテムはアイテムリストの末尾に付加される。アルゴリズム2が始まると、マイナーはまず作業するチェーンを選ぶ。(2行目)。有効なチェーンが複数存在し得る。それらは、みな同じブロックから始まっている。ある特定のブロックの並び、あるいはチェーンは、末尾のブロックにより特定される。マイナーは最初に受信されたブロックに伴われたチェーンについて作業を始める。
5行目でクライアントの口座の残高がチェックされる。
8行目で、全てのマイナーが同一のジョブセットで作業するようにするために、どのジョブセットにするかについての合意形成と、ゼロビットの数についての合意形成が作業開始前に為されなければならない。
16行目で、サーチャーが段落0019で説明した実行環境で実行される。サーチャーの一例としてアルゴリズム4でランダムサーチャールゴリズムが示される。段落0014で説明したようにこのサーチャーは内部的に対応するエバリュエーターを呼び出す。エバリュエーターは呼び出される都度自動的にエバリュエーションの結果とナンスを生み出し、そのハッシュ値が要求された数のゼロビットで始まるかどうかをチェックする。もしそうであれば新しいミニブロックがブロードキャストされサーチャーの実行が終了する。サーチャーの実行は新しいミニブロックが他のマイニングノードによって付加された時も終了する。新しいブロックが付加された時そのブロックの最後のミニブロックも付加されることに留意されたい。
18行目で、ミニブロックを伴うチェーンが検証される。このプロセスはアルゴリズム3に示されている。このアルゴリズムは段落0018と段落0020で説明されている通りに作動する。ノードが以前検証したチェーンに含まれていたブロックあるいはミニブロックと厳密に同一のブロックあるいはミニブロックは検証する必要は無い。
21行目ではオーファンブロックに含まれていたアイテムは新たに受信したアイテムのリストに移動する。オーファンブロックとは以前はマイナーが作業していたチェーンの一部であったものが、今はもはやマイナーが別のチェーンで作業しているためチェーンの一部ではなくなっているブロックである。
アルゴリズム3 チェーンの検証。
入力:ミニブロック b
出力:b に対応するチェーンを検証し,検証に成功したか否かを返す。
1: for b に対応するチェーンの全てのブロック k を古いものから順に
2: if もし k の検証に前に成功しているなら
3: continue
4: end if
5: k 内のトランザクションを調べ,もし無効なものがあれば false を返す。
6: if k が古いなら then
7: 段落0020で述べた,緩い基準で検証を行い,失敗すれば false を返す。
8: else
9: for kと次のブロックの間の全てのミニブロック m について do
10: if もし m の検証に前に成功しているなら
11: continue
12: end if
13: エバリュエーターを実行し,ナンスと評価値が対応するか調べる。対応しなければ false を返す。
14: end for
15: end if
16: end for
17: true を返す。
アルゴリズム4 ランダムサーチ。
入力:追加しようとしているブロックのハッシュ値 h, ノードID id, エバリュエーター ev
出力:探索で見つかった最も良い解
1: bests := null, beste = null
2: repeat
3: 解候補 s をランダムに生成する。
4: e := ev(s, hash(h, id))
5: if e が beste より良い then
6: beste := e, bests := s
7: end if
8: h := hash(h, id, s, e)
9: if h が規定の数のゼロビットで始まる then
10: ミニブロックをブロードキャストする。
11: break
12: end if
13: until 新しいミニブロックを受信するまで
14: [bests, beste] を返す。
ユーザーの視点からPoSブロックチェーンがどのように役立つのかを説明する。解決してほしい最適化問題を有するクライアントを想定する。当該クライアントはその問題のためのエバリュエーターとサーチャーを実装しその解の料金を決定する。次いで当該クライアントはエバリュエーターとサーチャーと料金を組み合わせてジョブを作成しこれを登録する(アルゴリズム1)。料金はジョブが登録されたら当該クライアントのアカウントから自動的に引き出される。このジョブに想定される計算量はその料金に比例する。マイナーはこの問題の良い解を見つけるべくブロックチェーンで作業する。発見された解はブロックチェーンに登録される。クライアントは料金と引き換えに最良の近似解を得る。出願人はチェーンに新しいブロックを付加しようと試みているマイナーが常に多数存在していると想定している。今まさに最長チェーンのブロックタイムが開始したとする。チェーンは作業すべき多数のジョブを提供する。マイナーはその中から一つのジョブを選ぶ。もし登録されたジョブが存在しない場合は、PoWに戻りブロックのハッシュ値を要求された数のゼロビットで始まるようにするナンスを発見するための空のジョブが挿入される。マイナーはジョブからサーチャーとエバリュエーターを抽出しサーチャーを実行する。サーチャーの実行においてサーチャーはエバリュエーターを何回も呼びだし多数の解候補を作出して評価する。マイナーは良い解の候補を発見したらこれを後に利用するため保持しておく。マイナーは解候補を評価する都度有効なナンスを作りこのナンスを含むミニブロックのハッシュ値を計算する。もしハッシュ値が要求された数のゼロビットで始まっていればマイナーはこの発見されたナンスを含むミニブロック及び直前のブロックをブロードキャストする。新しいミニブロックを付加することに成功したマイナーはPoWと同じように報酬を受け取る。マイナーは、新しいミニブロックが付加されたことに気づいたら、以降このミニブロックを含むチェーンに対し新しいミニブロックを付加するための作業を始める。これは、ミニフォークを避けるためである。ブロックタイムは全てのミニブロックが付加されるまで続く。ブロックタイムが終了した後マイナーは彼が発見した中の最良の解をブロックチェーンに登録する。ジョブの最良の近似解を見つけたノードがその料金を得る。
あるクライアントとマイナーが不正にコインを得るために共謀したとする。このマイナーが新しいブロックを付加するためには要求された数のゼロビットで始まるハッシュ値を与える有効なナンスを発見する必要がある。これは本質的にランダムな解候補を取り上げそのハッシュ値を計算することである。問題と解はここでは問題ではない。それゆえクライアントとマイナーに共謀のメリットはない。他方クライアントはジョブを登録する前にそのジョブの計算をし、その解を共謀相手のマイナーに教えることができる。しかし結果としての報酬はそのクライアントが共謀相手に支払うことになるのでメリットはない。クライアントが共謀相手にコインを送ればよいので、これは暗号通貨の通常のトランザクションである。
コインの流れとインセンティブの概要は以下のとおりである。ジョブの最良の近似解を発見することのインセンティブとしては、各クライアントはジョブを登録するときに料金を支払う。この料金は登録時に自動的に引き抜かれジョブが完遂されるまでシステムが保持している。登録されたジョブはマイナーによって実行される。ジョブの実行後、システムは各ジョブについてどのマイナーが最良の近似解を発見したかを知る。システムは最良の近似解を発見したマイナーのアカウントに料金を支払う。
新しいミニブロックを付加することに対するインセンティブは以下のとおりである。システムは各ミニブロックのハッシュ値先頭部のゼロビットの数をジョブの料金に応じて決定する(段落0018)。ブロックタイムが始まったら各マイナーは作業するミニブロックを選び対応するサーチャーを実行する。サーチャーの実行において多数のナンスが生成される。ナンスが生成される都度マイナーはそのナンスを含むミニブロックのハッシュ値が要求された数のゼロビットで始まるかをチェックする。要求された数のゼロビットで始まるハッシュ値を与えるナンスを得たマイナーは新しいミニブロックの付加に成功し報酬を受け取る。この報酬の額は要求されたゼロビットの数に応じて決められる(段落0018)。
本願発明に係るブロックチェーンシステムは、PoWシステムで無駄に消費されているエネルギーを、任意のユーザーにより登録された問題を解くために利用できるものである。本システムで創成される暗号通貨は、堅固で安全で分散型のプロトコルを備えており、既に普及しているPoWに基づく暗号通貨に代替し得るものである。本システムはいかなる外部組織や外部システムにも依存していない点でグリッドコインよりも優れている。
本システムのユーザーは3種類に分けられる。そしてこれらのユーザーは互いに独立している。第1のユーザーはPoSブロックチェーンを決済の手段として利用する者である。第2のユーザーはその計算力を暗号通貨を稼ぐために使う者である。既存のブロックチェーンはこの2種類のユーザーを持つ。本システムは第3のユーザーをも持つ。第3のユーザーはPoSブロックチェーンを計算インフラとして利用する者である。
本プロトコルにより提供される計算サービスは中間結果がパブリッシュされ得る計算問題にとって有益である。BOINCの普及状況と公共クラウドを鑑みるとこのような計算サービスに対する需要は大きいと期待する。本プロトコルの計算はASIC耐性である。このことは通常のCPUによるマイニングを、より利益の上がるものにする。クラウドコンピューティングと違って、マイニングに用いられるコンピュータは信頼できるものである必要は無い。計算資源が浪費されることが無いので公共機関やより一般的なユーザーが参加することが期待される。このことは本システムを既存のブロックチェーンよりももっと分散化されたものにするであろう。

Claims (5)

  1. ピアツーピアネットワークに参加するノードにより運営されるブロックチェーンシステムであって、
    各ノードはジョブを作成しブロックチェーンにブロードキャストする手段と、他のノードから受信したブロックが真正かどうかを検証する手段とを有し、ブロックは一つ前のブロックのハッシュ値とブロードキャストされたジョブの中から選んだジョブと、ナンスからなり、前記ナンスは、当該ブロックに対応するジョブに含まれる最適化問題の解候補とその解候補の評点を結合したものであり、ブロックが真正であるとは、ブロック中のナンスの解候補と評点が対応することであることを特徴とするブロックチェーンシステム。
  2. 請求項1に記載のブロックチェーンシステムであって、
    各ノードはミニブロックを作成しブロックチェーンにブロードキャストする手段と、他のノードから受信したミニブロックが真正かどうかを検証する手段とを有し、
    ブロックは複数の前記ミニブロックを含み、前記ミニブロックは、ブロックのミニブロック以外の部分のハッシュ値とそのミニブロックを作成したノードのIDとブロードキャストされたジョブの中から選んだ一つのジョブと、ナンスからなり、
    前記ミニブロックのハッシュ値が要求された数のゼロビットで始まる数である場合にのみ当該ミニブロックはブロックに含まれることができ、
    当該最後のブロックは、要求された全てのジョブに対応するミニブロックの全部が当該最後のブロックに含まれた時にブロックチェーンの末尾に結合することを特徴とするブロックチェーンシステム。
  3. 請求項2に記載のブロックチェーンシステムであって、
    前記のジョブは、それを作成したノードのIDと、それを作成したノードが最良の近似解を得ることを希望する最適化問題と、最良の近似解を算出したノードに支払う料金と、エバリュエーターを備えており、前記エバリュエーターは解候補を評価し評点を付すプログラムであり、前記エバリュエーターの出力する評点の最も高い解をブロードキャストしたノードがその最適化問題に設定された料金を得ることを特徴とするブロックチェーンシステム。
  4. 請求項1ないし3に記載のブロックチェーンシステムであって、上記の解候補を探索するために実行したステップ数を決定的に数える機能と、
    実行したステップ数を返す機能と、
    指定されたステップ数を実行した後に解候補探索のプログラムを強制終了する機能を備えていることを特徴とするブロックチェーンシステム。
  5. 請求項1ないし4に記載のブロックチェーンシステムを実現するためのコンピュータープログラム。
JP2020131296A 2020-08-01 2020-08-01 最適化問題の解探索を利用した合意形成プロトコルを備えたブロックチェーンシステム及びコンピュータープログラム。 Active JP6811504B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020131296A JP6811504B2 (ja) 2020-08-01 2020-08-01 最適化問題の解探索を利用した合意形成プロトコルを備えたブロックチェーンシステム及びコンピュータープログラム。
US17/199,504 US11475025B2 (en) 2020-08-01 2021-03-12 Blockchain system comprising consensus protocol using search for good approximate solutions to any optimization problem and its computor program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020131296A JP6811504B2 (ja) 2020-08-01 2020-08-01 最適化問題の解探索を利用した合意形成プロトコルを備えたブロックチェーンシステム及びコンピュータープログラム。

Publications (2)

Publication Number Publication Date
JP2020188503A JP2020188503A (ja) 2020-11-19
JP6811504B2 true JP6811504B2 (ja) 2021-01-13

Family

ID=73222215

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020131296A Active JP6811504B2 (ja) 2020-08-01 2020-08-01 最適化問題の解探索を利用した合意形成プロトコルを備えたブロックチェーンシステム及びコンピュータープログラム。

Country Status (2)

Country Link
US (1) US11475025B2 (ja)
JP (1) JP6811504B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021137792A (ja) 2020-03-09 2021-09-16 株式会社リコー 液滴吐出方法、組織体入り容器の製造方法及び液滴吐出装置
CN113934933B (zh) * 2021-10-15 2024-04-05 北京智融云河科技有限公司 低延迟的消息转发方法、设备及存储介质
US11956368B2 (en) * 2021-12-17 2024-04-09 Advanced Micro Devices, Inc. Enhanced method for a useful blockchain consensus
JP7076757B2 (ja) * 2022-01-29 2022-05-30 直樹 柴田 ブロックの分割によりスループットを改善したブロックチェーンシステム及びコンピュータープログラム
CN117291273B (zh) * 2023-11-24 2024-02-13 合肥微观纪元数字科技有限公司 量子计算区块链系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10509684B2 (en) * 2015-04-06 2019-12-17 EMC IP Holding Company LLC Blockchain integration for scalable distributed computations
US11210369B2 (en) * 2018-01-19 2021-12-28 Nasdaq, Inc. Systems and methods of digital content certification and verification using cryptography and blockchain
US20200342449A1 (en) * 2019-04-29 2020-10-29 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing an api gateway to authorize and charge a fee for a transaction between cloud computing customers using distributed ledger technologies (dlt)
US11336455B2 (en) * 2019-09-25 2022-05-17 International Business Machines Corporation Consensus protocol for blockchain DAG structure
US11405183B2 (en) * 2020-01-29 2022-08-02 Salesforce.Com, Inc. Using cache objects to store events for adding corresponding objects in a blockchain
US11488162B2 (en) * 2020-02-26 2022-11-01 Salesforce.Com, Inc. Automatically storing metrics relating to payments in a blockchain

Also Published As

Publication number Publication date
JP2020188503A (ja) 2020-11-19
US11475025B2 (en) 2022-10-18
US20220035808A1 (en) 2022-02-03

Similar Documents

Publication Publication Date Title
JP6811504B2 (ja) 最適化問題の解探索を利用した合意形成プロトコルを備えたブロックチェーンシステム及びコンピュータープログラム。
Zheng et al. An overview of blockchain technology: Architecture, consensus, and future trends
Yakovenko Solana: A new architecture for a high performance blockchain v0. 8.13
Wahab et al. Survey of consensus protocols
WO2019222993A1 (zh) 一种基于信任关系的区块链共识方法
US20200092085A1 (en) Blockchain system including a distributed network of a plurality of nodes and a method for achieving an agreement between the plurality of nodes executed by processors of the block chain system
Shibata Proof-of-search: combining blockchain consensus formation with solving optimization problems
CN109196538A (zh) 分布式交易传播和验证系统
CN110610421B (zh) 分片框架下的保证金管理方法及装置
CN115427995A (zh) 时间锁定的区块链事务和相关区块链技术
Sun et al. Rtchain: A reputation system with transaction and consensus incentives for e-commerce blockchain
WO2021009496A1 (en) Peer-to-peer network and method
US11062280B1 (en) Network consensus-based data processing
CN111951108A (zh) 一种具有图灵完备智能合约区块链的链结构设计方法
US20230017790A1 (en) Graphic-blockchain-orientated hybrid consensus implementation apparatus and implementation method thereof
Liu et al. An intelligent strategy to gain profit for bitcoin mining pools
JP2021531689A (ja) アセット混合のための、コンピュータにより実施されるシステム及び方法
Hentschel et al. Flow: Separating Consensus and Compute--Block Formation and Execution
Dorsala et al. Fair protocols for verifiable computations using bitcoin and ethereum
CN113448694B (zh) 一种提高事务处理能力的区块链共识方法
Li et al. Nf-crowd: Nearly-free blockchain-based crowdsourcing
Thai et al. A scalable semi-permissionless blockchain framework
Mahmood et al. Survey of consensus protocols
Cheng et al. A new hybrid consensus protocol: Deterministic proof of work
Jangid et al. An Overview of Blockchain Technology: Architecture, Consensus, and Future Trends

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200813

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200813

A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20200806

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20201023

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201208

R150 Certificate of patent or registration of utility model

Ref document number: 6811504

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250