分配ポリシーと取引ポリシー
2 つのアカウント設定が、アカウントに何が届くかを形作ります。分配ポリシーは、ZBC でもどのトークンでも、受け取るすべての入金の決まった割合を、最大 10 の他のアドレスへ転送します。ロイヤリティ、パートナー間で分け合う収益、自動的な貯蓄などです。取引ポリシーはトランザクションを種類ごとまとめて両方向で拒否するため、たとえば誰もそのアカウントに望まないトークンを送れないようにできます。どちらも 1 つのトランザクションで設定され、変更されるまで続きます。
分配ポリシー
SetSplitPolicy トランザクション(タイプ 54)は、最大 10 の受取人を、それぞれベーシスポイント(100 ベーシスポイントで 1 %)で表した割合とともに列挙します。
- 各割合は少なくとも 1 ベーシスポイントで、すべての割合の合計は最大 10,000(100 %)です。
- 同じ受取人が 2 回現れてはならず、アカウントが自分自身を指定してもなりません。
- すべての受取人が資金を保有できなければなりません。
本体が 00 ならポリシーは消去されます。
分配されるもの
ポリシーは、ZBC でもトークンでも、受け取るすべての入金に適用されます。支払い、エスクローの解放、トリガー、ストリームの支払い、ベスティングの支払い、トークンの転送、取引の約定、アプリの配当、報酬です。アカウント自身のお金の返金(送信者に戻されたエスクローなど)、プルモードのスケジュールの支払い、ブリッジのミントには適用されません。
各取り分は floor(amount × basis points ÷ 10,000) で、割り当てられなかった分は端数も含めてアカウントに残ります。取り分は連鎖しません。受取人自身の分配ポリシーは、分配によって受け取ったものには適用されないため、お金が循環することはありません。取引ポリシーで支払いを拒否している受取人は飛ばされ、その取り分はアカウントに残ります。
アカウントグループでは、ポリシーを設定するのはコントローラーだけで、グループのポリシーはどのメンバーに送られたお金にも適用されます。分配ポリシーを持つアドレスはグループに参加できません。
取引ポリシー
SetTransactPolicy トランザクション(タイプ 50)は、アカウントに 2 バイトのマスクを保存します。各ビットはトランザクションの 1 つのカテゴリーを両方向で拒否します。アカウントはそれを送ることも受け取ることもしません。
| ビット | カテゴリー |
|---|---|
| 0 | 支払い |
| 1 | アプリ |
| 2 | トークン |
| 3 | Exchange |
| 4 | データストレージ |
| 5 | エスクローとマルチシグネチャ |
| 6 | ノードインフラ |
| 7 | Bridge(AttestEvent) |
| 8 | ガバナンス |
決して拒否されないタイプもいくつかあります。Empty、SetTransactPolicy、SetSplitPolicy、ロンジェビティのタイプ、アカウントグループのタイプです。
拒否の仕組み
ノードは、ポリシーが禁じるトランザクションを送信された時点で拒否します。それでもブロックがそれを運んだ場合は跳ね返されます。送信者は手数料を支払い、何も動きません。確認されるのは、トランザクションが実行されるときに、そのトランザクションのエンベロープに指定された受取人だけです。スケジュールの支払い、トリガーの放出、ストリームの支払いなど、以前のトランザクションに基づいてチェーンが後から行う支払いは、受け取りを拒否する設定にした受取人にも届きます。
取引ポリシーは手数料の設定ではありません。手数料は各トランザクションの下限から決まるからです。また、ブロックの生成者を選ぶものでもありません。生成者はチェーンが抽選します。共有アカウントのメンバーに対する支出の上限については、アカウントグループ を参照してください。