はじめに
NEM2のSlackに、ERC865のようなことができるか?という投稿があったので考えてみます。
簡単にいうと、トークンを送信する際に、手数料としてETHではなくトークンで払うものです。これを1回のトランザクションで済ますものになります。
内部的には、第三者がETHで手数料を払ってトランザクションを送信します。同時に、トークン送信者がその第三者に手数料としてトークンを払います。
ERC865
まず、ERC865: 『Pay transfers in tokens instead of gas, in one transaction』について
2018年1月30日に書かれたものなので、1年以上経過してますね。
カタパルト
概念
Aliceはトークンを送りたい人。Bobはそれを受け取る人。
Davidはトランザクションを送るための手数料を払ってくれる人。(トランザクションに署名してくれる人)
AliceがBobに送るトークンはT
で、量はX
。
AliceはDavidに手数料を支払う。トークンT
で、量はY
。
パターン1
Aggregate Bondedパターン。
パターン2
Aggregate Completeパターン。
これの3で、トランザクションそのものを送って、Aliceが署名付けてアナウンスするパターンも考えられます。どちらがよいかはアプリの設計次第だと思います。
おわりに
- トークン手数料は、送信者負担にしていますが、受信者負担にすることもできそうです。その場合は、AliceからDavideではなく、BobからDavidに送るトランザクションにして、Bobのcosignも必要な形にすると、全員の合意があったことの証拠になりそうな感じですね。
- Ethereumの方は、手数料を肩代わりする方法として、meta taransactionが普及しそうな気配がしています。