Введение
Если коротко, темпография — это совокупность методов защиты и нападения на децентрализованные и/или распределенные сети (далее — ДРС) нового поколения с консенсусом, навроде блокчейн-решений или DAGs, основанных на использовании временных аномалий. Возможно, не все очевидно даже после определения: и это — нормально, так как темпографии от силы три-четыре года, а те способы и приемы, которые лежат в основании, недалеко ушли: быть может, отсчет стоит начать с середины 1970-х.
Поэтому самое время разобраться. И начну с очевидного — с примеров.
Примеры темпографии
Представьте себе для начала следующие ситуации:
-
нулевое время, то есть время, которое остановилось;
-
инвертированное время, то есть время, которое пошло задом наперед;
-
параллельное время, то есть такое, которое как-то появилось вне основного…
Кажется, что все это фантастика? Игра фантазии? Нет, это реальность ДРС.
Нулевое время
Им прославилась Solana. В этой сети, помимо прочего, есть часть алгоритма консенсуса под кодовым названием PoH (подробнее читаем в White paper). Для нас важно, что Solana работает как со стандартным, глобальным, временем, так и с локальным. И локальное, в свою очередь, не раз отклонялось от глобального. Пример: «проблема (была) вызвана увеличением периода, которое требуется валидатору, чтобы отправить блок в сеть (slot time)».
Solana прославилась тем, что с 2021 года стала все чаще и чаще уходить на обед: эту проблему я рассматривал в одной из предыдущих статей. Но что происходит в это время со временем? С тем самым локальным временем, которое есть не только у Соланы, но и у сети Биткоина, Эфириума и многих других подобных? Оно останавливается. До какого момента? Как правило, до нахождения так называемого социального консенсуса.
Поэтому нулевое время — не фантазия, но реальность. Внутри ДРС. Использовать его можно как во благо, так и во зло:
-
Во зло, например, совместив с любой разновидностью атаки Сивиллы: пока сеть находится «в отключенном состоянии», а держатели нод договариваются между собой, мало что стоит между рядовым пользователем и подложными транзакциями;
-
Во благо, например, если нулевое (локальное) время одной сети является основанием для создания генезис-блока другой сети.
Не удивлюсь, если в скором будущем появятся сети, которые будут выполнять исключительно роль временных оракулов. Но пойдем дальше.
Инвертированное время
У этого времени есть несколько подсостояний:
-
Скажем, если говорим о взломе Binance Hub, то время сначала остановилось и стало, соответственно, нулевым внутри системы, а потом было перезапущено и вернулось назад на несколько блоков. То есть произошла параллелизация настоящего через возврат к точке останова в прошлом. Нечто подобное было и в тестнете Harmony после взлома их моста. То есть инверсия заключается в том, что блоки идут в прямой последовательности (высота не нарушается), но целостность цепи нарушается из-за удаления ряда из них до определенной величины.
-
Второй подход инвертированного времени иной: он свойственен, например, сети Биткоина: блок Х+1 появляется в основной цепи раньше, чем блок Х. Почему это возможно? Потому что расхождение при синхронизации между нодами может составлять до двух полновесных часов и наследуется аж с эпохи Сатоши: «Временная метка (timestamp) считается действительной, если она больше чем медианная временная метка предыдущих 11 блоков, и меньше, чем время с поправкой на сеть (+ 2 часа). „Время с поправкой на сеть“ — медиана временных меток, возвращенных всеми узлами, подключенными к сети».
-
Наконец, третий подход временной инверсии. Создается блокчейн, где задан блок, скажем 1 000 000 000, а дальше идет обратный отсчет. То есть потом будет блок 999 999 999, потом 999 999 998 и так далее. Вплоть до анти-генезис блока: 0 (нулевого блока).
Последний случай очень хорошо подходит для хронокапсул. О них поговорим отдельно, но коротко можно объяснить следующим образом: это мультисиг навроде того, что создается в Lighting Network, где параметры времени и прочие параметры определяются сторонами.
А вот пример уже действующей хронокапсулы внутри сети Биткоин:
-
Представьте, что вы отправили транзакцию Биткоина в будущее, то есть она станет доступной на определенном блоке — стандартный механизм, встроенный в эту ДРС.
-
Так вы задаете первую часть временного периода. Затем, зная основные зоны воздействия на сеть Биткоина — халвинг (210 000 блоков), перерасчет сложности (2016 блоков) и так далее, — создаете блокчейн А, который ведет обратный отсчет и создает блоки, скажем, каждый час. Высчитываете, что за период отправки транзакции должно при нормальных условиях быть создано N блоков. Так получаете второе число заданного диапазона. Для примера я сделал эту тестовую страницу на ChatGPT.
-
Наконец, рассчитываете погрешность и считаете, что транзакция в блокчейне Х (пусть — в Эфириуме) будет совершена только в том случае, если абсолютная разность (по модулю) между временем появления блока в блокчейне Биткоина и в блокчейне А составляет не более 48 часов. В любом ином случае транзакция будет ждать следующего периода.
Зачем это нужно? Например, чтобы никто не мог получить некие активы раньше установленного времени: будь то наследство или принадлежащее некому ДАО цифровое имущество. При этом в стабильной сети, прямо сейчас, в начале мая 2023 года, транзакции в том же Биткоине стоят весьма недешево, а из-за перегруженности мемпула время завершения может исчисляться сутками, а не часами.
Но и это — еще не все.
Параллельное время и эпоха интероперабельности
Сегодня есть три способа добиться функциональной совместимости активов:
-
Создать единую среду существования: будь то EVM-блокчейны или парачейны внутри Polkadot, хабы в Cosmos, сабчейны в Avalanche.
-
Создать унифицированный инструментарий, существующий изначально в любой из взаимодействующих ДРС, скажем, (w) NFT.
-
Создать систему оракулов, умеющих проверять начальные и конечные условия существования активов.
При этом нет ни одного противоречия для того, чтобы соединить все способы в один. А самое интересное: все три и есть прямое подтверждение параллельного времени. Судите сами:
-
Когда заходите на мост первого поколения и делаете обмен, то фактически морозите актив в одной сети (пусть будет ETH в сети Эфириума) и создаете его аналог в другой (пусть будет wETH в сети Polygon). Таким образом, важно не только, что актив заморожен в сети Эфира, но и что время для этого актива в ДРС с разрешенной степенью детализации расхождений одинаково: иначе как будем знать, что деньги вернулись через мост назад? Верно — никак;
-
В любом мультичейне по определению локализованное и локальное время — не одно и то же: локализованное — глобально для всего мультичейна, а локальное - локально исключительно для его части.
Но какой во всем этом практический смысла? Тем более — здесь и сейчас?
MEV-боты и их друзья во времени
Давайте начнем с примера, некогда обнародованного на Bits.media: «Будильник Эфириума позволяет пользователям сети заранее планировать будущие транзакции, определяя адрес получателя, сумму и желаемое время транзакции. Также пользователи должны заранее оплатить сборы за газ». Итак, там, где появляется нечто со словом «заранее» или его синонимами — это темпография. Но где же такое происходит постоянно? Верно: у MEV-ботов.
Кто они такие? MEV — максимально извлекаемая стоимость (Maximal Extractable Value): «В теории определять включение транзакций в блок должны валидаторы, на практике это делают сёрчеры (searchers), независимые участники которые ищут потенциально выгодные транзакции и запускают в них своих ботов. Валидаторы все равно немного выигрывают, потому что сёрчеры ставят газ фи выше среднего, а дельта идет валидаторам взамен за повышенную вероятность включения транзакции в ближайший блок».
Поэтому фактически MEV работают в ускоренном времени. И это не просто арбитраж, но тонкая настройка внутри так называемого «темного леса» Ethereum, который пытаются освоить и в положительном русле, и в отрицательном. Больше об атаках подобного образца можно почитать по ссылке: если же тема будет интересна, то опишу современные методы защиты и нападения в подобном русле. Тем более что персонажи навроде jaredfromsubway.eth становятся все более популярны.
Но вот что важно для нас:
-
MEV-боты и механизмы их противостояния — это практика темпографии, которая в 2020-2023 годах получила новое развитие за счет роста TVL и, как следствие, проектов, который эти самые заблокированные средства хотят поделить меж собой.
-
MEV-боты не только оптимизируют скорость исполнения транзакций (а их поведение коррелирует с комиссиями сети), но и создает сложную систему распараллеленного времени:
-
Шардинг и другие способы масштабирования, поскольку они изначально нацелены на параллельное (локальное) время.
-
DAG-эволюция. Решения, такие как byteball, hashgraph, tangle и подобные, тоже в концепте поддерживают параллельное (локальное) время.
-
Мульти и/или кроссчейн решения, которые уже сегодня сталкиваются со всеми выводами настоящей статьи на практике.
Конечно, это не все тезисы, но, думаю, что для начала достаточно: пишите комментарии на форуме и в телеграм-канале, делитесь статьей со знакомыми и
До!