NEMは手数料任意制をやめるべき

[mathjax]

nem2-docs

NEM catapultのドキュメントが出ましたね。ここにこんな記述があります。

How many XEM costs announcing the transaction. The higher the fee, the higher the priority of the transaction. Transactions with high priority get included in a block before transactions with lower priority.

ビットコインのように、高い手数料を設定して送金すると優先的に承認されるということですね。

これは一刻もはやくやめ、手数料は固定制にすべきです。理由を書きます。

経済学的な数理モデルで厳密に説明するのも良いんですが、多くの人に理解してもらいたいので、言葉で説明します。

手数料が任意に設定でき、ブロックチェーン更新者(マイナーやハーベスター)は、ブロックに含まれる手数料を報酬として受け取るモデルを考えてください。ここでは新規発行やスーパーノード報酬は考えなくてよいです。

結論としては「セキュリティを担保できる数の更新者が利益を生むことができるギリギリの水準の手数料で、固定すべき」となります。これを頭の片隅に置きながら読んでください。

更新者の動き

ブロックという容器に、トランザクション(tx)がいくつか入れられます。

上の図では、まだブロックにトランザクションが満タンまで入れられていません。このような状況で、ブロック更新の権利をゲットした人は、トランザクションをあえてブロックに入れない(=承認しない)という意地悪をするでしょうか?

答えはノーです。トランザクションを追加的にブロックに含めることにかかるコストはとても小さいので、ブロックは満タンになるまで入れたほうが更新者がもらえる報酬は増えます。ブロックが満タンでないとき、更新者はできるかぎりトランザクションをブロックに入れるインセンティブがあります。

次に、ブロックが満タンになる場合を考えます。

このとき、ブロック更新の権利をゲットした人は、どのように動くでしょうか。

答えは、「高く手数料を設定している順にトランザクションを入れていき、こぼれたものは放置する」です。考えてみれば当たり前です。手数料はすべて自分が報酬としてもらえるわけですから、高い手数料に設定されているトランザクションから承認するインセンティブがあります。

以上が、ブロック更新側の動きです。次に、手数料を決めて送金するユーザー側の動きを見ます。このブロック更新側の動きを理解していただけると、次にいう内容がスムーズに理解できると思います。

ユーザー側の動き

再び、ブロックが満タンでない状況を考えます。手数料が任意なシステムで、ユーザーは支払う手数料をどのように設定するでしょうか?

答えは、「手数料を最低に設定する」です。なぜなら上述した通りブロックが満タンでないなら更新者はすべて承認してくれるからです。手数料を低くしようが高くしようが、こぼされることがありません。これなら低く設定するにきまってますよね。

では、満タンになるならユーザーはどうなるでしょう?

これはまあ当たり前ですね。こぼされずに早く送金したいユーザーは高い手数料を払い、遅くても良いユーザーは安い手数料を払います。

 

以上で、更新者、ユーザー双方の動きがわかっていただけたと思います。次が本題です。

送金詰まりの解消

ブロックが満タンになると、

  • 速い送金のための高い手数料
  • 安く済ますための遅さ

のどちらかをユーザーは強いられることになります。これはどちらも、負の効用をもたらすものです。高い手数料も遅さも、あればあるほど好ましくなく、なければないほど好ましいですよね。

速い送金を求めるユーザー同士が、競って高い手数料を提示します。まるでオークションです。

なので、この送金詰まりは間違いなく、なければないほど好ましいものとなります。

じゃあ解消しましょう。解消の方法として、ビッグブロック化とか、署名データの分離(segwit)などいろいろあります。

解消できました。すると。。。あれ?ユーザーがみんな手数料を最低に設定するようになってしまいました。誰も高い手数料を払ってくれません。

 

そして、もうからなくなったノードが次々と撤退していき、ノードの数が減ります。見えざる神の手による調整です。すると、ブロックチェーンシステムはセキュリティを担保できないレベルまでおちこぼれましたとさ、ちゃんちゃん。

 

あかん。

これはダメです。となると、残された選択肢はどうなりますか?

 

送金詰まりが起こっている状態で残された選択肢は、

  1. 送金詰まりを解消する
  2. 送金詰まりを放置する

の2択でした。でも1.をやると上述の通り、誰も高い手数料を払ってくれなくなって更新者は撤退していきます。とすると2.しかないんですよ。え?送金詰まりは負の効用をもたらしますね?でもそうなんです。手数料任意制なら、送金詰まりを必要悪として残すことだけが唯一の選択肢になっちゃうわけです。

 

手数料固定制なら、送金詰まりの解消とノードの維持を両立できるんですけどねー。

ちょっと賢い人が登場

ここで、ちょっと賢い人がこのような考えを出します。

「設定できる最低手数料が低すぎるから更新者が撤退するのであって、最低手数料を低すぎないようにしつつ、手数料任意制にしたらどうか?」と。

「手数料固定の水準や最低手数料の水準を決めるプロセスが恣意的になるのでは?」とか言ってると上記のように送金詰まりを必要悪として残すことになるので、最低手数料の水準だけでも決めたほうが良いというこの考えはまあ良い流れでしょう。

その人の言う通りにし、送金詰まりも解消しました。

結果どうなったか?

「みんな、最低手数料に設定する」です。でもこれよく考えてください。手数料固定制と実質同じですよね?笑

ここにおける「最低手数料」の水準に、手数料を固定した手数料固定制と同じなんですよ。

でも、ひとつだけ違うところがあります。

送金詰まりを解消しても、また次に送金詰まり問題が出てきたとします。

最低額が低すぎない水準であろうと、手数料任意制に変わりないので、またオークションが発生します。

オークションをしてくれるとですよ、更新者としてはやはり送金詰まりがない時よりももうかるんですよ。なので、「送金詰まりが起こってくれたほうがありがたい」という感情が更新者全員に生まれます。

一方で手数料固定制ならどうでしょうか。それはですね、

そのブロックチェーンにかかわる人全員が「送金詰まりは一刻も早く解消すべき」と全会一致できるんですよ。

どちらが優れた意思決定をできるか、火を見るよりも明らかです。

以上より、「NEMは手数料固定制をとるべき」と断言できます。

おまけ

経済学的にちょっとテクニカルです。経済学をちょくちょく調べたりしながら読み進めていただくとよいかと。

価格を市場原理にゆだねないと、デッドウェイトロスが発生するのでは?

経済学の基本ですね。おっしゃる通りです。例えばキャベツ。政府が1玉100円と指定するよりも、市場原理にゆだね、キャベツのとれる町では1玉80円、キャベツのとれる町から遠いところでは1玉90円など、最適な価格で取引されるほうが良いに決まってます。だから社会主義に資本主義が勝ったんですね。

ですがよく考えましょう。これは単純化しすぎたモデルで、このブロック承認の経済をモデル化できていません。

ブロック更新は、マイニングなど競争がありますが、その競争に勝った後はそのブロックにおいて、トランザクション承認という財を独占的に供給する独占者になります。

で、トランザクション承認という財は、供給の限界コストがゼロにほぼ等しいと先ほど言いました。

経済学に詳しい人ならピンとくると思います。「供給曲線の傾きは正でない」ようになります。

送金詰まりがないとき、需要供給曲線は以下のようになります。価格が最低額で傾き0です。

送金詰まりがないなら、市場原理も何もないんですよ。

市場原理が機能するのはどのようなときか?

「送金詰まりが発生しているとき」です。

グラフにはしませんが、ユーザーの効用関数\(u\)は、承認スピードを\(s\)として

$$ u = u \left( s \right) $$

のようになりますね。ここでは需要供給曲線に交点ができ、市場原理は働きます。

ですが、「送金詰まりが発生しているとき」は良いことですか?笑

良くないですよねー。