ZooBC ウィキ
トランザクション

リキッドペイメント(ストリーム)

リキッドペイメントは、選んだ分数をかけて、支払者から受取人へお金を流し続けます。最初に全額がロックされ、時間の経過とともに均等に権利が確定していくため、受取人はお金がそこにあることを確認でき、支払者は実際に経過した時間の分だけを支払います。リキッドペイメントは、分単位で課金されるサービス、シフトの給与、レンタルに向いています。

ストリームを始める

LiquidPayment トランザクション(タイプ 6)は、受取人、金額、そしてストリームの長さを分で表した complete_minutes を指定します。トークンの ID を指定すれば、ZBC の代わりにトークンを流すこともできます。ブロックがそれを取り込むと、次のようになります。

  • 金額は直ちに支払者の残高から出ていき、ロックされます。
  • 金額は指定された分数をかけて均等に権利が確定していきます。
  • 時間が終わると、チェーンが追加のトランザクションなしに、自動的に全額を受取人に支払います。

完了は直前のブロックのタイムスタンプに照らしてブロックごとに確認されるため、生成者がブロックのタイムスタンプを先にずらして最後の支払いを早めることはできません(有効期限とタイムスタンプ を参照)。

ストリームを止める

どちらの側も、LiquidPaymentStop(タイプ 262)でストリームを早めに終わらせることができます。その場合チェーンは、2 つのトランザクションのタイムスタンプの間に経過した時間で金額を分けます。受取人は権利が確定した分を受け取り、残りは支払者に戻ります。受取人の分は次のアトミック単位に切り上げられるため、端数処理で受取人が損をすることは決してありません。

0 から 10 分までのバーで、3 分の時点で停止しています。最初の 30 % の 3 ZBC は受取人へ、残りの 70 % の 7 ZBC は送信者に戻ります
0 から 10 分までのバーで、3 分の時点で停止しています。最初の 30 % の 3 ZBC は受取人へ、残りの 70 % の 7 ZBC は送信者に戻ります

どちらの側も、時計が許す以上のものを取ることはできません。支払者はすでに権利が確定した分を取り戻せず、受取人はまだ確定していない分を取ることはできません。

他の機能との組み合わせ

  • 分配ポリシー。 ストリームの支払いは受け取る入金なので、受取人の分配ポリシーを通ります(分配ポリシーと取引ポリシー を参照)。
  • 取引ポリシー。 取引ポリシーが確認されるのは、LiquidPayment 自体に指定された受取人についてだけです。受取人が後から支払いの受け取りを拒否する設定にしても、ストリームの支払いは届きます。
  • トークンのストリーム。 流しているトークンが失効した場合、その ZBC の裏付けは保有者の間で分けられ、ストリーム中の単位は、権利が確定した割合に応じてそれぞれの側の分として数えられます(トークン維持費(存続) を参照)。

ストリームは、指定した分数の間に 1 回、連続的に支払います。毎月の手当のような一連の別々の支払いには スケジュール送金 を、将来のブロック高やイベントの後に行う 1 回の支払いには トリガーとアテステーション を使ってください。

関連項目