日本人はなぜかNEMが好きです。Twitter上ではRippleと並んで、NEMの批判が許されない雰囲気が漂っています。実際にNEMのノード数を見てみると、日本が他を引き離して堂々の1位です。
ちなみに、私が住むインドネシアの状況はというと、
...1ノードもない。今ならインドネシアで最初のNEMノードになれそうですね。どうせなるなら、スーパーノードになりたいので、スーパーノードになるための300万XEMの寄付受付中笑
さて、NEMの魅力ですが、Ethereumほどの自由度はない一方、ドキュメント監査機能(アポスティーユ)やアセットの作成(モザイク)が、デフォルトで簡単にできる点は非常に魅力的ですね。しかしそれ以上に、「ハーベスティング」の存在がNEMの魅力を底上げしている気がします。
そもそもハーベスティングとは
ハーベスティングとは、NEMのトランザクションが詰まったブロックを承認する代わりに、そのブロックに詰め込まれたトランザクション手数料を受け取れる仕組みです。
Bitcoinでもマイニングによってトランザクション手数料を受け取ること(+新規コインの発行)ができますが、ASICと呼ばれるマイング特化のチップを利用して、ガンガン電気を使わないと収益が上がらない状況です。一方、ハーベスティングは「デリゲートハーベスティング」と呼ばれる方法を使えば、別のノード (NIS)に代わりにブロック承認作業をしてもらうことができ、高性能チップや電気代は必要ありません。
なお、どこかの雑誌がハーベスティングによってXEMが発行されるとアホなことを書いたようですが、ハーベスティングはあくまでも承認したブロックに含まれる取引手数料を受け取るだけなので、XEMが新たに発行されることはありません。
デリゲートハーベスティングの仕組み
デリゲートハーベスティング、一見魅力的ですがどのように動作しているのでしょうか?話を進める前に、少し用語の確認をしましょう。
Importance
NEMのハーベスティングはImportanceと呼ばれる、各アカウントに割り振られたスコアによってハーベストできる確率が変動します。インポータンスは主に保有しているNEMの量で決まりますが、それに加えて取引頻度や取引量なども考慮されて決定されます。
ローカルハーベスティング
デフォルトのハーベスティング設定では、デリゲートハーベスティングではなく、ローカルハーベスティングが行われます。その名の通り、リモートのノード(NIS、NEM Infrastructure Server)ではなく、自身のPC上で動作しているノード (NIS)を利用してブロックの承認作業が行われます。
ローカルハーベスティングを行う際は、自身のアドレスにひもづく秘密鍵が自PC上のNISに渡されて、NISはその秘密鍵を利用してブロックに署名を行い、ブロックの承認を行います。なお、これはデリゲートハーベスティングでも同様ですが、ハーベスティングするには10,000XEM以上のXEM(正確には、VestedされたXEM)を保有している必要があります。
デリゲートハーベスティングとは?
さて、ハーベスティングを行う際には、ローカルハーベスティングで見た通り、自分自身の秘密鍵をノード(NIS)に渡す必要があります。しかし、秘密鍵を渡すということは、秘密鍵を受け取ったノードが自分のアドレスをコントロールできることを意味します。
自分が管理していないリモートノード(NIS)に代理でハーベスティングをしてもらう場合は、そのままだと自分が持っているXEMをリモートノードに奪われてしまうリスクがあるので、ちょっとした工夫が必要になります。デリゲートハーベスティングではブロック承認専用の「代理アカウント」を作成することで、この問題を解決しています。
まず、デリゲートハーベスティングでは、実際にハーベスティングを始める前に、NEMブロックチェーン上にトランザクションを送信します。このトランザクションは、自分自身のアカウント(以降、「本体アカウント」)が保有するImportanceを「代理アカウント」にマッピングします。これにより、代理アカウントは本体アカウントが保有するImportanceを利用して、ハーベスティングに参加することができるようになります。
このトランザクションはNEMのダッシュボードでは、「インポータンストランスファートランザクション (Importance Transfer Transaction)」と表示されます。その名の通り、本体アカウントのImportanceを代理アカウントにTransferしているということですね。
代理アカウントはあくまでも本体の「代理」であり、代理アカウントは1XEMも保有していないので、安心して代理アカウントの秘密鍵をリモートノード(NIS)に渡すことができます。本体アカウントが持つImportanceの情報をもとにして、代理アカウントにブロック承認の機会をあたえられた場合には、リモートノード(NIS)が受け取った代理アカウントの秘密鍵を利用して、承認作業を実行します。
承認後、トランザクション手数料を受け取ることができますが、代理アカウントのアドレスにXEMを振り込むと、秘密鍵を保有しているリモートノード(NIS)に、そのXEMを奪い取られてしまうおそれがあります。そこで、ハーベスティングしたトランザクション手数料は、本体アカウントのアドレスに対して振り込むようにすることで、リモートノード(NIS)がトランザクション手数料を奪い取ることができない仕組みにしています。
How Local and Delegated Harvesting Works
デリゲートハーベスティングを維持する理由と仕組み
デリゲートハーベスティングが存在することで、NEMではImportanceに応じて平等にブロックの承認機会が与えられることになります。Bitcoinではブロック承認機会が特定のマイナーに集中してしまっていますが、NEMではネットワーク利用者にネットワークへの貢献度に応じて平等にブロック承認機会(=トランザクション手数料の受け取り)が巡ってくることになります。
また、ハーベスティングを代理で実行してくれるリモートノードにインセンティブがないように思われますが、リモートノードのほとんどはスーパーノードと呼ばれるノードです。スーパーノードは取引手数料とは別に、NEM Supernode Rewards Programと呼ばれる財源からスーパーノード維持の対価としてXEMをもらうことができるため、ノードを維持するインセンティブが生まれています。
スーパーノードについて詳しくはこちら
cryptocoin.hatenablog.com