44 隔离或“网络杀戮开关”
回复:匿名!
中本聪,2010年6月8日,下午07:12:00
很难想象互联网会被隔离得密不透风。只可能是一个国家故意把自己与世界 的联系完全切断。
任何能够连接双方的节点都会自动将区块链传导过去,比如有人通过拨号网络或卫星电话绕过封锁。只需要一个节点就够了。所有想继续做生意的人都会有动力。
如果网络被隔离,然后重新连接,在短分叉中的交易如果不在长分叉中,就会被重新释放到交易池中,并且有资格进入将来的区块。它们的确认数(标明被多少个区块确认的数量)将会重新计算。
如果有人利用隔离企图双重消费,就是同一笔钱在每边都有不同的花销,那么第二笔花销在短分叉这边就会失败,转为0/未确认状态,且一直保持此状态。
利用隔离并不容易做到双重消费。如果两边之间不能通信,您怎么能在两边都花钱呢?如果有这么一种方法,那么就可能有别人也用这种方法来同步区块链 。
您通常会知道是否处于小隔离区。例如,如果您的国家切断了与世界的联系 ,国外就是大隔离区。如果您处于小隔离区,应该假设什么都得不到确认。
下面阐明网络分裂的情况。
当网络长时间分裂又重新连接时会发生什么?
em3rgentOrdr发表,2010年8月1日,上午11:07:24
假设比特币在全球范围内广泛使用。假设两国之间的所有互联网连接阻塞,人们仍然在各自网络内从事交易。每个网络的所有交易都被广播到该网络内的所有节点,但是没有广播到别的网络。在每个网络中,网内最长的链会认为是有效的,比特币经济将继续存在于每个网络内。
经过几年的独立存在后,当两个网络重新连接时会怎么样?
回复:当网络长时间分裂又重新连接时会怎么样?
kiba发表,2010年8月2日,上午03:19:08
也许他们不会再连接。相反,实际上我们有了两种货币。这将导致东西方比特币外汇交易市场的诞生。
回复:当网络长时间分裂又重新连接时会怎么样?
throughput发表,2010年8月2日,上午06:07:08
作为商人,我关心的只是我的网络是不是大网,重新连接后,我的交易是否会被接纳。因此,能够监控当前不同节点的数量对我来说就足够了。把监控情况放入图表,如果监控到节点数量突然减半就停止交易处理。这可能是在比特币节点上运行的网络服务器上的一个服务。
但到底有没有办法监控这个数量呢?如果没有,聪明的做法是在标准中添加几个特性,允许实时确定正在运行的不同节点的数量。
回复:当网络长时间分裂又重新连接时会怎么样?
克里格托(creighto)发表,2010年8月3日,下午08:01:22
引自:throughput,2010年8月3日,下午01:33:08
对……
但是您所描述的情况只有在有人注意到了并证明网络正在分裂之后才有可能。您有没有提出检测网络分裂的方法?
我在其他论坛发起了有关该主题的另一组讨论,但对独立的供应商来说,一个简单的监控守护进程就可以做到:跟踪自从上一次难度正式改变以来区块之间的平均时间,如果单个区块所花费的时间超过了平均值的两倍则提醒供应商,也许暂停接收新比特币,直到供应商查清当前情况为止。连续出现花费的时间比平均值长的区块,就更加证实了问题的出现。因此,如果一个区块花平均两倍的时长,又紧接着有一串超过平均时长75%的区块出现,那么基本就可以断定您已不在大网上了。
回复:当网络长时间分裂又重新连接时会怎么样?
中本聪发表,2010年8月3日,下午10:45:07
克里格托:我同意该办法。如果区块流下降得很快,超出了偶然性的变化,那么几个小时后,客户端就可能会注意到。从而可以判断出世界已离它远去。
引自:knightmb, 2010年8月3日,下午07:02:13
引自:加文.安德森(gavin andresen),2010年8月3日,下午06:38:44
或者如果分裂持续的时间够长(超过100个区块),那些在短链上产生的比特币交易在合并时将无效。
这个信息很有意思,除了双重消费问题,只要区块链被隔离不超过100个左右区块(或16个小时以上),就没有问题。
实际上,分裂很有可能是不对称的。要把世界从中间分隔开很难。更有可能的是单一国家与其他国家,例如1:10分裂。那种情况下,少数派分叉需要花费10倍的时间才能生成100个区块,也就是差不多7天。此外,客户端因为收到的区块太少,很容易意识到出问题了。
引自:knightmb, 2010年8月3日,下午07:02:13
如果存在着分裂延迟的硬编码限制呢?意思是说如果有一个从公网分裂出来的小网,在里边支付了一些比特币,几天后再把它们同步到公网,除了比特币的挖矿产出以外,其他的交易应该没事儿?
没有时间限制。假如您没有在少数派分叉中挖矿得到比特币,也没有使用收到的双重消费比特币,那么您的交易可以随时写入另一条链。
http://btc.mom/9498/