Adi Riel – Карманный Блокчейн (страница 1)
Adi Riel
Карманный Блокчейн
КАРМАННЫЙ БЛОКЧЕЙН
* * *
* * *
ЧАСТЬ ПЕРВАЯ: ТЕНЬ В КОДЕ
Глава 1. Пульс
Глеб заметил это в три часа ночи.
Не потому что искал. Просто смотрел — так, как смотрят на огонь или на воду, без цели, позволяя глазам скользить по строкам логов. Чашка давно остывшего чая стояла рядом с клавиатурой, рядом валялась обёртка от шоколадного батончика, на экране текли цифры. Обычная ночь. Ничего особенного.
Кроме одной вещи.
Он увидел пульс.
Не метафорически — буквально. График финализации блоков в сети «Эфир» бился с идеальной, почти медицинской регулярностью. Каждые двенадцать секунд — удар. Небольшая пауза. Следующий удар. Нового блока ещё нет, старый уже закрыт, и в этом промежутке, в этой крошечной щели между двумя состояниями мира — что-то происходило.
Глеб почесал затылок. Потянулся к чаю. Отставил его, не выпив.
Он был программистом — не из тех, что пишут корпоративные приложения для учёта расходов, а из тех редких людей, для которых код — это язык реальности, способ разговаривать с миром напрямую, минуя посредников. В двадцать восемь лет он успел поработать в трёх стартапах, дважды уволился сам и один раз его попросили — вежливо, но настойчиво, — потому что нашёл дыру в системе безопасности и написал об этом в корпоративный чат вместо того чтобы сообщить тихо руководству. «Ты не понимаешь, как работает мир», — сказал ему тогда директор по безопасности. «Зато я понимаю, как работает ваш код», — ответил Глеб, забирая вещи.
Сейчас он жил один в небольшой квартире на окраине города, брал фриланс-заказы ровно настолько, чтобы платить за аренду и еду, а остальное время тратил на то, что его по-настоящему интересовало. Блокчейн интересовал его давно — не как инвестиция (деньги его занимали мало), а как архитектурное чудо. Распределённая машина доверия, работающая без центра. Математика как политическая философия.
И вот теперь эта математика показывала ему что-то странное.
Он открыл новый терминал и начал писать.
$ analyze_block_finality --network ether --window 72h --precision microsecond \
| jq '.blocks[] | {slot, finality_ms, vdf_delta_us}' \
| tee /tmp/finality_raw.json
Данные пошли потоком:
{ "slot": 9841204, "finality_ms": 11994, "vdf_delta_us": 312 }
{ "slot": 9841205, "finality_ms": 11997, "vdf_delta_us": 309 }
{ "slot": 9841206, "finality_ms": 11995, "vdf_delta_us": 311 }
{ "slot": 9841207, "finality_ms": 11996, "vdf_delta_us": 310 }
{ "slot": 9841208, "finality_ms": 11994, "vdf_delta_us": 312 }
Он остановил вывод. Запустил быструю статистику:
$ jq -s '[.[].vdf_delta_us] | {min: min, max: max, stddev: (add/length)}' \
/tmp/finality_raw.json
{
"min": 308,
"max": 314,
"stddev": 310.6
}
Стандартное отклонение — три микросекунды на семьдесят два часа данных.
Глеб смотрел на эту цифру долго. В любой реальной распределённой системе время должно прыгать — чуть быстрее, чуть медленнее, в зависимости от нагрузки сети, от пингов между нодами, от тысячи случайных факторов. Хаос — это не баг распределённых систем, это их доказательство честности.
Но здесь хаоса не было.
Был ритм.
Verifiable Delay Function. Математический замедлитель. Один из элегантнейших механизмов в архитектуре «Эфира» — алгоритм, специально разработанный так, чтобы его нельзя было ускорить. Никакой параллелизацией, никаким суперкомпьютером, никаким квантовым железом. Задача должна была решаться последовательно, шаг за шагом, и занимала строго определённое время: около пяти секунд. Это создавало честную случайность: никто не мог заранее предсказать результат VDF и использовать это знание для манипуляций с сетью.
Так было задумано.
Он не спал до утра.
* * *
Глава 2. Архитектура замедления
Следующие три недели Глеб почти не выходил из квартиры.
Он заказывал еду, отвечал на сообщения односложно, отложил два фриланс-проекта. Ел, не чувствуя вкуса. Спал по четыре часа, просыпаясь с ощущением, что прервал что-то важное.
VDF была красивой. Это он признавал честно, даже с восхищением. Задача строилась как цепочка: каждый шаг зависит от предыдущего. Нельзя взять тысячу процессоров и разбить задачу между ними — она не делится. Нужно пройти каждую ступеньку по порядку.
Глеб смотрел на эту конструкцию и думал:
Не в математике — математика была железной. В физике. В железе. В том, как именно задача реализована на реальных процессорах.
Обычный процессор выполняет каждый шаг VDF за определённое количество тактов. Пять секунд — это пять секунд. Но что если сделать специализированный чип — ASIC — заточенный под один-единственный тип операций? Узкий, как хирургический инструмент? Не в тысячу раз быстрее — математика не позволит. Но в десять? В двадцать?
Глеб взял лист бумаги и написал:
Долго смотрел на цифру.
Потом написал рядом:
* * *
Идея ускорителя пришла не как озарение — как логический вывод. Если кто-то уже решает VDF за полсекунды, то у этого кого-то есть четыре с половиной секунды, когда он знает будущее, а весь остальной мир ещё вычисляет прошлое.
Четыре с половиной секунды — это ничто в человеческом времени. В блокчейне — вечность.
За эти секунды можно увидеть, какая транзакция идёт к подтверждению. Можно поставить свою впереди. Можно заблокировать чужой перевод — тихо, без следов. Можно знать, кто станет следующим валидатором — и подготовиться.
Глеб написал на листе слово:
Не зачеркнул.
* * *
Он нашёл нужного человека через три уровня знакомств: бывший коллега, его знакомый по майнинг-фермам, и через него — тихий инженер из Тайваня, который разрабатывал специализированные чипы и предпочитал не задавать лишних вопросов. Переписка — через зашифрованные каналы. Деньги — через миксеры.
Через два месяца небольшая посылка пришла на абонентский ящик.
Плата размером с ладонь. Несколько чипов, разъёмы, теплоотвод. Ничего впечатляющего на вид — если не знать, что внутри.