# 安全性

聪网的安全机制由这方面来保证：

1. 基于RSMC合约的闪电通道，是主网的原生扩展，共享BTC主网安全，这是最关键的基础。
2. 基于BTCD源代码的聪网，由BTC技术提供技术层面上的安全，杜绝资产双花。
3. 聪网上的每一聪和每一份资产都来自主网，提供资产层面上的安全，杜绝资产增发/销毁。
4. 聪网的POS机制，从经济上确保聪网节点没有作恶的动机。

最终，聪网融合上面的因素，确保了整体方案坚如磐石般的安全，这一安全是建立在BTC的技术和共识基础上的。只要BTC主网技术和共识不出问题，聪网上的每一聪都是在用户的掌握之中，没有任何人可以拿走。

## 极端例子

我们通过下面这个极端的例子来做说明，为什么聪网是安全的。

在这个极端的例子中，聪网极度收缩，变成一个节点SN，一个完全中心化的节点。如果你愿意，可以把它当做CEX。用户A/B/C通过钱包跟SN节点开通了闪电通道。在这里我们需要一个坚实的基础共识，就是闪电通道的安全是可靠的，A/B/C各方存放在闪电通道中的资产都是安全的。任何时候，每个人都可以通过广播承诺交易拿回自己的资金。

现在，我们继续讨论A/B/C借助SN节点进行多方交易的问题。我们把SN当做CEX，A/B/C都是CEX的用户，他们通过这个特殊的CEX进行交易。注意跟实际的CEX不同，用户的资金是在闪电通道中，由自己签名控制。现在，A/B/C开始疯狂的交易，那么经过一段时间后，A/B/C肯定会出现这样的状况：

1. 跟通道的初始状态相比，A的资金少了。因为所有资金都还在通道中，A通过持有承诺交易继续确保对资产的控制权。
2. B大赚特赚，拥有的账面资产远远超过通道的容量，也就是有很多资产都在别人的通道里，B无法通过承诺交易掌控控制权，于是B觉得不安全。

那聪网如何处理这种情况，如何确保B继续持有资产的控制权？实际上很简单，这就是splicing通道调整技术。SN节点通过splicing技术动态调整各个通道的状态，让各个通道重新平衡，比如降低A通道中的容量，将这部分资产拼接到B的通道中。通道双方都可以发起splicing操作，注意splicing操作只影响自己本地的资产，不会影响远端的资产，这是远端配合splicing操作的基本原则。充值和提取，都是通过splicing操作来完成。现在，在splicing技术的支持下，SN更像一个CEX了。

但我们要知道，splicing是一个复杂的主网操作，需要消耗很聪作为手续费。为了降低手续费的支出，SN只在必要时才进行通道的调整，也可以通过提供流动性池子的方式，支持用户的操作，进一步降低通道调整的可能性。这有点像传统闪电网络的潜水艇操作。当然，如果要调整的资金额度很高，比如调整一个BTC，对10万聪的手续费可能也不会太在意。但如果要调整的资产才一两万聪，可能对一万聪的手续费就很肉痛了。

现在，我们可以很清楚的看到，即使在聪网退化成单机版，它也是一个去信任的下一代CEX：不持有用户资产，又能支持高频低摩擦的交易。这比现有的很多CEX先进很多了。

而且，聪网并不是一个单机链，它建立在强大的BTC源代码之上，有潜力发展成为一个比其他POS公链还强大的BTC二层网络。单机版的聪网已经可以确保用户资产的安全，随着聪网节点越来越多，治理机制越来越完善，网络也会越来越安全。相信早晚有一天，大家对聪网有足够的信任，大量的小额交易都只在聪网完成，只有少部分的大额流动需要更新通道容量。而这些操作，可能都只发生在最重要的哪些超级通道之间。到那个时候，通道，很可能不再是双方通道，而是至少是三方通道，其中一方是聪网基金会，确保通道协议的正确运行。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sat20.org/cong-wang-satoshinet/safety.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
