Устойчивость к блокировкам
Velum задуман так, чтобы продолжать работать, даже если его пытаются отключить. Здесь мы рассказываем, что для этого делаем, и так же прямо говорим о том, чего избежать не можем.
Несколько шлюзов со скрытым именем
- Есть несколько шлюзов на разных доменах (список
GATEWAYSв@velum/core). Приложения и узлы перебирают их по порядку и переключаются на следующий, если один не отвечает. - Шлюзы используют ECH (Encrypted Client Hello) в Cloudflare: тот, кто наблюдает за соединением, не видит имени сайта, на который ты заходишь.
Узлы находят друг друга
- Каждый узел публикует свой адрес (
endpoint) в блокчейне. Приложения и узлы хранят этот список и, если шлюзы недоступны, подключаются напрямую друг к другу, как узлы Bitcoin. - Узлы обмениваются списками соседей (PEX).
- Есть DNS-сиды: TXT-записи с узлами на нескольких доменах, чтобы найти сеть с нуля.
Приложение ──▶ шлюз 1 (ECH) ──✕ заблокирован
──▶ шлюз 2 (другой домен, ECH)
──▶ известный узел (endpoint, сохранённый из блокчейна)
──▶ DNS-сид ──▶ узлы ──▶ соседи (PEX)
Планы
- Замаскированные транспорты: трафик, похожий на обычный HTTPS (в духе WebTunnel или obfs).
- Tor и I2P.
- Mesh-сеть по Bluetooth, чтобы общаться без интернета с теми, кто рядом.
- Маршруты из трёх прыжков в стиле Sphinx и маскирующий трафик против наблюдателя, который видит весь интернет сразу.
Чего мы не обещаем
- Неблокируемых систем не бывает. Государство может заблокировать домены, IP-адреса или весь Cloudflare. Сеть живёт, пока узлы могут достучаться друг до друга, но подключиться к ней может стать сложнее.
- Глобальный наблюдатель, видящий весь интернет-трафик сразу, может пытаться сопоставлять время отправки и получения. Дополнение до фиксированного размера и сменяемые ящики помогают; маршруты из трёх прыжков и маскирующий трафик появятся позже.
- Магазины приложений могут убрать приложение в какой-либо стране. Поэтому мы публикуем на этом сайте ещё и подписанные APK для Android и бинарные файлы узла.