ZYCORD docs
Русский
ZycordДокументацияГлоссарий

Глоссарий

Сертификат, свёртка (fold), пропуск, поручитель, ячейка. Некоторые из них означают здесь нечто более узкое, чем в других местах, а пара из них называет события, для которых у большинства цепочек слова нет.

Словарь, которым пользуется этот протокол, в том смысле, в котором он им пользуется. Некоторые из этих слов означают здесь нечто более узкое, чем в других местах, а два из них — пропуск и отбрасывание — называют события, для которых у большинства цепочек слова нет, потому что нет и самих событий.

Сертификат#

Единственный тип транзакции в Zycord. Сертификат несёт состояние, которое он прочёл, и состояние, которое он записал, плюс программу, которая их связывает, подписи, которые его разрешают, поручителя, TTL и ставку на каждом из двух рынков комиссий. Поскольку он несёт собственные входные и выходные данные, проверка того, действительный ли он, не требует состояния вовсе.

Свёртка (fold)#

Детерминированный цикл, продвигающий реестр. Он обходит сертификаты блока в полном порядке и для каждого проверяет, выполняются ли ещё его заявленные чтения: если да, он фиксирует записи, а если нет, он его пропускает. Свёртка выполняет сравнения, сложения и записи по горячему рабочему множеству «ключ-значение» — никакого исполнения кода, никакой проверки подписей, никакого повторного исполнения и никакой арифметики на эллиптических кривых. Это единственная стадия системы, которая не распараллеливается.

Пропуск#

Что происходит с сертификатом, чьи заявленные чтения больше не выполняются. Его комиссия выставляется его поручителю, а блок остаётся действительным. Пропуск — это семантика, а не сбой: включение и применение — разные события, и именно это позволяет производителю блоков быть слепым — он никогда не сможет произвести недействительный блок, включив устаревший сертификат.

Отбрасывание#

Неоплачиваемое несобытие и термин, который реализация добавляет к словарю технического описания. Сертификат, дошедший до применения с уже израсходованным депозитом, отбрасывается: не оплачивается, не отмечается как виденный и свободно подаётся заново против свежего депозита. Честные пользователи поэтому ничего не теряют из-за гонок на собственной депозитной ячейке.

Поручитель#

Сторона, чьи внесённые в залог средства отвечают за сертификат. Ни один сертификат не существует без неё. Пропуск не должен быть бесплатным, иначе мемпул захлебнётся — но пропущенный сертификат никогда не касался баланса отправителя, так что списывать с отправителя нечего. Поручитель — это то, что даёт каждому конфликту владельца. Пока идёт эра Era 0, единственный режим — самострахование: отправитель прикладывает небольшой депозит из необременённой ячейки.

Ячейка#

Значение в слоте — беззнаковое 256-битное целое, хранимое с обратным порядком байтов в 32 байтах. Ноль — это отсутствие: слот, в который никогда не писали, и слот, в который записали ноль, — это один и тот же слот. Это требование консенсуса, а не удобство: оно делает корень состояния функцией от состояния, а не от истории, его породившей.

Одноразовый адрес (0x01)#

Адрес, чьи полномочия на подпись безвозвратно сжигаются его первым списанием. Платёж на только что выведенный одноразовый адрес — это быстрый путь без всякой конкуренции, а вывод нового адреса на каждый платёж — то, что делает платёж несвязываемым со следующим. Цена этого в том, что “потратить часть этого” — не то, что одноразовый адрес умеет — см. правило кошелька 1.

Постоянный адрес (0x02)#

Многоразовый адрес. Он никогда не может попасть в реестр израсходованных, поэтому у него вовсе нет поверхности для атаки сжиганием. Продавцы, адреса для пожертвований и выплаты за майнинг обязаны использовать такой; zycordd --payout отвергает любой другой.

Реестр израсходованных адресов#

Постоянное консенсусное множество одноразовых адресов, чьи полномочия сожжены. Значения в ячейках под израсходованным адресом могут быть удалены после горизонта отката, но запись в реестре — никогда — именно она не даёт воскресить адрес. Около 33 байт на адрес, навсегда: честно признанная открытая проблема протокола, структурно общая с любой схемой множества нуллификаторов.

Действительный и применимый#

Два предиката, которые обычная цепочка смешивает. Действительный — без состояния, параллельный и проверяемый любым по одним лишь байтам сертификата. Применимый — с состоянием, последовательный и решаемый только позицией в реестре: совпадает ли заявленный слот с состоянием, когда до него дошла очередь. Два действительных сертификата могут заявить одно и то же входное значение для одного слота; применимым может быть не более одного.

Охраняемая дельта#

Дисциплина доступа, при которой сертификат утверждает предикат о слоте — balance ≥ 10 — не считывая значение в вычисление, и записывает знаковую дельту. Любое число охраняемых списаний и зачислений в один слот коммутирует, поэтому пропуск случается лишь при настоящем перерасходе, а не просто потому, что баланс изменился. Одна эта дисциплина покрывает переводы, эмиссии с ограниченным предложением, разрешения и доли хранилищ.

Чистая дельта#

Знаковая дельта без охраны. Она никогда не может конфликтовать и никогда не пропускается. Чаевые, счётчики, накопители, подсчёты вознаграждений.

Точное чтение#

Дисциплина в стиле SLOAD: чтение возвращает значение слота в вычисление и привязывает к нему сертификат. Произвольная логика, конфликты на горячих слотах и вотчина секвенсоров приложений.

Маяк эпохи#

Зарезервированный слот, в который протокол пишет раз в эпоху. Программы не должны читать фоновые значения вроде метки времени или высоты напрямую — это сделало бы исполнение функцией чего-то помимо заявленных чтений — поэтому они читают маяк как любой другой слот, лучше всего с диапазонной охраной. Это выход доказательства работы, и он непригоден для лотерей на большие суммы, пока не появится VRF.

Эпоха#

2 880 блоков — около суток при тридцатисекундных блоках. Единица, на которой ступенчато снижается субсидия, сдвигается целевая последовательная пропускная способность и обновляется маяк.

TTL#

Высота, к которой сертификат должен быть зафиксирован, чтобы быть действительным. Ограничена консенсусом 240 блоками (около двух часов), и именно это позволяет очищать множество виденных. Включение виденного или истёкшего сертификата делает недействительным блок — так что подпись оплачивается не более одного раза и только на той позиции, которую подписавший принял, подписывая.

Последовательный и параллельный gas#

Комиссии разделены на два рынка: один за последовательное изменение состояния, которое дефицитно, и один за параллельную проверку, которая нет. Поэтому проверка подписи не конкурирует на том же аукционе, что и запись в хранилище, и именно это делает тяжёлую криптографию дешёвой по устройству.

Эра#

Стадия запуска, включаемая порогами, измеряемыми в цепочке — высотой блока и устойчивой ставкой — но никогда календарной датой и никогда голосованием. Era 0 — это майнинг и нативные активы, а две высоты внутри неё включают залоги (40 320), а затем cEVM, секвенсоры и принудительное включение (80 640); Era 1 добавляет финальность контрольных точек, как только залоговая ставка устойчиво достигает 1% предложения; Era 2 передаёт предложение блоков комитету по ставке; Era S добавляет конфиденциальные платежи, и только после публикации аудитов.

RandomX#

Функция доказательства работы, оптимизированная под универсальные CPU, чтобы обычное оборудование оставалось конкурентоспособным. Это параметр консенсуса, а не настройка: бинарник, который не умеет вычислять pow_engine сети, отказывается запускаться, а не откатывается.

Казна#

Собственная балансовая ячейка адреса протокола, на которую с блока 0 зачисляется 3% каждой блочной субсидии. У неё в генезис-блоке нет ни ключа, ни адреса, ни кворума, и её нельзя открыть раньше, чем наступит эра Era 2, когда набор ключей 3 из 5 может быть закреплён хардфорком. Если никто никогда публично не явится за ней, монеты никогда не будут выпущены.

Корень состояния#

Обязательство обо всём состоянии на данной высоте. Узел пересчитывает его при запуске и отказывается работать, если сохранённый расходится, и оно же служит дифференциальной проверкой между узлами в бою: две реализации, приходящие к разным корням из одной последовательности блоков, нашли ошибку в одной из них.

Где каждый термин определён нормативно#

Эта страница — вспомогательное пособие для чтения. Определения, имеющие силу, находятся в спецификации и эталонных векторах; обоснование — в техническом описании, а собственный словарный раздел реализации — в docs/ARCHITECTURE.md.