暗号を使ったメカニズムデザインの考え方~ブロックチェーン投票の例~

先日こんな記事を書いていました。

トークンエコノミーとBFTエコノミーの比較

トークンエコノミーは分散化できるか

 

これに対する優良記事も。

cryptoeconomics: crypto-backed mechanism design

とはいってもビザンチン障害耐性を考える、とか言っても初見の人からしたら間違いなく敷居が高いですし、マニアックな領域でもあるので、こういう考え方を広めるには別のアプローチも必要だな~と思ってます。

Cryptoeconomicsという名称も敷居高い感が半端ないのでここでは「あんごうをつかっためかにずむでざいん」にでもしておきましょう!!!

 

あ~わかりやすい~。

 

ブロックチェーン投票を例にとりながら、暗号つかったメカニズムデザインはどう考えていけばいいか書きます。

 

改ざんされたらたまらないですし、投票を電子化するにあたってブロックチェーンは選択肢の1つになると思うので(ならないかもしれない)。

まず、改ざんできないブロックチェーンが投票に応用できればよさげというのは誰でもわかるので、逆に応用するにあたっての課題を挙げていきましょう。それらをつぶせばたぶんいけます。

考えられる課題

  • パブリックチェーンかプライベートチェーンか?
  • プライベートなら、ノードは誰?
  • 投票のプライバシーは守れる?

挙げればどんどん出てくると思いますがとりあえずこれくらいにしときましょう。

 

パブリックチェーンか?

パブリックチェーンは、世界中の誰もがノードになれます。BitcoinもEthereumもNEMもこれです。

誰でもノードになれる代わりに、不正対策がなされています。

 

しかし、これらの不正対策はインセンティブによるものです。不正するよりも正直でいたほうが儲かるから、というだけなわけですね。逆に言えば、不正しても得になってしまう状況が外部効果として出てきてしまうと、改ざんしたほうが得になってしまい、パブリックチェーンの前提は壊れます。

 

例えば。

日本の衆議院選挙をパブリックブロックチェーンでやるとしましょう。

そのときにブロックチェーンを改ざんできると、選挙結果を改ざんすることができることになりますよね?

 

ということはですよ、

正直でいるメリット>不正するメリット

の、右辺に、選挙結果を改ざんするメリットが入ってしまうことになるわけですね。

 

つまりパブリックチェーンを改ざんしようとするインセンティブが比較的強まります

日本の衆議院選に対して、中国やロシア、北朝鮮だけでなく、アメリカ、韓国も改ざんを試みようとして、そのチェーンに占める影響力を確保しようとするかもしれない!!!わけです。

地獄絵図ですねこれは。

はっきり言って、国家レベルが動けばパブリックチェーンのうちのシェア51%なんて簡単に取れちゃいます。

 

結論としては、選挙にはパブリックチェーンは向かないので、ブロックチェーンつかうならプライベートチェーンを使うべきと考えてよいと思います。

 

誰がノードになるか?

さて、上記の通りブロックチェーンつかうならプライベートにすべきとなりますが、誰をノードにするか、となりますね。

選挙管理委員会が独占的にノード運営したところで、選挙管理委員会が腐敗しないようにコストをかけて第三者機関が監視しないといけなくなるため、あまり賢い選択肢ではありません。

じゃあどうするか?w

 

1つの考え方としては、候補者ごとにノードを運営するというのがあると思います。

 

そもそも、改ざんをされたくない気持ちが最も強いのは有権者のはずです。選管は腐敗すれば改ざんしたがります。

しかし、有権者が全員ノード運営するかというとこれは明らかに現実的ではありませんw

 

なので、次善の策として候補者が考えられます。

正確には候補者は改ざんされたくないインセンティブがあるというよりは、自身への投票率を下げられたくないインセンティブ、もしくは自身への投票率を上げるインセンティブがある、と言えると思います。罰則や社会的制裁がないとすれば、自身への投票率を上げるように改ざんするのが合理的ですね。

 

しかし、投票率の総和は最大でも100%です。つまり自分以外の候補者が得票率を上げようとすると自分の得票率が下がりますね。そのため、他人の得票率を下げようと(自分の得票率を上げようと)するインセンティブによって相互を監視することになり、これがナッシュ均衡になります。

 

B
他人の得票率を下げる 他人の得票率を上げる
A 他人の得票率を下げる 均衡!
他人の得票率を上げる

 

 

思考停止して選挙管理委員会に任せるのではなく、候補者のようにナッシュ均衡で改ざんを防ぐことができるステークホルダーをノードにさせるといった工夫をするといいよ、ということになります。

投票のプライバシーは守れる?

これよく言われてる話なんですが、そんなに気にしなくてもいいと思いますw

Zcashのゼロ知識証明(zk-SNARKs)、Moneroのリング署名なんかの有名どころな技術がいろいろあるので、有権者の数だけ1トークン保有する秘密鍵を生成し、候補者アドレスが受信したトークン数だけが得票数である。みたいなシンプルな実装でも十分通用するんじゃないかなとおもいます。

むしろ、1トークン保有する秘密鍵を有権者の数だけ作る過程のほうが心配されるべきですね。

 

まとめ

こういうメカニズムデザインの考え方が流行るといいですね!!!!といいたい。

 

 

 

メカニズムデザインの基礎流行らせたいので、

 

次はこの「ミクロ経済学の力」を全力でおすすめする記事書くかも。

では。