III.КОНСЕНСУС

Требования. Мы хотим создать механизм консенсуса POC с самой длинной цепочкой, который стимулирует фермеров сохранять историю блокчейна, чтобы (частично) обойти дилемму фермера. Придерживаясь видения Накамото, этот механизм должен быть без ограничений, обеспечивая при этом безопасность цепочки с точки зрения безопасности и жизнеспособности, до тех пор , пока честные фермеры коллективно выделяют больше места для хранения, чем любая сотрудничающая группа узлов злоумышленника. Чтобы гарантировать, что консенсус сохранит справедливость принципа "one-disk-one-vote", мы должны препятствовать тому,чтобы фермеры пытались увеличить или заменить хранилище вычислений, делая такое поведение экономически нерациональным

Доказательства архивного хранения. Для достижения этих целей мы основываем консенсус на полезном доказательстве хранения (PoStorage) [7] истории самого блокчейна. Фермеры сначала создают и хранят доказуемо уникальные копии истории цепочки, прежде чем отвечать на случайные и общедоступные проверки хранилища, которые позволяют им создавать новые блоки. Это контрастирует с бесполезным доказательством пространства (PoSpace), реализованным (небезопасно) в Burst и предложенным Spacemint [8], Chia [9] и SpaceMesh [10], в котором узел хранит некоторые случайно сгенерированные данные. Вместо этого его можно принять более простую конструкцию Permacoin [11] в сочетании с более ограниченным применением доказательства репликации Filecoin (POR) [12], в котором объем вводимых данных ограничен обновлениями состояния блокчейна, т.е. заголовками блоков и данными транзакций. Эта идея вдохновлена понятием Proofof-Уникального-блокчейн-хранилища [5], первоначально предложенного Серджио Лернер, но используется непосредственно для достижения консенсуса.

Схемы Песочных часов. Наше решение начинается со схемы песочных часов [13], в которой проверяющий применяет медленное кодирование к файлу с использованием открытого ключа. Позже случайный сегмент закодированного файла проверяется верификатором. Чтобы пройти аудит, проверяющий должен продемонстрировать владение закодированным сегментом в течение указанного времени ожидания. Время ожидания настроено таким образом, что с вычислительной точки зрения невозможно закодировать файл в ответ на вызов и при этом пройти аудит, демонстрируя, что проверяющий сохранил весь закодированный файл с высокой вероятность. Следуя Lerner, мы можем адаптировать эту схему для настройки блокчейна.

Составление Истории. Для этого мы рассматриваем подтвержденную историю Ledger как единый большой файл, разделенный на постоянно растущий набор фрагментов постоянного размера с адресом содержимого. Для каждой части каждый фермер применяет псевдослучайную перестановку (PRP), используя уникальный открытый идентификатор (ID) в качестве ключа кодирования, такой как хэш их открытого ключа. Результирующая кодировка хранится на диске, в то время как обязательство или тег для каждой кодировки хранится в отсортированном двоичном древе. Каждый фермер теперь хранит доказуемо уникальную копию Ledger, и мы определяем коэффициент репликации как количество уникальных копий Ledger, хранящихся в сети.

Выбор перестановки. В то время как любого криптографически безопасного PRP будет достаточно для кодека, идеальным кандидатом будет как устойчивый к ASIC, так и асимметричный по времени, без введения каких-либо новых предположений о безопасности. Оказывается, мы можем построить такую перестановку из-за сложности вычисления модульных квадратных корней, используя перестановку, лежащую в основе SLOTH (slow-time hash function) в качестве руководства [14]. Это имеет преимущество в почти оптимальном времени кодирования на архитектуре x86-64 при использовании 64-битного прайма, при одновременном значительном сокращении времени декодирования по крайней мере на один порядок снижение совокупной работы по проверке, выполняемой по всей сети для каждого нового блока.

Аудит хранилища. Чтобы сгенерировать новый блок, сеть проводит аудит, запрашивая действительный PoR в ответ на случайный вызов, полученный из последнего блока. Любой тег, который находится в пределах диапазона самонастраивающихся сетевых решений задачи , может быть использован в качестве основы для действительного PoR. Поскольку фермеры хранят теги в отсортированном двоичном древе, они могут эффективно запрашивать весь свой участок в поисках ближайшего тега для каждой задачи. Обратите внимание, что качество POR масштабируется логарифмически по отношению к количеству проверяемых кодировок и может использоваться для выведения общего пространства, предоставленное сети всеми фермерами. Любой фермер, который стремится добывать кодировки по требованию с той же вероятностью успеха, что и честный фермер, должен будет создать такое же количество кодировок, которое было записано на диск, в пределах одного блока.

Повторное введение Времени. Чтобы сохранить представление о времени в отсутствие задержки майнинга, чтобы мы могли обеспечить соблюдение тайм-аута схемы песочных часов, мы используем стандартный подход разделения консенсуса на отдельные временные интервалы и эпохи. Чтобы добиться синхронизации часов, не полагаясь на надежный сервис, такой как Network Time Protocol (NTP), мы следуем Polkadot, извлекая общие относительные часы из самого блокчейна [15], который остается безопасным до тех пор, пока дрейф часов, измеренный в течение эпохи, составляет лишь небольшую часть сетевой задержки.

Сдерживающее Сжатие. Обратите внимание, что фермеры могут просто отказаться от своих кодировок, сохранив при этом только гораздо меньшие отсортированные древа и единственную копию некодированной истории, из которой они могут воспроизвести любую допустимую кодировку по требованию. Если фермер делает это много раз для разных ID, используя дополнительные предварительные вычисления, он может увеличить свое явное хранилище, эффективно сжимая свой участок и нарушая справедливость протокола. Чтобы предотвратить такое поведение, мы требуем, чтобы каждое обязательство основывалось на Salt, которая должна обновляться в регулярный интервал, определяемый общим пространством, выделяемым для сети, и параметром безопасности L. В то время как скромный интервал будет сдерживать фермеров, которые стремятся нарушить справедливость, увеличивая стоимость непрерывной регенерации кодировок, чем просто покупают больше дисков, на начальном этапе может потребоваться более короткий интервал, чтобы предотвратить 51% атак из выделенных CPU пулов майнинга .

Предотвращение Шлифования. Чтобы фермер -победитель не мог повлиять на содержимое блока в попытке повлиять на последующие аудиты в свою пользу, мы следуем Spacemint и делаем это невозможным, разделяя канонический порт и данные о транзакциях с гибкостью на две отдельные PoR, в то время как проблемы аудита основываются исключительно на содержании цепочки доказательств .

Ограничивающая Симуляция. В случае честной развилки фермер мог бы легко решить проблему на обеих ветвях, эффективно удвоив их видимое пространство. Если все фермеры сделают это публично, потребуется больше времени для достижения консенсуса по самой длинной цепочке, и сеть станет восприимчивой к катастрофической атаке балансировки, возможной лишь при небольшой доле ресурсов хранения [16]. Если фермеры вместо этого будут делать это в частном порядке, они могут увеличить свой очевидный ресурс хранения до коэффициента e (2,718), что позволит им легче заниматься личным "сельским хозяйством" и дважды потратьте всего 27% от общего пространства [9]. К счастью, мы можем свести к минимуму преимущества этих атак "simulation or nothing-atstake", снова следуя Space mint и повторяя одну и ту же задачу в течение нескольких последовательных проверок [8], [16], [17], признавая при этом, что интервал не обязательно должен быть большим [18].

Обработка неоднозначности. У фермера все еще есть возможность расширить обе ветви вилки, используя одно и то же доказательство, в попытке “застраховать свои ставки”. Хотя такое поведение отражает наиболее рациональный выбор для фермера, если его не остановить, это приведет к неограниченным вечным вилкам и помешает сети когда-либо достичь консенсуса по одной самой длинной цепочке. Чтобы исправить это, мы снова следуем Spacemint, отмечая, что двусмысленность может быть обнаружена и наказуема. Если фермер подписывает два блока, используя одно и то же доказательство на одной и той же высоте с разными источниками они лишатся своих наград и увидят , что их ID занесен в черный список для участия в консенсусе, что фактически сожжет их договор

Обнаружение Удаленных Атак. Обратите внимание, что в любом блокчейне PoC злоумышленник может сгенерировать более тяжелую цепочку, используя только средний объем пространства, выделенного за время существования цепочки, путем переписывания истории из какой-либо развилки глубоко в прошлом цепочки [8], [9]. Затем эта атака по переписыванию истории может быть использована для обмана новых фермеров или тех, кто был отключен с момента развилки а также клиентов light, чтобы заставить их поверить, что переписывание на самом деле является самой длинной цепочкой. Обратите внимание, что в соответствии с консенсусом доказательства, любая пересмотренная цепочка неотличима от честная цепочка, как содержание сюжетов, так и результирующие доказательства являются случайными и не зависят от какой-либо конкретной истории цепочки. Однако в цепочке доказательств архивного хранения, такой как подпространство, эти цепочки различимы, если только злоумышленник на дальнем расстоянии не будет постоянно пересматривать свой сюжет, чтобы отразить новую историю, которую он создает. Следовательно, атака с неразличимым переписыванием истории потребует как значительных ресурсов памяти, так и (только частично распараллеливаемых) вычислительных ресурсов, что значительно снизит, если не исключит, осуществимость такой атаки.Чтобы обнаружить более слабую атаку, узлу нужно только выбрать среднюю height, из которой было получено правильное решение, и просто выбрать цепочку с наибольшей средней высотой.

Безопасность. Путем моделирования оценки графика как случайного процесса, аналогичного в принципе оценке Verifiable Random Function (VRF) в POS, мы можем расширить анализ Накамото, формально определенный в базовом протоколе [4], а затем адаптированный к настройкам POS [17], чтобы показать, что у нас есть те же гарантии безопасности. В частности, ни одна сторона , имеющая менее половины доступных ресурсов хранения, не может создать более длинную цепочку, что приводит к формальным свойствам безопасности и жизнеспособности. Следуя Spacermesh, наш протокол сохраняет эти качества только при условии, что фермеры экономически рациональны, так что они всегда будут выбирать сельское хозяйство, а не добычу полезных ископаемых, учитывая, что сельское хозяйство является более дешевым вариантом [10]. Это условие может быть легко поддержано, так как стоимость майнинга настраивается в рамках протокола.

Last updated