Author

Topic: [20150615]一个解决区块大小的建议——弹性区块大小 (Read 337 times)

hero member
Activity: 644
Merit: 500
带有顺延罚款的弹性区块上限

这些天关于区块链1MB大小的限制是否该放松的讨论一直在进行。人们也提出了很多观点,但是最常见的经典权衡是以下几种:

更大的区块 ->运行节点更难 ->节点更少 ->更中心化

更小的区块 ->直接支付更少 ->更依赖第三方的支付处理解决方案 -> 更中心化

绝大多数人认为这一权衡应该有一个最佳值,并且也讨论了这个最佳值是什么、如何确定这个最佳值、如何以这个最佳值为中心作出更好的决定等等。绝大多数人认为如果区块太小,我们可以增加交易费用来继续运行比特币网络。

然而,Mike说这不是比特币网络会如何运行(我倾向于认同他说的这一点)。相反,如果区块限制对于交易需求而言太小,比特币网络将崩溃。依我来看,他的论据的要点是市场力量应该找到一个费用平衡点,使交易供给与需求相匹配。然而,市场力量对于波动的反应不够快,因而在技术上产生了无法用软件来处理的积压问题。

Mike还认为,既然我们不知道什么时候到达上限,然而一旦我们到达了上限,我们将措手不及,因此我们必须赶快提高上限以保持安全。在这方面我有一个问题——如果比特币在面对交易量上涨时不能适度贬值,那么无论目前的区块大小的上限是多少,我们都将面临很多问题。我们应将重点放在解决该问题上。

在这里,我将介绍一个可能的解决办法——协议修改。我将分析它是如何起作用的。有了它,我们就不会面临下跌过猛的风险,只有费用的上涨。

然后,我们再来谈谈基于以上的权衡办法,区块大小应为多少的争论上。

 
顺延收费池

 

该建议要求使用顺延收费池作为前提。

最初的想法是,交易费不会付给该区块的矿工,而是把费用付给一个矿池,然后再逐渐把该池中的钱付给未来的矿工。例如,在任一区块,矿工有权拥有该池中当前资金的1%(任何其它区块奖励除外)。

在目前的建议下,我们将使用这样一个池,是随着时间的推移进行付费—但是将钱投入池中的不是用户。交易费将正常付给建立区块的矿工。

ps:为清楚起见,再说一遍—在目前的建议下,交易费将立即全额付给当前区块的矿工。矿工通过接受带外交易费用,不能获得任何好处。正如以下解释的那样,将钱投入顺延收费池的是矿工本人。
弹性区块上限

 

该建议的中心是—处罚而不是禁止大的区块。大区块的矿工必须根据区块的大小支付违约金。罚金将从他在区块创始交易中获得的资金中扣除,并将支付到顺延收费池,待未来的矿工进行分配。如果罚金超过了矿工的交易费用所得+铸币+他在当前顺延收费池的收入,那么该区块是无效的。

这就要求选择一个函数f,可以返还给定区块大小的罚金。这样灵活性就很强,并且如果我们选择了“错误”的函数,出错的地方也还是很少。最主要的要求是它是凸起的,在我们所认为的区块大小上有着重大曲率。我的建议是:选择一个目标区块大小T。那么对于任何给定区块大小x,设置f(x)=Max(x-T,0)^2 / (T*(T-x))。(图表)

这将意味着区块到达了T这个大小时,将没有罚金。随着区块大小的增加,任一额外的交易将产生罚金—刚开始可以忽略不计,但是最终会大幅增长。禁止大于2T的区块出现。

 
分析

 

我认为,在区块链上我们确实需要稀缺性—这可以防止无用的交易使区块链膨胀并且能使运行节点变得更加有难度,且能激励用户资助比特币基础设施。区块大小限制创造了稀缺性,但前提是真的存在达到极限这样一种情况。但就当前情况来看,达到极限会造成技术故障。

Mike称该问题为“下跌过猛”,但是于我而言这更像是碰壁。交易需求驶向极限,没有什么使之放慢速度,直到它痛苦地砸向墙壁。本来区块里有多余空间,没有理由收取交易费,但突然一下子又没有了空间,这样我们便遇到了问题。

如果有更多的交易进入网络,比能添加进区块的交易数量会要多,那么队伍将变得更加大并且需要数小时来清理,这意味着交易将需要数小时进行确认。矿工可以使用费用来指导市场,来缓和新的交易,但是市场反应过慢。首先,因为软件没有进行优化,来接收该信号;其次,因为交易需求在短期内是非弹性的。如果在持续一段时间之后,交易费用很高,我将不再寻找可以用比特币进行支付的地方,我将签署支付便利服务。但是短期内,如果我有一个设置了立即发送的交易(例如餐厅标签),如果必要的话,我愿意为它支付非常高的费用。所以费用不能有效控制交易的泛滥。

进入弹性上限。当交易需求超过了目标区块值,积压不会积累—矿工只需将区块的额外值包含在内。他们将开始要求一点额外的费用来对罚金进行补偿,但是依然可以以交易填充的速率清理队伍。如果进入的交易率持续增加,对于任一交易,矿工所需支付的边际罚金将会增加,所以费用会更高—但是由于该过程是渐进的,客户可以有充分的时间来理解快速确认需要支付什么费用。该过程像是爬山而非碰壁。随着我们接近区块上限,恢复力会变得更加强大,直到我们达到平衡。

在长时间内,市场将对典型的费用有所了解,并对此做出决定。它可以分析每天或每周中费用降低的时段,并且使用这些进行对时段不敏感的交易。

对于硬性上限,交易队伍只能以特定的速率进行清理。低于该速率就没有费用张力,高于它就存在不稳定性。对于弹性上限,更长的队伍会使交易费用更高,鼓励矿工在区块中接受更多交易,增加清理队伍的速度。这是一个稳定的平衡,可以防止交易队伍无休止地增长,同时可以持续保持一定的费用张力。

顺便说一下,目前的系统是该建议的一个特例,f(x)=如果(x
 
前进的道路

 

我认为这个方案几乎没什么缺点。即使下跌过猛情况不像Mike所认为的那样严重,它依然是有用的。该原型也可为其他可能的协议改进所使用。我相信这是一个实质上简单并且完全充分鲜活的主意。因此,我希望它能得以接受而不会有太多的争议。

然而这是一个可能需要一些重要编码的重大改变。当与Gavin讨论该主意时,他说如果他能进行测试代码的编写,他将能站在一个更好的位置来评估它。尽管写编码不是我的专长。如果有人有兴趣来尝试,我很愿意提供帮助。

原文:https://bitcointalksearch.org/topic/elastic-block-cap-with-rollover-penalties-1078521
作者:Meni Rosenfeld
译者:yyy
译者比特币地址:1AZ8NqLgxnhxZSH44V1RhxuUp6Z6a4nhF6
责编:printemps
稿源(译):巴比特资讯
Jump to: