Bitcointalk · Transaction / spam flood attack currently under way

中本聪,2010 年 11 月 19 日

SN-3633 已核对来源,附原文与上下文。

阅读语言
中文译文

或许在最近实现的年龄优先级规则之外,还应加一条无手续费交易的最小年龄规则。换句话说,或许能够定一条生成规则:免费交易务必埋深 3 个区块之后才能再次免费转账。如此真实用户在必要时仍可立即花掉新资金,同时仍然能够不计成本地重新调配自己的资金。我认为这会显著抑制目前正在进行的垃圾交易攻击。

我正在做的就是类似的事。优先级就是你描述的这个概念更正式化的版本。

按现状,3.15 有不少免费交易空间,这些空间优先给 [年龄]*[金额]/[大小] 最高的交易,对吧?划出一部分自由空间要求 [年龄]*[金额]/[大小] > C 是否合理?

兴许能够把 C 设成让一笔标准的 1 BTC 交易能进下一个区块的主免费区。而 .1 BTC 的要等约 10 个区块才能进。再让允许 [年龄]*[金额]/[大小] < C 的区域每次放行十来笔交易。

是的,就像这样。不要求优先级的区域是 3K,每区块约十来笔交易。

我刚上传了 SVN r185,对免费交易设置了最低优先级要求。交易洪水由反复重花的币构成,因而它们反复依赖自己的 0 确认交易。0 确认交易优先级为 0,这类免费交易只能一次等一笔交易先进区块。

0.3.15 版在使用 0 确认依赖写交易时,仅仅在别无选择的情况下才用,因而普通用户通常不会遇到这个问题。

我认为这是在把默认手续费设为 0.01 之外的一个好折中。要求免费交易只能这么频繁地周转币,并不算过分。你用免费交易,就是在接受施舍,而同一批币能用施舍的频率总得有个上限。

我们一直说免费交易恐会处理得慢一些。加上 -paytxfee=0.01 能够帮你确保交易快速通过。

ORIGINAL · 英文原文
Perhaps in addition to the age priority rule recently implimented, there should be a minimum age rule without a transaction fee.  Said another way, perhaps a generation rule that says that a free transaction must be 3 blocks deep before it can be transfered again for free.  This will still allow real users to immediately spend new funds if they have to, while still permitting real users to reshuffle funds to suit their needs without an overhead cost.  I think that this would significantly inhibit the type of spamming attack that is currently underway.
I'm doing something like that.  Priority is a more formalised version of the concept you're describing.

As it stands now 3.15 has a lot of free transaction space and that space is given first to transactions with the highest [age]*[value]/[size] correct? Would it be reasonable to make some arbitrary portion of the free space require [age]*[value]/[size] > C ?

Maybe set C so that a standard 1BTC transaction can get into the main free area on the next block. And a .1 can get in after waiting about 10 blocks. And make the area which allows [age]*[value]/[size] < C to let in about a dozen transactions or so.
Yes, like this.  And the no-priority-requirement area is 3K, about a dozen transactions per block.

I just uploaded SVN rev 185 which has a minimal priority requirement for free transactions.  Transaction floods are made up of coins that are re-spent over and over, so they depend on their own 0 conf transactions repeatedly.  0 conf transactions have 0 priority, so free transactions like that will have to wait for one transaction to get into a block at a time.

Version 0.3.15 doesn't write transactions using 0 conf dependencies unless that's all it has left, so normal users shouldn't usually have a problem with this.

I think this is a good compromise short of making the default fee 0.01.  It's not so much to ask that free transactions can only be used to turn coins over so often.  If you're using free transactions, you're taking charity and there has to be some limit on how often you can use it with the same coins.

We've always said free transactions may be processed more slowly.  You can help ensure your transactions go through quickly by adding -paytxfee=0.01.
上下文
← 上一条 SN-3633 · 当前 下一条 → 在档案中查看完整主题串 →
来源
Bitcointalk 原始链接 ↗ 记录编号 SN-3633