NEMは他のブロックチェーンプラットフォームと比べて、比較的機能が洗練されている印象を持っています。(僕だけ?笑)
その中でも、アグリゲートトランザクションは機能性を高める上で、重要な要素の一つとなっています。最近、アグリゲートトランザクションについて触れる機会があったので、NEMに特化したアドベントカレンダーということもあり、アグリゲートトランザクションについてまとめてみようと思います。
アグリゲートトランザクション
アグリゲートトランザクションは、複数のトランザクションをまとめて(アグリゲートして)一つのトランザクションとして処理してしまうタイプのトランザクションです。
イーサリアムだと、ERC20やERC721などの規格で発行したトークンを送信するのに、一つひとつトランザクションを処理しなければいけなかったので、ERC1155のような規格によって一括送信できるようになりました。NEMではこれが最初からついているイメージでしょうか。
もしもトランザクションの中にエラーがあったら?
アグリゲートトランザクションは、複数のトランザクションをまとめます。そのため、まとめた中にエラーが存在したまま実行されると中途半端な状態で実行されてしまいます。それでは困るので、アグリゲートトランザクションでは、関係するトランザクションにエラーが存在していると、アグリゲートトランザクション自体を失敗(破棄)します。このようにしてアトミック性を維持しています。
アグリゲートボンディッド
アグリゲートトランザクションは、複数のトランザクションを内包するトランザクションですが、そのトランザクションの中に相手方の署名が必要なものが含まれている可能性があります。その時には、アグリゲートボンディットと呼ばれます。
例えば、送信した相手に別の相手へモザイクの転送を要求したい時やトランザクションの順番を指定したい時などには、このタイプのトランザクションが実施されます。
また、この際には、LockFundsTransactionが発信されます。これは、ネットワークに対して担保となる資金を預けておき、アグリゲートトランザクション自体が成功すると預けた資産が戻ってくるという仕組みになっています。これはスパムを予防するという意味で有効だとみられています。
モザイクの使い方はアイデア次第!
NEMのモザイクはかなり自由の効くもので、アイデアの限りさまざまな活用ができるようになっています。そのため、アグリゲートトランザクションを利用することで、より自由度を高めることができていると思います。
NEMはcatapultを経て今後ともより使い勝手のよくなるブロックチェーンプラットフォームになると思うので、ぜひ触ってみてはいかがでしょうか?