AccountPropertiesTransaction
最近nem2-docsに記述された新しいトランザクションが面白かったので調べてみました。
*現時点ではmaster
ブランチに含まれていない状態なので、内容は変更される可能性があります。
これはCatapultに実装されている新しいトランザクションタイプです。
これにより、アカウントにホワイトリスト・ブラックリスト、トランザクション発信の有効・無効を設定することができます。
(実のところ私はまだ動作未検証です。ドキュメント漁ってただけなので)
これらはブロックチェーンレベルで動作する、用途は限定的ですが、ある意味で簡易なスマートコントラクトと言えます。
(nem的にはこうゆうのはスマートアセットと呼びます)
フィルタ定義
アカウントフィルタ
特定のアカウント(アドレス)からの受信トランザクションのホワイトリスト・ブラックリストを定義することができます。
特定のアカウント(アドレス)からのトランザクションを拒否したり、逆に特定のアカウントからしか受け付けない、というような状態のアカウントを作ることができます。
モザイクフィルタ
特定のモザイクを含む受信トランザクションのホワイトリスト・ブラックリストを定義することができます。
特定のモザイクを含んでいるトランザクションを拒否したり、特定のモザイクしか受信しない、というような状態のアカウントを作ることができます。
トランザクションタイプフィルタ
特定のタイプのトランザクションの有効・無効を定義することができます。
特定のトランザクションタイプ(転送、連署、マルチシグ化とか)を無効化し、実行できない状態のアカウントを作ることができます。
そもそも送信トランザクションを発信させる必要が無い前提で運用するアカウント、誤送信防止や必要な場合だけ許可するために、
もしくは、署名だけするアカウントなので、署名以外のトランザクションをさせないようにする、
というようなアカウントにすることができます。
まとめ
例示では、アドレスを個別の製品に割り当て、品質チェックに問題が無いことを示すモザイクを送付しています。
ホワイトリストによって、品質チェック作業者やセンサーが持つアカウントからだけ受信できるようにすることで、管理外のアカウントから偽の(何らかの方法で漏れたモザイクや名前が紛らわしいモザイク)を送りつけられないように、トランザクションにメタ情報を持たせる場合は、余計なトランザクションが紐づかないようにしています。
トランザクションタイプを制御することで、誤送信をブロックチェーンレベルで防止したりもしています。
これならアプリケーション側に制御する機能が実装されていたとして、それにバグがあってもすり抜けるようなこともなく、安心できますね。
それぞれ、ドキュメントにもある通り、エンタープライズなモザイクをパブリックチェーンで扱うような場合に役に立ちそうな機能です。
トランザクションタイプフィルタも、例えば大きな量のモザイクを扱うようなお店や企業、取引所などではセキュリティ強化に役立ちます。
様々な実用プロジェクトが立ち上がる中、こう言った個人からさまざまな規模の企業が入り混じるパブリックチェーンで起こりがちな問題(不都合)に対する機能が入っているのは大変頼もしい感じがしますね。
"Catapult is soon..."