Define "Successful Hard Fork": Freezing the original chain so that all current bitcoins remain the same as hard fork happens. No new transactions will be included in the original blockchain and ALL legitimate transactions should be included in the blocks of the NEW blockchain, so that no users will lose there coins.
How to achieve a successful hard fork?
- There should be an consensus about how to split the block reward on the new blockchain.
- There should be an consensus about when to stop the attack on the original blockchain.
- Have a assaulting mining pool focus on the original blockchain, without including any new transactions.
- The rest of the hashing power should be focus on securing the new blockchain.Make a public announce about when and how the attack would happen.
How much hashing power is needed for a successful hard fork?
We should have at least 75% hashing power to secure the new blockchain. and 75% to freeze the original blockchain. so at least 6/7 hashing power is needed to carry out a successful hard fork.
Considering the hashing power on the new blockchain is much lower than that before hard fork. There's a risk that hibernate hashing power will wake up due to decreased difficulty. So it needs more than 6/7 of the hashing power. maybe 90%-95% is better.
先定义什么是“安全硬分叉”:硬分叉是出来两个链,没有升级的客户端可能会继续使用老链,拒绝接受新链。因此可能会在老链上继续接受交易广播。因为老链上的交易不一定被新链立刻同步,就会有双花/丢币的可能。这样,对于比特币整体价值是一个巨大的打击——指不定哪次硬分叉之后用户会丢币。而现有的比特币客户端并没有检测这种分叉的能力(因为更长链条是一种看起来不合法的数据)。
如何实施:
1,矿工形成如何分配新链上挖矿奖励的共识,形成几个矿池分工,一个矿池专注与对老链的攻击,其他的挖新链。(攻击链需要特殊设置,不打包任何交易,冻结旧链)
2,形成何时停止攻击,承认新链安全性,废弃老链的共识;
3,攻击矿池对老链进行拒绝服务攻击,打包新块,并在新块中不放任何交易,只专注于拓展自己挖出的链拒绝其他区块;
4,其他算力专注于在新链挖矿,增强新链安全性,防止因为新链算力突然下降造成的攻击;
5,发布攻击时间节点和进程。(对外透明公开,包括两条链的进展,展示肌肉)
需要多少算力:
这里会涉及到“攻击期间矿工利润分配”的问题。这里需要达成一致进行硬分叉的矿工,共同达成一致,即新链上的区块奖励,根据对老链对应的攻击的算力,进行利润分配。这样在硬分叉期间,参与挖新链和攻击老链的算力都一样有回报。同时矿工可以自由选择参与新链或者攻击老链,回报是均衡的。
“安全的硬分叉”,是用于保证老链上的用户可以在不损失财产的情况下升级到新链。他们不会有双花的风险(否则这算一次攻击而非是升级)。这样,就需要保证以下条件:
1. 老链上有足够多数的支持算力(75%)可以超过反对算力。支持算力打包空块,拒绝反对算力提交的区块。这样老链上的交易就完全冻结住了。
2. 新链上有足够多数的支持算力(75%)可以防止反对算力的攻击。
结论就是:至少要有 6/7 大约 86% 的算力支持情况下,才可以实施硬分叉。考虑到新链上算力实际减半,因此需要考虑休眠的算力带来的风险,有 90%-95% 的算力才可以大体上保证安全性。硬分叉需要持续相当长的时间,才能让所有用户有充分的时间升级而不丢失自己的币。
翻译请大家改改吧……
补充内容 (2016-2-4 23:02):
从另外一个角度来说:如果有 15% 的算力明确表示反对硬分叉,那么这个反对将有效。 |