Proof-of-stake

Материал из BitcoinWiki
(перенаправлено с «PoS»)

Это утверждённая версия страницы. Она же — наиболее свежая версия.
Перейти к: навигация, поиск
Proof-of-stake

Proof-of-stake (PoS, "доказательство владения", "пруф оф стейк") – это метод защиты криптовалюты с помощью запрашивания у пользователей показать собственность определенной суммы валюты. Он отличается от систем proof-of-work, которые используют алгоритмы хеширования для подтверждения электронных транзакций. Он чаще всего используется как дополнение к proof-of-work у Peercoin и некоторых других электронных валют.

Принцип работы[править]

Proof-of-stake должен иметь способ определять следующий действительный блок в любом блокчейне. Выбор по балансу счета в результате привел бы к (нежеланной) централизации, так как единственный самый богатый член имел бы постоянное преимущество. Вместо этого, были разработаны несколько способов отбора.
Случайный выбор блоков Nxt и BlackCoin используют рандомизацию для прогнозирования следующего генератора, используя формулу, которая ищет самую низкое значение хеша в комбинации с размером ставки. Так как ставки публичный, каждый узел может прогнозировать – с оправданной точностью – какой счет следующим выиграет право создать блок.
Выбор коинов по возрасту Система Рroof-of-stake у Peercoin сочетает рандомизацию с концепцией «возраста монет», число, полученное в результате умножения количества монет на число дней, которое монеты были во владении. Монеты, которые не были потрачены, по меньшей мере, в течение 30 дней, начинают соревнование за следующий блок. Более старые и крупные наборы коинов имеют большую вероятность подписания следующего блока. Однако, как только монетная ставка используется для подписания блока, они снова приобретают нулевой «возраст монет» и поэтому, им нужно ждать как минимум еще 30 дней до подписания следующего блока. Также вероятность нахождения следующего блока достигает максимума через 90 дней, чтобы предотвратить очень старые или очень большие наборы ставок от доминирования в блокчейне. Этот процесс защищает сеть и постепенно производит новые монеты со временем, не потребляя значительной вычислительной мощности. Разработчик Peercoin утверждает, что затрудняет вредоносную атаку на сеть благодаря отсутствию потребности централизованных пулов для майнинга – и то, что покупка больше половины монет, вероятно, будет гораздо дороже, чем приобретение 51% мощности хеширования proof-of-work.

Мастерноды[править]

Другой формой ставок является запуск мастерноды. Термин «мастернода» применим к любой криптовалюте, разрешающей децентрализованное использование серверов, которые могут генерировать прибыль владельцу. Главным недостатком мастерноды является часто относительно высокая точка входа, в отличие от однократной ставки. Чтобы защитить сеть, тем, кто хочет запустить мастерноду, требуется купить определенное количество монет в качестве обеспечения, по действующей рыночной цене. Некоторые коины, такие как Dash, PIVX, или Hatch имеют установленную стоимость мастерноды, в то время как другие валюты, такие как Divi, предлагают многоуровневую систему мастернод с разными уровнями увеличения вознаграждения.

Преимущества Proof-of-Stake[править]

Валюты Proof of Stake могут быть более энергоэффективными, чем Proof of Work, по большей части опирающийся на использовании энергии. Стимулы генератора блоков также различаются. У Proof-of-Work генератор может потенциально не владеть ни одной из валют, которую майнят. Стимул майнера – только привести к максимуму свою личную выгоду. Непонятно, снижает ли это или увеличивает риски безопасности. В Proof-of-Stake те, кто «охраняют» монеты, всегда являются теми, кто ими владеет (хотя некоторые криптовалюты разрешают или обеспечивают предоставление мощности ставок в другиеноды).

Недостатки PoS[править]

Некоторые авторы спорят, что proof-of-stake не является идеальным вариантом для распределенного консенсус-протокола. Одну проблему обычно называют проблемой «ничего поставленного», когда (в случае неудачи консенсуса) генераторам нечего терять, голосуя за множественные истории блокчейна, что препятствует разрешению консенсуса. Так как требуется мало затрат при работе в нескольких цепях (в отличие от систем proof-of-work), любой может злоупотребить данной проблемой, чтобы попытаться потратить дважды (в случае реорганизации блокчейна) «бесплатно». Многие попытались решить эти проблемы:

  • Предложенный Ethereum протокол Slasher разрешает пользователям «наказывать» обманщика, который форжит на вершине более одной ветви блокчейна. Это предложение предполагает, что вы должны подписаться дважды, чтобы создать форк, и что вы будете наказаны, если создадите форк, не имея ставки. Однако, Slasher никогда не был принят; разработчики Эфириума заключили, что proof-of-stake «нетривиален». Вместо пруф оф стейк эфира, Ethereum разработал алгоритм proof-of-work, названный Ethash. Им планируется заменить другим протоколом PoS, который называется Casper.
  • Peercoin на ранних этапах централизованно использовал контрольные трансляционные пункты (подписанные личным ключом разработчика).Никакая реорганизация блокчейна глубже, чем последние известные контрольные пункты, не была разрешена. Контрольные пункты сейчас в подписке согласно v0.6 и не применяются теперь, когда сеть достигла подходящего уровня распространения.
  • Протокол Nxt позволяет реорганизацию только последних 720-ти блоков. Однако, это только меняет масштаб проблемы: клиент может следовать форку из 721 блока, независимо от того, является ли это самым высоким блокчейном, предупреждающим консенсус.
  • Гибрид «Доказательства сгорания» ("Proof of burn") и proof of stake. Блоки Proof of burn выступают в качестве контрольных пунктов, не содержат транзакций, более безопасны и привязываются друг к другу и цепи PoS, но являются более дорогими.
  • Гибрид proof-of-work и proof-of-stake от Decred's. Proof-of-stake как расширение зависит от формирования временных меток proof-of-work, основываясь на предложении «доказательства активности», что нацелено на решение проблемы «ничего поставленного», если майнеры proof-of-work будут майнить блоки, а proof-of-stake выступать как второй механизм аутентификации.

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

Майнинг PoS[править]

Как же работает пруф оф стейк майнинг в протоколе Proof-of-Stake?

  1. Блок, достигающий рабочей цели сложности, майнится. Цель сложности периодически корректируется, чтобы 1 блок PoW появлялся каждые 10 минут.
  2. Рабочее представление хешируется 10 раз подряд. Каждый последующий хеш отображается на индивидуальном не потраченном объеме в блокчейне. На самом деле, это лотерея с двумя наборами из пяти победителей. Первые пять хешей относятся к обязательным подписям, остальные пять – к добровольным.
  3. Если обязательные подписи относятся к активным открытым ключам , блок может потенциально считаться действительным. В противном случае, блок недействителен и должен быть сброшен.
  4. Если майнер PoW находит потенциально действительный блок, он отправляет следующий хеш в сеть. Если рабочее представление достигает цель сложности и относится к активным сторонам, то блок передается через сеть. В противном случае, сообщение помечается как спам.
  5. Первые пять выбранных сторон последовательно подписывают этот хеш и отправляют его дальше.
  6. После того, как последовательность обязательной подписи завершена, последняя сторона публикует блок PoW, а также свой собственный блок PoS.
  7. Последние пять хешей относятся к добровольным подписям. Эти добровольные подписи могут быть вставлены в любой блок среди следующих 6 блоков как особые txn. Они не требуют оплаты.
  8. Переход к шагу 1

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

Недопустимость стандартных векторов атаки[править]

Пока злоумышленники не владеют большей долей ставки, все типы атак PoW являются вычислительно неосуществимыми. Есть два типа известных атак: 1) двойная трата 2) Отказ в обслуживании. Рассмотрим приблизительные представления ниже. Числа настолько благоприятны, что рассмотрение точной статистики не особенно интересно.

  • Двойная трата.
Двойные траты опираются на секретность. Чтобы майнить блоки секретно, майнер PoW должен выбрать 5 из своих открытых ключей в лотерее. Если майнер PoW владеет долей 0<s<1 всех монет, вероятность того, что блок, достигающий цели сложности, выберет монеты майнера - (1/s)^5. Для s=0.01,  из 10 миллиардов блоков будет удовлетворять данному критерию. Даже для крайне малых значений совокупности хешей, непрактично в частном порядке майнить в десять миллиардов раз быстрее, чем все остальные майнеры вместе. Для For s=0.1, 1 из 100,000 блоков будут удовлетворять данному критерию (то есть, атака требует приблизительно 99.999% всей мощности хеширования). Для s=0.5, злоумышленник будет иметь успех, если будет контролировать 51% значений совокупности хешей.
  • Отказ в обслуживании

Злоумышленник, который майнит открыто, может просто производить пустые блоки PoW. Однако, это может быть не в состоянии отказать в обслуживании. 50% всех блоков в случайном порядке майнятся через PoS. Злоумышленник не может заставить майнеров PoS создавать пустые блоки. Поэтому, он не может отказать в обслуживании, независимо от того, какое значение хеша он контролирует.

Долгосрочная оценка сети[править]

  1. Сравнение двух длинных цепочек основывается на простой сумме сложности блока, так же как у Биткоин.
  2. Критика PoS в том, что нет причины не подписать атакующие цепочки. Однако, в длинной скрытой цепи, многие вовлеченные стороны будут иметь мертвые подписи. Эти мертвые стороны не смогут подписать главную цепочку, но не атакующую цепь. У них будет сильный стимул убедиться, что главная цепь выиграет, так как атакующая цепочка наложит на них неустойку.

Стимул для поддержки полных нод[править]

Эта система представляет мощные стимулы поддерживать полные ноды. Многие спорят, что недостаток стимула поддерживать полную ноду является проблемой в системе Биткоин.

  1. Постоянный поток txn будет создавать списания, даже если все открытые ключи будут оставаться активными. Активные ключи должны быть поддерживающими полные ноды. В противном случае они не смогут предоставить добровольные подписи, доказывающие их активность. Даже очень слабые стимулы в данном случае достаточны. Если почти все ключи связаны с активными узлами, не нужно мотивировать дополнительное участие.
  2. Некоторые открытые ключи могут решить стать неактивными. Для них это затратно. Они понесут потерю в размере 5% от годового баланса, пока будут оставаться неактивными.
  3. Активные открытые ключи постоянно перехватывают доход от неактивных ключей. Это значит, что стимулы оставаться резко повышаются, так как участие понижается. Представим, что 50% открытых ключей поддерживают полные ноды, тогда эти 50% заберут 2.5% коинов в год. Эта сумма равна годовой потере в 2.0%. Альтернатива этому – отсутствие активности – приносит годовую потерю в 5.9%, как обсуждалось в п.2. Это можно считать разумным уровнем стимула и уровнем участия. Предположим, что это неверно, и только 10% от открытых ключей поддерживают полные ноды. Тогда эти 10% заберут 4.5% всех сохранившихся монет в год. Это подразумевает годовой возврат за участие, равный 45% в год. Это очень сильный стимул, и почти наверняка будет достаточен, если даже поддерживать ноды довольно затратно. Если только 1% монет участвуют, 4.95% от всех сохранившихся монет будут распределены в этот 1% ежегодно. Это подразумевает недельный возврат за участие 3%, уровень пиратской финансовой пирамиды. Если эти стимулы недостаточны для поддержания здоровой сети полных нод (что кажется невероятным), тогда сбор мертвых монет будет повышен, чтобы достигать 5% в год.
  4. У многих не будет достаточно монет, чтобы подтвердить запуск своего узла. Такие лица вероятно будут использовать службу онлайн-банкинга, которая может сохранить их ключ с ограниченными тратами. Сервис может возвращать проценты пользователям в обмен на управление их ключами.
  5. Другие частные лица предпочтут конфиденциальность, связанную с отказом от участия. Этим лицам все еще будет можно пользоваться сетью, но им придется столкнуться с налогом на благосостояния 5% в год, чтобы компенсировать риск безопасности, создаваемый их поведением.

Получающие и теряющие выгоду от сборов txn[править]

Общая сумма неустойки, собираемая ежегодно, колеблется между 0% и 5% от общей финансовой массы. Самой обременительной комиссией в системе является комиссия, которая платится майнерам PoW. Этот сбор налагает неустойку от 0% до 0.1% в год на всех пользователей системы. В дополнение к неустойке, майнеры PoW получают 2% от доли любых дополнительных комиссий, оплачиваемых за доступ к ограниченному пространству блоков. Все владельцы коинов являются несущими убытки в результате комиссий за майнинг PoW. Чтобы сократить затраты для владельцев монет, комиссионные платежи PoW сохраняются насколько возможно низкими. Так как высокие значения хеша играют лишь крошечную роль в безопасности, высокие комиссии для майнеров PoW не являются необходимыми. Другие неустойки – это переводы дохода от одного закрытого ключа к другому. Некоторые ключи являются получающими выгоду за эти переводы, в то время как другие ключи теряют выгоду. Совместно данные сборы не делают владельцев монет лучше или хуже. Их эффект нейтрален. Однако, в частном порядке, эти сборы создают победителей и проигравших. Активных пользователей, которые редко получают прибыль от системы. Активный пользователь со средней частотой трат вероятнее всего также будет получать прибыль от системы, но только в небольшой сумме. Активный пользователь, который совершает траты очень часто, вероятно понесет убыток в системе. Мертвые пользователи безусловно понесут убыток в системе. Этот убыток служит наказанием за неуспех в поддержке активной ноды.

Использование в Peercoin[править]

Система Proof-of-stake Peercoin основана вокруг концепции «возраста монет», меру производной суммы валюты, умноженной на количество времени, которое ей владели. Создавая блок proof-of-stake, пользователи отправляют деньги сами себе, уничтожая возраст монеты в обмен на заданное вознаграждение. Эта сфабрикованная транзакция получает большую вероятность успеха со временем, пока не найден действительный блок, создавая новый блок в блокчейне и выплату для проверяющего пользователя. Этот процесс защищает сеть и постепенно производит новые монеты со временем, не потребляя ощутимой вычислительной мощности. И блокиproof-of-work, и блоки proof-of-stake используются в Peercoin, хотя главный блокчейн определяется самым высоким общим возрастом потребленных монет (из генерирования proof-of-stake) вместо общей сложности цепочки (определяемой блоками proof-of-work, как у Биткоин). Разработчик Peercoin утверждает, что это делает вредоносную атаку на сеть сложнее.


См. также на BitcoinWiki[править]

Ссылки[править]

https://en.bitcoin.it/wiki/Proof_of_Stake
https://en.wikipedia.org/wiki/Proof-of-stake
http://www.peercoin.net/assets/paper/peercoin-paper.pdf
http://www.blackcoin.co/blackcoin-pos-protocol-v2-whitepaper.pdf
https://wiki.nxtcrypto.org/wiki/Whitepaper
http://www.coindesk.com/carbon-footprint-bitcoin/
https://en.wikipedia.org/wiki/Proof-of-stake
http://cfa-consulting.ch/dlfiles/NxtEnergyandCostEfficiencyAnalysis.pdf
http://www.docdroid.net/file/view/e29h/forging0-5-1.pdf
https://www.scribd.com/doc/248208963/Multibranch-forging
https://github.com/ConsensusResearch/articles-papers/raw/master/multistrategy/multistrategy.pdf
https://blog.ethereum.org/2014/07/05/stake/