Вики ZooBC
Безопасность и архитектура

Безопасность и архитектура

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

Злоумышленник, на которого рассчитан ZooBC

Дизайн исходит из злоумышленника, который может запустить любое число узлов и аккаунтов, видит каждое сообщение, использует любой логический изъян и богат, но не может подделывать подписи, находить коллизии хешей или скупить все токены. Его целями были бы кража, цензура, переписывание истории или нарушение работы цепочки. Статья от чего защищает Proof of Participation разбирает каждую атаку и ответ на неё.

Две цепочки в каждом узле

Каждый узел ведёт две цепочки. Основная цепочка создаёт блок каждые 15 секунд и несёт транзакции; её блоки создают зарегистрированные узлы, выбранные жеребьёвкой (см. Proof of Participation). Spine-цепочка в mainnet создаёт один блок в сутки и не несёт транзакций: каждый её блок — это контрольная точка основной цепочки, запись о ключах узлов, которые вошли или вышли, и манифесты последних снимков состояния, соподписанные двумя третями мест.

Уровни защиты

УровеньЧто он гарантируетСтатья
проверка каждым узломблок засчитывается, только если его подписал выбранный жеребьёвкой производитель, а его доказательство сида, транзакции и квитанции проходят проверкуProof of Participation
равные места, допускаемые размеренновласть нельзя быстро купить: один равный шанс на место, один допуск за циклОт чего защищает Proof of Participation
ограниченный откатни один узел не откатывается больше чем на 720 блоков (3 часа)Финальность и откат
контрольные точки spine-цепочкини один узел не реорганизуется ниже контрольной точки, которую соподписали две трети местSpine-цепочка
проверяемая быстрая синхронизацияновый узел загружает состояние, названное spine-цепочкой, проверяет каждый хеш и опрашивает выборку пировСнимки и быстрая синхронизация
пин релизановая установка отвергает историю spine-цепочки, противоречащую её релизуПин релиза
подписи, привязанные к цепочкетранзакция, подписанная для одной цепочки, отклоняется во всех остальныхПодписи, привязанные к цепочке
решения двух третейконтрольные точки, переводы через мост, факты оракула и вето релизов требуют двух третей местПравила двух третей
непредсказуемые сидыни один производитель не может выбрать случайность, которая выбирает следующего производителяСид блока (VRF)
отчёты о двойном подписаниипроизводитель, подписавший два блока на одном родителе, изобличается и несёт наказаниеДвойное подписание (эквивокация)

Уровни перекрываются. Например, переписывание истории годичной давности проваливается на каждом из нескольких уровней по отдельности: на пределе отката, на нижней границе контрольных точек, на соподписях spine-цепочки и на пине релиза.

Поддельная ветвь, уходящая далеко в прошлое, встречает три щита: предел отката в 720 блоков, нижнюю границу контрольных точек spine-цепочки и пин spine-цепочки в релизе — под spine-цепочкой, каждый блок которой несёт подписи двух третей. Работающие и новые узлы её отклоняют.
Поддельная ветвь, уходящая далеко в прошлое, встречает три щита: предел отката в 720 блоков, нижнюю границу контрольных точек spine-цепочки и пин spine-цепочки в релизе — под spine-цепочкой, каждый блок которой несёт подписи двух третей. Работающие и новые узлы её отклоняют.

Что могло бы и чего не могло бы сделать большинство

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

На что безопасность ZooBC не опирается

  • На секретность. Трафик между пирами — простой gRPC; защиту обеспечивают подписи и проверка.
  • На энергию или оборудование. Никакая головоломка не решается, и никакая машина не даёт преимущества.
  • На доверенную сторону. Никакой фонд не соподписывает блоки, никакой сайт не ручается за снимки, а чтобы узнать о самой тяжёлой цепочке, достаточно одного честного пира.

См. также

Статьи по этой теме