# 硬分叉、规范与争议解决

### 硬分叉、规范与争议解决

不同的分布式账本系统通常在底层政治理念和技术选择上有所不同。以太坊项目最初承诺是可 以实现"代码即律法”的”不可停止的应用”。在一个重要的智能合约被黑客攻击之后， 由于缺少这段程序意图做什么的非代码形式的说明书，出现了关于发生的事件到底能不能被描述成黑客攻击的争论。分歧最终导致了社区内部的分裂。

因为FSC合约都是简单的zip文件，所以它很容易就能包含描述合约实际意图的PDF或其它格 式的文档。并没有要求必须使用这个机制，也没有要求这些文档具有法律效力。尽管如此，在金融应用案例中，如果发生了分歧，那么把他们包含的法律意义上的合同比包含的软件实现更为重要。

编写一个不可升级的合约在技术上是可能的。如果这种合约管理一种只存在于账本上的资产， 比如加密货币，那么这可以提供一种近似的”代码即律法"。我们把关于这个理念所蕴含的智慧的讨论留给政治学者和reddit.平台日志在 FSC中没有和区块链的"硬分叉”直接等价的机制，所以放弃问题交易链或欺诈交易链的唯一方法是在带外就抛弃一个完整的交易子图达成一致意见。既然不存在一个全局的可见性，这个一致的达成就不需要包括网络上的所有参与者： 只需要包括那些可能已经接收并处理相关交易的参与者。缺少全局可见性的另一方面后果是没有单个点准确记录了谁见过哪笔交易。确定那些必须就抛弃一个子图 达成一致意见的实体的集合，就意味着需要关联节点的活动日志。

FSC节点用日志记录了充分的信息，可以确保这样的关联可以实现。平台定义了一个任何人可用的流来协助这个过程。还提供了一个能生成”调查请求"并发送到一个种子节点的工具。流通知节点管理员，要求一个决策，并且充足的信息被传递到这个节点，用于尝试说服管理员进行参与（如一个签署的法庭指令）。如果管理员通过节点浏览器接受了这个请求，则交易链中后续的跳转被返回。这个工具以这样的方式半自动地抓取网络，找到所有会被提议的回滚操作所影响的参与者。平台不参与认定什么类型的交易回滚是正当的，在定位必须同意的参与方之外，只对实现回滚操作提供最小的支持。

一旦涉及到的参与者被确认，至少有两种策略可以修改账本。一种是使用简单修正数据库的交易扩展交易链，使其符合预期的现实。为了使这个方法成为可能，编写的智能合约必须在提交的签名达到充分的阈值时能够于正常业务逻辑之外被任意修改。这个策略简单，在状态包含的参与方数量较少且都没有在账本上遗留有害信息的动机时最为有意义。

对于由盗窃或诈骗产生的资产状态，其包含的参与者会反抗所有以上述方法进行修补的尝试， 因为他们可以在账本出错后、恢复到实际状态前的这段时间差里从现实世界获取利益。针对这 种情况，需要使用一种更复杂的方法，即除去不合作参与者之外的所有参与者都同意将相关状态标记为不再被消费或已被花费。这本质上是一种受限形式的数据库回滚。
