Алгоритмы консенсуса

in #ico6 years ago

1388330031_1.jpg

Алгоритм консенсуса — это набор определенных математический правил и законов, которые регулируют работу блокчейна.

Proof-of-Work
POW (доказательство работы) — принцип защиты сетевых систем от злоупотребления услугами (например, от DoS-атак или организации рассылок спама). Алгоритм консенсуса, который основан на доказательстве выполненной работы. Данный процесс включает в себя попытку найти хеш (Хеш-функция является односторонней функцией, что позволяет легко вводить информацию и вычислять хеш, но чрезвычайно сложно выводить хеш и определять исходную информацию) заголовка блока, который содержит ссылку на предыдущий блок, и суммированное значение транзакций в него включенных.
Proof-of-Work предполагает обязательное выполнение трудоемких вычислений и в то же время быструю и легкую проверку результатов. Эта особенность PoW-алгоритма называется асимметрией затрат времени.
В технологии PoW решающим фактором нахождения блока является использование больших вычислительных мощностей еe участников, и, следовательно существуют проблемы, связанные с большими затратами электроэнергии.
Впервые выдвижение требования доказательства выполнения работы приведены в статье «Pricing via Processing or Combatting Junk Mail» в 1993 году. В 1997 году Адам Бэк запустил проект Hashcash[5], посвященный защите от спама. Задача формулировалась следующим образом: «Найти такое значение x, что хеш SHA(x) содержал бы N старших нулевых бит».
В 1999 году появляется термин Proof-of-Work — использован он был в статье «Proofs of Work and Bread Pudding Protocols» (авторы — Маркус Якобссон и Ари Джуелс) в журнале Communications and Multimedia Security[6].
16 августа 2004 года Хэл Финни в своём письме на форуме шифропанков предложил использовать многоразовое доказательство выполнения работы (англ. Reusable-Proofs-of-Work, RPOW, RPoW) для организации электронной валюты[7].
Вскоре Сатоси Накамото предложил криптовалюту Биткойн, где доказательство выполнения работы использовано для значительного усложнения двойного расходования. Было предложено нахождение хеша блока информации через функцию SHA-256 с подбором параметров, чтобы у результата заданное число старших бит были нулевыми. Алгоритм Proof-of-Work используется в: Bitcoin, Ethereum, Litecoin, Dogecoin, Zcash, Monero.

Proof-of-Stake
PoS (подтверждение доли владения) — принцип работы, который может сделать криптовалютные транзакции дешевыми, быстрыми и даже экологически чистыми. Метод защиты в криптовалютах, при котором вероятность формирования очередного блока в блокчейне пропорциональна доле криптовалюты, которая принадлежит майнеру. Следовательно, больше шансов сгенерировать новый блок имеет майнер с наибольшим балансом.
В некоторых сетях, использующих систему PoS, вознаграждение за блок отсутствует, а доход майнеров составляют только комиссии с транзакций. Для майнинга в системе PoS существует отдельный термин — форджинг.
PoS является альтернативным механизмом PoW, впервые реализованным в 2012 году в криптовалюте PPCoin (переименована в PeerCoin). Идея Proof-of-Stake заключается в решении проблемы Proof-of-Work, связанной с большими тратами электроэнергии.
Сторонники PoS утверждают, что, если недобросовестные криптоинвесторы захотят атаковать всю сеть, им придется накопить значительную часть криптовалюты на своем балансе, что делает само нападение нецелесообразным с финансовой точки зрения.
Есть и скептики концепции Proof of Stake. Один из их аргументов – угроза децентрализации криптовалюты. Ведь принцип PoS может побудить инвесторов концентрировать все больше криптовалюты в одних руках. Если это произойдет, то монополист сможет диктовать собственные условия всем участникам сети.
На PoS работают: PayCoin, Blackcoin, Nxt, Clobal. В будущем Ethereum также планирует перейти на Proof-of-Stake

Leased Proof-of-Stake
LPoS - Это гибридный вид алгоритма PoS. Его суть заключается в том, что более мелкие участники форджинга (или те, которые не могут участвовать в нем ввиду недостаточного количества монет на счету) как бы сдают в аренду свои монеты полноценным нодам, повышая этим шанс последних сгенерировать блок. Взамен «арендодатели» получают свою долю в общем вознаграждении. Это имеет схожесть с майнинг-пулами, которые на данный момент в своем большинстве обслуживают сеть биткоина. В системе LPoS участник имеет полное право сделать со своими монетами что угодно в любой момент: потратить их, обменять на другие монеты и т.д. При этом «договор аренды» автоматически разрывается и с этого момента «арендодатель» уже не может рассчитывать на долю.
Алгоритм LPoS позволяет сделать сеть более децентрализованной, привлекая большое количество мелких узлов. Также это отличный шанс для владельцев небольшого количества монет получать небольшую, но стабильную прибыль, просто держа монеты на «долгосроке».
Например, монета Waves работает по алгоритму LPoS.

Delegated Proof-of-Stake
это подвид алгоритма PoS. Суть DPoS состоит в том, что ноды сети методом голосования выбирают узел, который будет генерировать блоки. В этом случае работает правило: чем большим количеством монет обладает нода, тем больший вес имеет ее голос. Правила начисления вознаграждения также определяются также участниками сети. В некоторых сообществах вознаграждение начисляется не только ноде, которой делегировали право генерировать блоки, но и остальным участникам.
Первая монета, в которой был применен алгоритм DPoS — Bitshares. Также он применяется в: EOS, Lisk, Ark, Steem.

Proof-of-Importance
PoI — доказательство важности. Этот алгоритм похож на Proof-of-Stake, однако в нем учитывается не только количество монет на счету, но и другие факторы, такие как репутация ноды (определяется через специальный сервис), количество входящих и исходящих транзакций. Т.е. этот алгоритм дает право генерировать блоки только «полезным» членам сети. На PoI разработаны: NEM, Nebulas

Proof-of-Activity
Доказательство активности. Это гибридный вариант, который создан на основе алгоритмов PoW и PoS. В этом алгоритме блоки PoS параллельно ищутся с блоками PoW, т.е. блокчейн Proof-of-Activity состоит из блоков обоих типов.
Если возникает конфликт в системе, то вес блоков PoW больше, чем блоков PoS, так как в Proof-of-Work практически невозможно осуществить атаку «double-spend», которую теоретически возможно реализовать в Proof-of-Stake. В этом случае форджеры «принимаются за работу» только после того, как произведена работа майнерами. Это создает меры безопасности, которые не позволяют монополистам-холдерам каждый раз получать вознаграждение за генерацию нового блока или совершить атаку 51%. Это помогает сделать работу сети более безопасной и защищенной.

Proof-of-Burn
это доказательство сжигания происходит путем отправки монет на адрес, с которого невозможно их потратить. Например, на адрес, который является хэшем случайного числа, и шансы подобрать к нему соответствующий публичный и приватный ключи ничтожно малы. Избавляясь таким образом от своих монет, пользователь получает право на пожизненный майнинг, который устроен так же, как лотерея среди всех владельцев сожженных монет
По данному алгоритму работает Slimcoin

Proof-of-Capacity
Доказательство емкости. Для возможности создавать блоки необходимо выделить существенный объем своего дискового пространства (место на жестком диске). Для майнинга можно использовать даже самый обычный ПК, главное, чтобы на жестком диске были тысячи (а лучше сотни тысяч) терабайт свободного места, которое будет «забиваться» случайными хешами в надежде на то, что один из них поможет сгенерировать блок. Данный алгоритм применен в монете Burst.

Proof-of-Storage
Доказательство хранения. Схожая с Proof-of-Capacity схема, при которой выделенное место используется всеми участниками как совместное облачное хранилище.

Proof-of-Signature
PoSign — доказательство подписи. Это новый алгоритм, который появился достаточно недавно (в ноябре 2017 года) и еще даже не разработан до конца. Суть его состоит в том, блоки подписываются каждым узлом сети, за что последние получают вознаграждение. Если один из узлов попытается совершить атаку, то он будет исключен из сети без дальнейшего права участвовать в майнинге. На данный момент эта технология применяется в монете XTRABYTES — это первый и пока единственный проект, который работает на основе алгоритма PoSign.

Proof-of-Authority
PoA - доказательство полномочий. создание блоков определяется не вычислительными мощностями, как при POW, и не долей участника, как при POS, а решением валидаторов, чей авторитет призван служить гарантией безопасности всей сети. Строгий подход к выбору валидаторов гарантирует их честность и сводит к минимуму возможность сговора с целью манипулятивных или мошеннических действий. Этот алгоритм позволяет только избранным (изначально определенным нодам) генерировать блоки и устанавливать свои правила в сети. Идеально подходит для приватных блокчейнов: создания частных сетей или государственных криптовалют. В качестве примера можно назвать сеть Kovan. Термин был придуман Гэвином Вудом — соучредителем Ethereum и Parity Technologies.

Proof-of-Brain
Доказательство «мозговой деятельности». Майнинг происходит путем создания качественного контента, который поддерживается другими участниками сети через голосование (лайки и комментарии). Чем больше лайков и комментариев получит узел, создавший контент, тем больше монет он сможет «намайнить». На данной технологии работает сеть Steemit и ее форк Golos.
Алгоритмы консенсуса играют самую важную роль в «жизни» монеты, поскольку определяют ее функционал, эмиссию и общие правила сети. В данный момент на первом месте по популярности находится Proof-of-Work, за ним идет PoS, все чаще встречаются и гибридные алгоритмы. Каждый из алгоритмов имеет свои достоинства и недостатки, но в общем идеальный алгоритм консенсуса должен выполнять две важных задачи:
-Атаки на сеть должны быть максимально затратными и иметь плохие последствия для самого атакующего
-Защита сети должна хорошо вознаграждаться

Zero Knowledge Proof
Zk-snark —Доказательство с нулевым разглашением (информации). В протоколе zk-snark имеют место два участника: доказывающая сторона (прувер) и проверяющая сторона (верификатор). Доказательство нулевого знания — это процесс, в котором прувер убеждает верификатора в том, что он обладает определенными секретными знаниями, не раскрывая их. Использование zk-snark позволяет скрывать то, с какого адреса ушел платеж, куда он пришел, сколько денег было переведено, а также позволяет доказать, что транзакция действительно прошла и на счете получателя находится верная сумма. Для работы протокол должен соответствовать определенным параметрам:

  • Полнота: если утверждение верно, то честный прувер может убедить доказательством честного верификатора.
  • Корректность: если доказывающая сторона лжет, то она не может убедить в корректности проверяющую сторону.
  • Нулевое разглашение: если утверждение истинно, верификатор не может узнать его содержание.
    Понятие 'нулевое разглашение' было впервые предложено в 1980-х специалистами MIT Шафи Голдвассером, Сильвио Микали и Чарльзом Ракофф.
    Zk-snark реализован в криптовалюте Zcash и его форках, а также в развертываемом обновлении Ethereum — Metropolis.