# 简介

{% hint style="warning" %}
目前，Earendil 仍处于 **Pre-alpha（预阿尔法）** 阶段，不少功能尚未准备就绪。一些文档页面描述的是尚处于开发中、未发布的功能。
{% endhint %}

[**Earendil**](https://earendil.network) 是一个去中心化的、抗审查的、奖励兼容的通信和价值传输网络。即使面对强大的国家级攻击者，Earendil 网络的任意两个用户仍然可以自由地通讯和交易，

<figure><img src="/files/qATKdKQowRallw7c3hCB" alt=""><figcaption></figcaption></figure>

更简单地说，Earendil 是一个**魔法互联网虫洞**：字节和金钱从一端输入，从另一端输出，没有人能叫停。

使用 Earendil 可以：

* 构建反封锁、保护匿名的应用和 P2P 网络
* 匿名浏览普通互联网网站，隐藏你的地理位置
* 通过运行 Earendil 基础设施节点来赚取费用
* 非常低成本地发送基于 Mel 的加密货币

## 为什么选择 Earendil？

乍一看，Earendil 似乎与现有的分布式洋葱路由或混淆网络（如 I2P 或 Nym） 类似。但它有几个特别独特的功能（[这篇中文博文](https://nullchinchilla.me/2023/11/qian-tan-earendil/)中有更多解释）：

### 强大的抗封锁能力

Earendil 抵抗[甲类](https://nullchinchilla.me/2023/05/two-kinds-of-censorship-resistance/)审查（在网络内过滤内容或用户，或称作**过滤**）又抵抗[乙类](https://nullchinchilla.me/2023/05/two-kinds-of-censorship-resistance/)审查（完全阻止访问 Earendil，或称作**封禁**）。

在其他项目中，抗封禁能力非常罕见。即使存在，也通常局限于针对国家级防火墙（如中国的长城防火墙）的特殊防御手段（例如 Tor 的混淆桥接）。

与此不同，Earendil 的设计目的是：**即使是 GFW（长城防火墙）在全球范围内部署**也能够运作。它不假设大部分网络存在于「自由世界」中。

### 简单、自由的点对点激励机制

Earendil **可选地**允许每个节点设置其对等点必须支付的资源消耗价格，通过使用 MEL 结算的加密货币进行微支付（micropayments）。

微支付巧妙地解决了抗女巫攻击（防止恶意节点淹没网络）、诚实节点的激励，以及抵抗拒绝服务攻击（DoS）。行为不端的节点将不会被他们的对等点支付，而诚实节点被激励在自由市场中竞争，以向客户提供最好的服务。企图刷屏 Earendil 的恶意行为者必须相应地支付网络费用。

这比其他激励/抗女巫攻击的机制有重要优势，例如用户基于向智能合约支付费用，而服务商向其证明对网络做出的贡献以取款的「统购统销」模型。在这篇[博文](https://nullchinchilla.me/2023/07/earendil-incentives/)中有进一步的解释。

## Earendil 是如何工作的？

简而言之，Earendil 的架构是一个叠加到抗封禁“互联网”上的混合网络。这意味着一个由两部分构成的设计：

### “抗封禁互联网”部分

我们在互联网之上叠加了一个点对点的数据包路由网络，而这个网络本身非常类似于互联网——数据包有一个目的地，并且中继节点将数据包一跳一跳地转发到更接近其目的地的地方。 这一层通过结合两个特性来隐藏于敌对的互联网服务提供商并实现抗封禁：

* **逐链路混淆**：Earendil 流量默认难以与“正常”网络流量区分开来。此外，任何特定节点间链接使用的协议都可以被替换，使用类似于 Tor 桥接的“可插拔传输”架构，适应特别严峻的网络环境（例如，只允许明文 HTTP 并对所有 HTTPS 流量进行中间人攻击的网络）。
* \*\*邀请制、隐藏信息的架构：\*\*Earendil 通过一种独特的，仅通过邀请的架构来路由流量，该架构仅向每个参与者的直接对等点透露 IP 地址，使即便是强大的攻击者也难以编制起 Earendil 节点的 IP 地址清单，用于监控或审查。封锁他们已知的所有节点的审查者可能最终只会将自己从网络中封锁。 这一层不提供匿名性，只提供可靠性和抗封禁性。我们也通过一个简单的机制在这一层实现所有的激励机制，即用户直接支付对端节点所有在他们身上使用的资源。

### “混淆网络”部分

在这个点对点网络之上，我们叠加了一个与 Nym 类似设计的混合网络，通过洋葱加密和延迟提供强大的匿名性。所有中继节点也必须参与混合网络才能成为 Earendil 网络的一部分。 即使在攻击者完全监视底层网络的所有流量的情况下，混合网络也被设计为保持匿名性。这防止了无论混淆协议或激励支付系统泄露信息的严重性如何，都不会泄露有关谁与谁通信的任何信息。

## 开发状态与路线图

目前，Earendil 处于 **Pre-alpha（预阿尔法）** 阶段。你可以加入 Earendil 网络并在其上通信，但一些重要功能还原始或不完整：

| 功能               | 完成状态                                         | 备注                                                 |
| ---------------- | -------------------------------------------- | -------------------------------------------------- |
| 加入作为中继节点         | :white\*check\_mark: 完成                      |                                                    |
| 加入作为客户端          | :white\_check\_mark: 完成                      |                                                    |
| 洋葱路由             | 🚧 基本实现                                      | *无法自定义路由选择。*                                       |
| 避风港（匿名托管）        | :white\_check\_mark:                         |                                                    |
| 网页代理             | 🚧 基本实现                                      | *你可以托管网页代理，以帮助其他用户通过 Earendil 使用网络。但未实现用户认证或访问控制。* |
| 债务计算             | :white\_check\_mark:                         | *计算需支付邻居的资源费用。*                                    |
| 手动债务结算           | :white\_check\_mark:                         | *允许通过线下方式结算计算出的债务，并在协议中手动重置。*                      |
| 混淆网络（mixnet）延迟   | 🚧 基本实现                                      | *延迟消息以对抗大规模攻击者保护匿名性*                               |
| 自动债务结算（MVP）      | 🚧 基本实现                                      | *使用链上转账自动结算以 MEL 计价的债务*                            |
| 以 Mel 作后盾的女巫攻击抵抗 | <p>❌ 未实现<br>(计划于 <strong>0.6.x</strong>)</p> | *通过要求在 Mel 区块链上质押资产来限制中继的数量*                       |
| 使用支付通道的自动债务结算    | <p>❌ 未实现<br>(计划于 <strong>0.6.x</strong>)</p> | *使用匿名支付通道通过链下方式结算债务。Earendil 因此可以用作链下资产转移层。*       |


---

# 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.earendil.network/zh-cn/readme.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.
