Counterpartyで配当(dividend)する時の手数料について
はじめに
Counterpartyd v9.45.0から配当(dividend)する時に、XCPが手数料として必要になりました。今回はその事について書きます。
目次
- 18 Myths about Counterparty
- 過去に実験した配当
- 条件を変更して再実験
18 Myths about Counterparty
ブログCoinedTalkに18 Myths about Counterpartyという記事があります。Counterpartyに対するネガティブな批判に対して、「それは事実とは違うよ」と具体的な理由を示して反論しています。大変参考になります。
その中に配当についての項目があるので引用します。
Myth 14: If you pay dividends to 10,000 users, you will bankrupt yourself on BTC fees. Dividends are handled in a single send operation, and therefore only require one transaction fee for Bitcoin miners. This remains the same regardless of how many people are holders of an asset.
10,000人に対して配当を送信しても、BTCの手数料は1トランザクション分で済むということです。これはすごい便利だなと感じました。
過去に実験した配当
実際にそうなるか試したのが過去の記事です。
ブログ記事のとおりBTCの手数料は1トランザクション分でしたが、XCPが0.0004XCP減っているのが気になっていました。
いろいろ調べるとChangeLogに手数料についての記載があります。
* v9.45.0 (2014-10-23) * add dividend fee of 0.0002 XCP per recipient (protocol change: 330000)
dividend.pyにそれらしき実装がありました。
fee = 0 if not problems and dividend_asset != config.BTC: holder_count = len(set(addresses)) if block_index >= 330000 or config.TESTNET: # Protocol change. fee = int(0.0002 * config.UNIT * holder_count) if fee: balances = list(cursor.execute('''SELECT * FROM balances WHERE (address = ? AND asset = ?)''', (source, config.XCP))) if not balances or balances[0]['quantity'] < fee: problems.append('insufficient funds ({})'.format(config.XCP))
配当手数料 = 0.0002XCP x 受け取るアドレスの数 ということです。
フォーラムに理由を質問したところスパム対策だそうです。
条件を変更して再実験
配当を受け取るアドレスを3つして再実行しました。
配当実行前
n2MxM8syUWd7qtN9CsN3DcPZWt4T946Dho (配当を実行するアドレス) BTC: 0.0386523 XCP: 49.5 TXZCOIN:94 mfyPfVVLVzZ413ruxsBzhrhmK7CFrC9VDJ BTC: 0.033678 XCP: 0 TXZCOIN:1 mh4GW9ge6XhpS5TzEbV76BrqovRRDwPqSR BTC: 0.001078 XCP: 0 TXZCOIN:2 mvZnxxorwUr8zMsWc7ffg4bZ1MupN9x5nc BTC: 0.000078 XCP: 0 TXZCOIN:3
配当実行後
n2MxM8syUWd7qtN9CsN3DcPZWt4T946Dho (配当を実行するアドレス) BTC: 0.0384743 XCP: 49.4994 TXZCOIN:94 mfyPfVVLVzZ413ruxsBzhrhmK7CFrC9VDJ BTC: 0.033678 XCP: 0 TXZCOIN:1 mh4GW9ge6XhpS5TzEbV76BrqovRRDwPqSR BTC: 0.001078 XCP: 0 TXZCOIN:2 mvZnxxorwUr8zMsWc7ffg4bZ1MupN9x5nc BTC: 0.000078 XCP: 0 TXZCOIN:3
(BTC)0.0386523 - 0.0384743 = 0.000178BTC ->1トランザクション分の手数料
(XCP)49.5 - 49.4994 = 0.0006XCP ->(0.0002XCP X 3アドレス分の手数料)
まとめ
仮に1万アドレスに配当した時は1万円ぐらい手数料が必要になります。既存の配当の仕組みに比べればコストを大幅に抑えられます。ただ頻繁な配当をすることにはブレーキがかかりそうです。LTBCoinのユーザー数や配当ポリシーについて気になってきました。今度調べてみます。