"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アルゴリズムを使用している。