One or Zero?

興味のある様々なことについて

"No this, no that" から理解する MimbleWimble

MimbleWimble の wiki に、"No this, no that" と呼ばれる標語のようなものを記したページがある。

no addresses
no visible amounts
no transaction history
no reward changes
no fixed supply
no deflation
no trusted setup
no ring sigs
no moon math
no hashcash
no asic aversion
no ico
no premine
no instamine
no mining tax
no masternodes
no room for spam

他の暗号通貨にはあるこの要素は MimbleWimble にはない、というものが羅列されている。それだけシンプルさを重視したブロックチェーンだと言えるだろう。 この中からいくつかをピックアップして、MimbleWimble の技術について見てみよう。

no addresses

MimbleWimble には address という概念がない。ではどのように送金を行うのか。 MimbleWimble の送金では、ウォレット同士がインタラクティブにやり取りをしなければならない。Bitcoin においては、transaction は sender が送信先アドレスをもとに一人で作成するが、MimbleWimble の transaction では sender と receiver 互いに協力して transaction をつくる。

さらに言えば、transaction はブロックに取り込まれた時点でもはや transaction という単位としては存在しない。input と output があるだけである。

no visible amounts

MimbleWimble では、送金額はブロックチェーンに直接刻まれることはない。

Pedersen commitment という、データ(ここでは送金額)を blinding factor と呼ばれる秘密鍵をもちいて秘匿した

commitment = r*G + v*H

だけがブロックチェーンに刻まれることになる。ここで、G, H楕円曲線上の群の異なるジェネレーター、 r が秘匿するデータ、v が blinding factor である。

no transaction history

no address のパートでも述べたように、ブロックに取り込まれた時点ですでに transaction という単位はなくなっている。cut-through と呼ばれる処理によって input と output のつながりを切る。 Grin のドキュメントにわかりやすい図がある。

no hashcash

MimbleWimble のコンセンサスアルゴリズムは PoW だが、Bitcoin のような hashcash ではない。hashcash は計算能力の高いGPUなどが有利だが、MimbleWimble では現時点で Cuckoo Cycle という、メモリが重要になってくるPoWアルゴリズムを使用している。