アグリゲートトランザクション

アグリゲートトランザクションは複数のトランザクションを一つにまとめ、 トラストレスな交換 や高度なロジックを可能にします。 Symbol は一度きりの破棄可能なスマートコントラクトを生成することでこれを実現しています。

../_images/aggregate-escrow-1.png

Example of an Aggregate Transaction between two participants. Alice transfers Euros and the ticket vendor transfers the tickets at the same time. The network guarantees that both transactions succeed or none does.

Instead of signing each inner transaction individually, the aggregate transaction gathers all required signatures (called then cosignatures). Only when all necessary signatures have been provided the aggregate transaction can be processed, and all inner transactions are executed simultaneously.

Symbol の パブリックネットワーク は (maxTransactionsPerAggregatemaxCosignaturesPerAggregate プロパティで定義されている通り) 100 以内のインナートランザクション、 25 以内の異なる連署者が関わるアグリゲートトランザクションをサポートしています。他のアグリゲートトランザクションをインナートランザクションとして組み込むことはできません。

アグリゲートコンプリート

An Aggregate Transaction is complete when it requires signatures from multiple participants and all of them are available when the transaction is announced.

The cosigners can sign the transaction without using the blockchain. Once it has all the required signatures, any one of them can announce it to the network. If the inner transaction setup is valid, and there is no validation error, the transactions will get executed at the same time.

アグリゲートコンプリートトランザクションは、複数のインナートランザクションを集めることで、ブロックへさらに多くのトランザクションを追加できます。

アグリゲートボンド

An Aggregate Transaction is bonded when it requires signatures from multiple participants and NOT all of them are available when the transaction is announced.

Once an aggregate bonded is announced, it enters the partial state and the cosigners whose signatures are still required are notified through their wallets.

When a cosigner signs the transaction and announces its aggregate bonded cosignature, the network checks if all the required signatures are available. If so, the transaction moves to the unconfirmed state meaning that it will be confirmed and included in the next block if everything is correct.

Transactions can remain in the partial state for up to 48 hours: This is the deadline all cosigners have to provide their signatures before the aggregate bonded transaction expires.

注釈

Before announcing an Aggregate Bonded Transaction, an account must announce and get confirmed a HashLockTransaction locking 10 XYM. This is refunded when the transaction is confirmed and serves as an anti-SPAM mechanism.

../_images/aggregate-bonded-transaction-cycle.png

AggregateBondedTransaction サイクル

複数のトランザクションを同時に送信

Dan は二つの転送トランザクションを集約した AggregateTransaction をアナウンスします。Alice と Bob は同時にモザイクを受け取るでしょう。

../_images/aggregate-sending-payouts.png

アグリゲート完了トランザクションによって支払を送信する

マルチアセットエスクロートランザクション

この例では Alice がチケットを currency:euro モザイク で購入しています。チケット販売者は AggregateTransaction に署名し、交換はアトミックに起こります。

../_images/aggregate-escrow-1.png

マルチアセットエスクロートランザクション

他人の手数料を支払う

Alice は 10 currency.euro を Bob へ支払うためにアプリで送ります。しかし、彼女はブロックチェーンのトランザクション手数料を支払う分の symbol.xym を持っていません。

AggregateBondedTransaction を作ることで、彼女は currency.euro を手数料のための symbol.xym に替えることができます。これで Alice と Bob は symbol.xym を購入したり保有することなく、 Symbol のパブリックブロックチェーンを使うことができます。

アプリの製作者はオープンソースの支払いアプリに独自ブランドを付けられるので、Alice と Bob は彼らがブロックチェーン技術を使っていることに気が付かないでしょう。

../_images/aggregate-paying-for-others-fees.png

他人の手数料を支払う