Proof of Xの合成理論

General Proof of Unit

Sora Suegami
10 min readAug 3, 2019

1. Introduction

現在、Proof of Work、Proof of Stake、Proof of Burnなど、シビルコントロールメカニズムが多数考案されています。かくいう私も、Proof of Unitというものを設計しました。そこで、一つのブロックチェーンが複数の”Proof of X”を一緒に扱うことのできる、Proof of Xの合成理論、"General Proof of Unit”を提案したいです。以下では、この理論の具体的な内容、及びその応用について説明していきます。

2. General Proof of Unit

General Proof of Unitでは、まずシビルコントロールメカニズムの抽象的な枠組みを定義し、かけられたコスト(miningの電気代など)を全てunitという単位に還元します。このunitを合意形成アルゴリズムに置いての投票力として扱うことで、複数のシビルコントロールメカニズムを統一的に扱うことができるのです。

以下の変数と関数を抽象的に定義します。

General Proof of Unit
General Proof of Unit
  • task: 行われる仕事を表す変数。
  • product: taskを遂行して生成される成果物を表す変数。
  • unit: 合意形成アルゴリズムに置いて、投票力を表す変数。
  • cost: productを1つ生成するために費やした費用を表す変数。ただし、その値は実数で表されます。
  • task_0: 複数の種類のtaskが同時に存在する中で、基準となるtaskを表す変数。
  • cost_0: task_0においてproductを1つ生成するのに費やすcostを表す変数。ただし、複数の値が存在する場合はその最小値を採用する。
  • Work: taskを遂行してproductを生成する関数。
  • Verify: productがtaskを正しく遂行してできたものかを検証する関数。
  • Generate: productからunitを生成する関数。
  • Estimate: productを生成した際のcostを求める関数。
  • Value: productまたはunitの価値(重み)を表す関数。

たくさんの変数・関数が登場していますが、シビルコントロールメカニズムが1種類だけなら、task, product, Work, Verifyだけを適切に定義すればいいです。一方、複数のメカニズムを組み合わせるならば、unitやcost、Estimateなども忘れてはいけません。これらは、「taskの種類に関わらず、同じ価値のunitを生成するために必要なcostは同じである」ということを保証するために使われます。

productからunitがGenerateされる際に成り立つのが以下の変換式です。

この式によって、 taskの種類に関わらず、同じ量のunitを生成するためには同じだけのcostをかけなければならないことが保証されています。

このように、productを作るcostを考慮してunitを生成することで、「低コストでproductを作れるtaskを利用して、51%以上のunitを獲得する」といった問題を回避できます。General Proof of Unitは、複数のシビルコントロールを安全に合成することができるのです。

3. Security Import

General Proof of Unitのtaskに、他のブロックチェーンでのminingなどを設定すると、他チェーンからsecurityをimportすることが可能です。ここでは、Bitcoinのmining計算で生成されたhashをunitに変換するという場合を考えてみましょう。ただし、6ブロック承認されたBitcoinのブロックのhashはあらかじめ取得されており、そのブロックは他の最長チェーンによって置き換えられないと仮定します。

hash関数に入れるseed値(previous hashなど)をtask、miningしてできるhashをproductに代入します。そして、Work関数をminingの処理、Verify関数を「正しいseed値が使われているかつ、target値より小さいかを検証する処理」、Estimate関数を「完全競争市場でproductを売買することで価格=限界費用を取得する処理」と置きます。これは、以下のような取引・処理を意味しています。

まず、Bitcoinのminingで生成されたhashは、「そのhashを購入してunitを獲得したい」という人(ここではvalidatorと呼びます)によって買われます。(この時使われる通貨は、General Proof of Unitを実装するチェーン上のものになります。)もしこの市場が完全競争市場ならば、その価格はBitcoinブロックチェーンにおいて有効なhashを1個作るのに必要なコストと等しくなり、そのコスト分のunitが生成されます。(このunitの所有権は、minerではなくvalidatorにあります。)つまり、unitの総数=改竄コストが増加するのです。

以上のように、他チェーンで動くシビルコントロールメカニズムをそのままtaskに設定すると、そのチェーンからsecurityをimportすることができます。あらゆるブロックチェーンがBitcoin級のsecurityを得られるようになるかもしれません。

4. Resource Layer

コンピューティングパワーやデータなどの計算資源・情報資源も、 securityの向上に役立てることが 可能です。例えば、分散コンピューティングの場合、計算を依頼した い問題を task として割り当てると、計算の依頼者は答えを知れるだけでなく、その計算コスト分の unit を生成できます。

具体的には、依頼者は「この計算を解いてくれたらいくら支払う」というように計算を依頼し、計算者はその答えを計算し提示します。(この時、容易に検証してもらえるようにゼロ知識証明プロトコルなどを利用します。)この計算時のコストは、単位計算ステップ当たりのcostを考慮してunitに変換され、ブロックチェーンのsecurityを向上させるのです。

ここで、”Resource Layer”という新たな層をブロックチェーンに追加することを提案したいです。Applicationはコンピューティングパワーやデータ、ストレージをこの層から調達できる一方、Protocolはこの層で消費されたコストを改竄コストの足しにできます。

Resourceが一種のミドルウェアとして利用できるようになることで、ブロックチェーンは「量的な」優位性を得ると私は考えています。今までは、改竄や不正が困難という「質的な」強みがありつつも、それは信頼できる第三者がいれば可能なことでした。(もちろん、その信頼されるべき第三者が信頼できないので、この強みが無駄ということはないです。)しかし、Resource Layerで世界中の計算資源・情報資源へアクセス可能になると、個人や一企業では不可能な規模でのシュミレーションやDeep Learningなども行えるようになるかも知れません。このような意味で、ブロックチェーンは量的にも進化していくのです。

5. Future Tasks

General Proof of Unitはとても魅了的な応用可能性を持つ一方、課題もまだたくさんあります。
まず、Verify関数やEstimate関数をより柔軟に設計できるようにしなければなりません。前者は、数学的・暗号学的に検証可能なものは簡単に実装できますが、現実で起こったことなどは難しいです。例えば、ゴミ拾いをtaskに設定した場合、「本当にその重量のゴミを集めたのか」「それは家庭ごみではないか」というのをトラストレスに検証しようと思うと、結局はオラクル問題を解かないといけません。後者は、完全競争市場の仮定が成り立たなくても、その限界費用を正しく取得できるメカニズムを設計する必要があります。「決められたメンバーしかproductを作れないtask」みたいなものが出てきても、costを実際より高く設定されないようにしなければならないです。(でないと、他より低コストでunitを生成できてしまいます。)逆に、これらの問題を解決し、任意のtaskにVerify関数とEstimate関数を設計できるようになると、任意の仕事をブロックチェーンのsecurity向上のために活かせます。社会的意義はあるけどビジネスにならなかったものも、General Proof of Unitに組み込むことで収益化できるかもしれません。

他の課題としては、スケーラビリティの向上も欠かせません。productの購入トランザクションを、layer 2で安全に行う方法を確立する必要があります。この時難しいのが、「一人だけ」をどうやってlayer 2で保証するかです。例えば、miningなら同じhashが二重に購入されるのを防がなければなりません。

解決すべき課題はたくさんありますが、どれもやりがいがありますね。

6.Conclusion

数多のシビルコントロールメカニズムが登場する中、General Proof of Unitは、かけられたコストを全てunitという単位に還元することで、それらを統合的に扱うことを可能にします。そして、他のブロックチェーンのシビルコントロールメカニズムも組み込むことで、ブロックチェーン間でsecurityを共有できるようにします。また、計算資源や情報資源の提供をtaskに設定すると、ブロックチェーン上のアプリケーションがそれらを利用できるだけでなく、そのコストがブロックチェーン全体の改竄コストに転化されます。このように、General Proof of Unitは大きな応用可能性があるのです。

その一方で、その実現と一般化にはまだまだ多くの課題が残されています。今後はこれらの問題を一つ一つ解決していき、皆さんと共にブロックチェーンの可能性を追求していきたいです。

--

--