Собрано вне цепочки.
Проверено параллельно.
Зафиксировано по порядку.
Каждый крупный блокчейн заставляет каждый узел заново исполнять каждую транзакцию против глобального состояния. Zycord выносит исполнение за пределы цепочки: платёж собирает кошелёк, вызов контракта исполняет секвенсор контракта по подписанному интенту пользователя, и в обоих случаях результат приходит целиком, со всем, что он прочитал и записал. Любая машина проверяет его по одним лишь байтам, а единственный цикл его фиксирует — или пропускает и выставляет счёт тому, кто внёс за него депозит.
Транзакция — это сертификат
Он не просит “исполни это”. Он заявляет: “я прочёл вот это, я записал вот то, и вот доказательство”. Любой пересчитывает и сравнивает.
program над reads даёт ровно writes, а deposit покрывает наихудший случай. Ни диска, ни истории.reads ещё и тогда, когда сертификат доходит до своей очереди в блоке?Два глагола, две стадии
Весь замысел состоит в разделении этих двух вопросов — и в ответе на каждый там, где это дешевле всего.
Действительный ли он?
Ответ даётся по одному лишь сертификату. Тысячи разом, на любой машине.
- Строгие подписи Ed25519 сходятся
- Повторное исполнение совпадает с записями
- Депозит покрывает наихудший случай
- Недействительный: никогда не попадает в честный блок
Применимый ли он?
Ответ даётся на позиции сертификата в блоке, сравнением байтов с таблицей состояния.
- Чтения по-прежнему выполняются → записи фиксируются
- Устаревшее чтение или переполнение → пропуск, вносящий депозит платит фиксированную плату
- Депозит не пополнен или израсходован → отбрасывание, ничего не взимается
- Блок остаётся действительным в любом случае
Четыре исхода и кто платит
Проблема с сертификатом — это исход, а не повод отвергнуть блок. Каждый исход оплачивает сторона, которая выбрала риск, и одна подпись оплачивается не более одного раза.
Применён
Каждое заявленное чтение выполняется, поэтому записи применяются, а комиссия взимается по фактической стоимости: базовая комиссия сжигается, а приоритетная выплачивается производителю блока.
Пропущен
Чтение больше не выполняется, или дельта вывела бы значение за пределы 256-битного диапазона. Ничего не записывается. Фиксированная плата за пропуск в 0,01 ZCD сжигается с депозита, а остаток возвращается. Идентификатор помечается как виденный, поэтому ни один производитель не может включить его снова.
Отброшен
Ячейка депозита не пополнена или уже израсходована, поэтому взимать нечего. Сертификат переносится в блоке, но ничего не оплачивает и не помечается как виденный.
Пользователь никогда не платит за пропуск
Чтения выбирал вносящий депозит, поэтому он за них и отвечает. Для fill это секвенсор: тот, который объявил себя для контракта, чьё чтение не выполнилось, или иначе тот, чей депозит называет fill. Платёж пользователя каждому секвенсору проводится, только когда fill применяется. Неудачи, за которые некого взыскать, — fill вне порядка конвейера, сдвинувшийся fence, принудительный сертификат, чьи чтения не выполняются, — вместо этого делают блок недействительным, потому что знать об этом мог именно производитель блока.
Путь от рождения до реестра
Кошелёк собирает платёж или подписывает интент
Платежу сервер не нужен: кошелёк ставит охранное условие на принадлежащую ему одноразовую ячейку, списывает с неё, помечает её израсходованной, зачисляет на свежий адрес получателя и отправляет сдачу на собственный свежий адрес. Вызов секвенируемого контракта — это вместо этого подписанный интент: что вызвать, границы результата, сколько платится секвенсору и одноразовые плательщики, которые его финансируют.
Секвенсор исполняет и подтверждает
Он прогоняет интент над собственным представлением — вершиной цепочки плюс каждым fill, который он уже построил, — за миллисекунды отвечает подписанной квитанцией и публикует результат как fill с депозитом из собственного баланса. Вызов, пересекающий контракты, привязанные к разным секвенсорам, подписывается каждым из них и попадает в цепочку как один атомарный fill.
Каждый узел проверяет параллельно
Каждый сертификат проверяется по своим байтам при поступлении, до ретрансляции: подписи, повторное исполнение против заявленных чтений, депозит. Ни состояния, ни истории, любое ядро, любая машина.
Производитель упорядочивает
Майнер доказательства работы выбирает действительные сертификаты и решает блок; после перехода на доказательство стейка его вместо этого подписывает стейкер, выбранный жребием для слота. Он не исполняет ничего из того, что ему дают, и помнит идентификаторы, увиденные в пределах окна TTL, потому что двойное включение одного из них делает блок недействительным. В конце своего блока он может исполнить открытые интенты через принудительный путь.
Последовательная свёртка (fold)
Сначала fill, в порядке конвейера; затем все остальные сертификаты по (deposit address, seq, id); затем принудительные сертификаты по идентификатору. Производитель не выбирает ничего из этого. Для каждого сертификата: выполняются ли ещё заявленные чтения?
Состояние: ячейки, адреса, типизированный доступ
Ячейка — это 256-битное целое число в слоте. Отсутствующие ячейки читаются как ноль. Параллелизм не обнаруживается во время исполнения: он объявляется, слот за слотом.
Одноразовые и постоянные адреса
Одноразовый адрес расходуется один раз: сертификат, который с него списывает, помечает его израсходованным, навсегда. Кошельки дают каждому входящему платежу свежий адрес — это путь без конкуренции. Постоянный адрес многоразовый — это счёт — и именно на него должны поступать вознаграждения за майнинг: одноразовый адрес сжигает все удерживаемые им вознаграждения, как только с него расходуют, поэтому узел отвергает такой адрес как адрес выплаты. У контрактов есть собственный вид адреса, за который не может подписать ни один ключ.
Нативные активы, без машины
С блока 0: TRANSFER до 32 переводов, ISSUE с ограничением предложения, MINT под охраной этого ограничения, RETIRE до 64 одноразовых адресов. Зачисление на свежую ячейку — это чаевые. Десять тысяч чаевых в одном блоке — это десять тысяч сложений: ноль конфликтов, ни секвенсора, ни машины.
Машина и её секвенсоры
Охраняемые дельты снимают конкуренцию платежей. Остаётся логика, которая должна читать точное состояние, чтобы решить, что записать, — книга заявок, маркетмейкер — и там контракт сам выбирает, кто его упорядочивает.
cEVM
Диалект виртуальной машины Ethereum, так что Solidity, его компиляторы и аудиторы переносятся. Хранилище объявляется: SLOAD и SSTORE точные, а шесть новых опкодов дают охраняемую, коммутативную дисциплину. NUMBER и TIMESTAMP читают маяк эпохи, постоянный в течение суток; опкоды, которым не на что ссылаться, удалены. Код передаётся в сертификате. Токен, копилка для чаевых и эскроу, написанные в первую очередь на дельтах, предварительно развёртываются, когда машина открывается.
Секвенируемый или открытый
Запись каждого контракта называет ключ секвенсора. Если он ненулевой, точный путь контракта требует подписи этого ключа; если он равен нулю, этим путём может пройти любой, и контракт защищён только своим кодом. Охраняемые дельты никогда не контролируются: секвенируемый токен по-прежнему принимает любой перевод от кого угодно. Каталог сообщает, где отвечает каждый секвенсор, — это обнаружение, а не авторизация.
Интенты, fill, квитанции
Интент — это всё разрешение пользователя, действительное в течение окна не более 8 блоков: секвенсор может изменить то, когда он выполняется, но никогда — что он делает. Идентификатор fill — это хеш интента, так что два fill одного интента имеют общий идентификатор и оплачен может быть только один. Квитанция — это предварительное подтверждение, обещание секвенсора до тех пор, пока fill не применится; две противоречащие друг другу квитанции — это доказательство, которое любой может проверить по байтам, и пользователи уходят.
Конвейеры, fence, совместное секвенирование
Цепочка хранит последний применённый seq для каждого секвенсора и контракта, и fill входит только на следующем, так что конвейер фиксируется в том порядке, в котором подписал его секвенсор. Каждый контракт также хранит счётчик fence: принудительный сертификат, устанавливающий его состояние, или смена секвенсора сдвигают его, и ни один fill, построенный поверх обойдённого состояния, не может войти — ни с кого ничего не взимается, а секвенсор пересобирает. Вызов через несколько секвенсоров — это один fill с подписью каждого секвенсора, атомарный по построению.
Принудительный путь: включение означает применение
Контракт, единственная дверь которого — его секвенсор, стал бы тюрьмой, если бы секвенсор цензурировал, завышал цену или исчез. У каждого пользователя есть медленная дверь, которой не нужно ничьё разрешение.
Каждый блок сворачивается в три класса, в порядке, который производитель не выбирает
Пользователь подписывает открытый интент — интент без указанного секвенсора, оплачиваемый собственными одноразовыми плательщиками пользователя, — и передаёт его в сеть. Производитель блока, который располагает состоянием на конец своего блока, исполняет выбранные им открытые интенты против этого состояния и добавляет результаты как последние сертификаты блока. Нет ни очереди, ни аренды, ни квоты, ни крайнего срока. Платёж интента покрывает комиссии, так что производитель зарабатывает столько же, сколько заработал бы секвенсор.
Неудавшийся вызов всё равно попадает в блок
Принудительный вызов, который откатывается, нарушает свои границы или исчерпывает gas, входит как FORCED_FAILED: его плательщики платят, больше ничего не записывается. Тот, кто передаёт интенты, которые не могут быть успешными, платит за каждый из них, поэтому он не может вытеснить работоспособный.
Он сдвигает fence
Принудительный сертификат, устанавливающий ячейку состояния контракта, продвигает счётчик fence этого контракта, так что каждый fill, построенный поверх обойдённого им состояния, пересобирается. Сертификат, который только читает, ставит охранные условия или прибавляет дельты, fence не трогает, как и сертификат, завершившийся неудачей. Секвенсор теряет задержку, и не более того.
Ограничен по построению
Не более 16 принудительных сертификатов на блок, каждый с параллельным бюджетом не более 4 000 единиц деривации (200 000 машинного gas): не более трети параллельного потолка генезиса. Правило для авторов контрактов: вывод средств должен укладываться в этот бюджет.
Кто чем занимается
Ни одна роль не требуется для безопасности. Если исчезнут все секвенсоры, контракты останутся живыми благодаря своим дельта-методам и принудительному пути, по которому пользователи выводят средства, а контракт можно привязать к новому секвенсору.
Кошелёк
- Делает
- Собирает платежи как сертификаты; подписывает интенты для контрактов
- Видит
- Публичное состояние, которое ему нужно прочесть
- Доверяет
- Никому
Секвенсор
- Делает
- Исполняет интенты для своих контрактов, подписывает квитанции, публикует fill
- Ему доверяют
- Только живучесть. Если он лжёт, его fill пропускается и платит его собственный депозит
- Забирает
- Поток заявок собственного приложения, явным образом
Проверяющий узел
- Делает
- Проверяет каждый сертификат по его байтам, ретранслирует, синхронизируется
- Нужны
- Ядра. Состояние — только для выполнения свёртки
- Цена
- Проверка распределяется по всем его ядрам; свёртка — это один цикл по памяти
Производитель блоков
- Делает
- Майнит на RandomX, упорядочивает действительные сертификаты, исполняет открытые интенты в конце своего блока
- Видит
- Байты и состояние, а не смысл
- Зарабатывает
- 94% субсидии плюс приоритетные комиссии того, что применяется
Принудительный путь
- Делает
- Дверь без разрешений: открытый интент, исполняемый производителем блока
- Цена
- Каждый раз принудительная цена, и задержка
- Гарантирует
- Ни один оператор не является тюрьмой
Сеть: два рынка gas
Цепочка, которая берёт плату за всё на одном аукционе, заставляет проверку доказательства конкурировать с записью состояния. Здесь у каждого ресурса своя цена.
Параллельный gas
Оплачивает проверку: подписи, байты, единицы деривации — тяжёлые доказательства, постквантовые схемы.
Последовательный gas
Оплачивает свёртку (fold): чтения, записи, вставки в реестр израсходованных, вставки в множество виденных. Тот единственный цикл, который каждый узел проходит по порядку.
Платит только то, что применяется, и только то, что применяется, двигает цену
Базовая комиссия сжигается, а приоритетная платится производителю блока — по сертификатам, которые применяются, и только по ним; комиссия пропущенного сертификата сжигается целиком. Если бы пропуск приносил плату производителю, тот, кто собирает блок, получал бы выгоду, устраивая неудачи других людей. Сжигание выворачивает это: пропуск занимает место и ничего не приносит. И только применённый gas двигает базовые комиссии, так что заполнение блоков конфликтующими между собой сертификатами не может никого вытеснить ценой.
Эры: что работает сегодня и что появится позже
Эра — это высота, скомпилированная в релиз, или условие, измеряемое в цепочке. Блок ниже рубежа, несущий то, что рубеж открывает, недействителен; новая эра никогда не меняет смысла более раннего блока.
Era 0 — майнинг и платежи
Работает с блока 0, 7 октября 2026 года. Доказательство работы по правилам Накамото, нативные активы, одноразовые и постоянные адреса, два рынка комиссий, распределение субсидии 94/3/3 и казна, которая накапливается и с которой не может списать ни один сертификат; путь расходования, если он вообще появится, придёт с более поздним обновлением, не раньше высоты 259 200.
Era 1 — машина
Высота 80 640, около 4 ноября 2026 года, в бинарнике запуска. cEVM и её стандартная библиотека, записи контрактов с секвенсором и администратором, интенты, fill и совместное секвенирование, каталог и принудительный путь.
Era 2 — доказательство стейка
Внесение залога открывается на эпохе 182, около 7 апреля 2027 года: стейк вносится в залог, выводится из залога или делегируется пулу, при минимальном залоге 1 000 ZCD. Как только активный стейк удерживает 10% предложения в течение 30 эпох, и не позднее чем с эпохи 273, начинается разгон длиной 90 эпох: блоки по-прежнему добываются майнингом, и каждый также подписывается стейкером, выбранным жребием пропорционально стейку, который получает k/180 доли производителя. Выходит отдельным релизом, через хардфорк.
Переход
Первый блок эпохи, следующей за 90-й эпохой, прошедшей порог, — 90% её блоков подписаны, активный стейк не менее 10% предложения. Майнинг заканчивается; выбранный жребием стейкер подписывает каждый 5-секундный слот, и эпоха из 17 280 слотов выплачивает столько же, сколько раньше выплачивал день. Блок становится окончательным по глубине: 120 блоков, или 10 минут. Наказывается только двойное подписание, и никогда — делегатор.
За пределами полной проверки
Направление, а не спецификация. Когда дневной объём приблизится к тому, что проверяет обычный узел, более поздняя эра может выбирать жребием подмножество стейков для проверки каждого сертификата вместо всех узлов, тогда как состояние и свёртка остаются едиными, а каждый сертификат — атомарным. До тех пор каждый узел проверяет всё.
Сеть сверху
Четыре непересекающихся слоя: кто собирает, кто проверяет, кто упорядочивает, и дверь, которую никто не может закрыть. Каждый масштабируется по своему ресурсу.
Кошельки и секвенсоры
Обычный web2: websockets, очереди, автомасштабирование. Кошельки сами собирают платежи; секвенсоры исполняют интенты и отвечают за миллисекунды. Им доверяют живучесть, но никогда — безопасность, и они никогда не хранят данные — состояние всегда можно восстановить по одной лишь цепочке.
Ретрансляция и проверка
Каждый узел проверяет каждый сертификат по его байтам, прежде чем ретранслировать. Блоки передаются как заголовок плюс список хешей, большую часть которых получатель уже имеет; тела — это данные цепочки. Узел синхронизируется в сторону наибольшей проверенной работы, а не наибольшей заявленной высоты.
Производитель и свёртка
Майнер доказательства работы упорядочивает сертификаты и решает блок, или, после перехода на доказательство стейка, блок подписывает стейкер, выбранный жребием для слота; каждый узел выполняет свёртку, которая сравнивает, складывает и записывает. Порядок свёртки зафиксирован правилами, поэтому единственный выбор производителя — что включить.
Принудительный путь
Открытые интенты, исполняемые производителем блока в конце своего блока. Включение означает применение — механизм, благодаря которому сеть переживёт любого оператора, включая автора.