Доказательство доли владения
Доказательство доли владения, Proof-of-stake (PoS) (от англ. proof of stake, дословно: «подтверждение доли») — метод защиты в криптовалютах, при котором вероятность формирования участником очередного блока в блокчейне пропорциональна доле, которую составляют принадлежащие этому участнику расчётные единицы данной криптовалюты от их общего количества. Данный метод является альтернативой методу подтверждения выполнения работы (PoW), при котором вероятность создания очередного блока выше у обладателя более мощного оборудования.
При использовании этого метода алгоритм формирования блока не зависит от мощности оборудования, но с большей вероятностью блок будет сформирован той учётной записью, у которой текущий баланс больше. Например, участник, владеющий 1 % от суммарного количества, в среднем будет генерировать 1 % новых блоков.
Впервые идея Proof-of-stake была предложена на форуме «Bitcointalk»[1] в 2011 году. Первая реализация протокола PoS была представлена в 2012 году в криптовалюте PPCoin(в настоящее время PeerCoin)[2]. На практике часто встречаются смешанные варианты формирования новых блоков. Например, оба метода PoW и PoS используются в криптовалютах EmerCoin, NovaCoin, YaCoin. В криптовалютах PeerCoin и Reddcoin метод PoW используется для первоначального распределения, а PoS — для подтверждения транзакций. В криптоплатформе Nxt и BlackCoin метод PoS используется на всех этапах[3].
Идея
Метод Proof-of-stake был предложен в качестве альтернативы Proof-of-work, чтобы решить проблемы, связанные с последним. При инициализации транзакции в криптосистеме, построенной на PoW, данные помещаются в блок с максимальной емкостью 1 мегабайт, а затем дублируются на нескольких компьютерах или узлах в сети. Далее узлы проверяют законность транзакций в каждом блоке, для чего им нужно решить сложную вычислительную задачу. Первый участник, который решает задачу для каждой транзакции в блоке, получает вознаграждение в виде криптовалюты. После проверки, блок добавляется в прозрачный блокчейн. Для решения этих вычислительных задач требуется большая вычислительная мощность, что приводит к большим тратам электроэнергии. На данном этапе выявляется один из главных недостатков proof-of-work: чтобы оплатить счета за электричество, майнеры выводили свою криптовалюту из системы. Это приводило к понижению цены криптовалюты. Идея PoS заключалается в решении этой проблемы. Вместо вычислительных мощностей участников, имеет значение количество криптовалюты, находящейся у них на счету. Так, вместо использования большого количества электроэнергии для решения задачи PoW, у майнера PoS ограничен процент возможных проверок транзакций, в соответствии с количеством криптовалюты, находящейся у него. Например, майнер, владеющий 3 % доступной криптовалюты в системе, теоретически может генерировать не больше 3 % блоков.[4]
Доказательство важности
Одним из вариантов комбинированного применения технологии PoS является «Доказательство важности» (Proof-of-importance, PoI) — алгоритм, использующийся в криптовалюте NEM. На вероятность получить право сформировать блок влияют три компонента:
- количество единиц криптовалюты на балансе (значимыми для PoI являются балансы более, чем оговоренное число единиц, например, не менее 10 тыс. для NEM);
- активность аккаунта (число транзакций);
- время нахождения аккаунта в сети.
С ростом баланса влияние параметров изменяется — с ростом количества единиц криптовалюты на балансе увеличивается влияние 1-го параметра, и снижается влияние 2-го и 3-го параметров (PoI работает почти как PoS). Чем меньше баланс, тем сильнее влияние 2-го и 3-го параметров.
Если суммарный объём эмиссии криптовалюты ограничен, то минимальные требования к 1-му параметру формируют максимальное количество претендентов на создание блока.
Преимущества
Общие положения
- Нет необходимости потреблять большое количество электроэнергии для защиты блокчейна. Например, Bitcoin и Ethereum вместе тратят более 1 миллиона долларов, в пересчете на электроэнергию, в день в рамках своих консенсусных механизмов.
- Из-за отсутствия необходимости потреблять большое количество энергии, снижаются траты участников. Следовательно, нет необходимости повышать количество единиц валюты для мотивации участников.
- Proof-of-stake позволяет использовать алгоритмы теории игр, чтобы эффективно противодействовать централизации[5].
Защита от атак
Аргументы, считающиеся преимуществом метода доказательства доли владения[6]:
- Для обеспечения двойного расходования (атака Double-spending) требуется сконцентрировать у себя более 50 % от общего количества данной криптовалюты. На практике, даже владение 90 % не даёт гарантии успеха, так как атака будет очень дорого стоить.
- Если у атакующего найдётся много средств, он сам пострадает от атаки, поскольку сам факт большой концентрации нарушит устойчивость криптовалюты.
Недостатки
Аргументы, вызывающие опасения[7]:
- Доказательство доли владения даёт дополнительную мотивацию к накапливанию средств в одних руках, что может приводить к централизации сети[8].
- Если образуется небольшая группа, которая сконцентрирует у себя достаточно большие средства, она сможет навязывать свои условия функционирования криптовалюты, с которыми будут несогласны большинство миноритариев, которые не контролируют форжинг.
Реализации
Peercoin
Peercoin— система, основанная на «чистом» proof-of-stake, в том смысле, что PoW используется только для начального распределения денежной массы.
Генерация блоков
Участники сети Peercoin имеют возможность создать блок исходя из следующего условия[9]:
— текущее время, в данном неравенстве ограничивает попытки хэширования и блокирует создание следующего блока.
— результат транзакции.
— количество неизрасходованной криптовалюты транзакции.
Если у заинтересованной стороны есть ключ, контролирующий , то она может сгенерировать блок, используя ключ в качестве подписи. Подпись, в данном случае, будет служить доказательством выполнения условия. Например, участник, владеющий 50 единицами криптовалюты, создаст новый блок с вероятностью в 10 раз большей, чем участник, владеющий 5 единицами.
— время, прошедшее с момента включения в блок результата транзакции . Вероятность сгенерировать следующий блок, сразу после генерации предыдущего очень мала, но она увеличивается со временем. Это позволяет избежать экспоненциального распределения между выплатами, повышая шансы участников, обладающих небольшим количеством криптовалюты.
— данные предыдущего блока.
Участник, владеющий значительной частью всей криптовалюты системы, имеет возможность генерировать значительную часть блоков, так как вероятность генерации блока пропорциональна количеству монет, находящихся у него на счету. Поэтому, время от времени, заинтересованная сторона имеет возможность генерировать цепочки последовательных блоков.
— постоянная, которая корректируется так, что блоки генерируются в среднем каждые 10 минут.
CoA
CoA[10] (chains of activity) частично базируется на основном элементе proof-of-activity, например на лотерее между активными участниками через процедуру follow-the-satoshi (satoshi[11] — наименьшая единица криптовалюты, например, для биткойна она равна 0.00000001 BTC).
Follow-the-satoshi
Алгоритм, получающий на вход коэффициент satoshi между нулем и общим числом satoshi в обращении. Далее запрашивает блок, в котором этот satoshi был произведен и отслеживает транзакции, через которые он прошел до тех пор, пока не найдет участника, способного в данный момент потратить его. Например, если у Алисы есть 6 satoshi, а у Боба 2, то вероятность того, что Алиса будет выбрана следующим владельцем какого-либо satoshi в 3 раза выше чем вероятность победы Боба[12] .
Параметры протокола
- Количество произведенных единиц криптовалюты k
- Мощность подгруппы
- Мощность группы
- Минимальное время между генерацией блоков
- Минимальная доля владения
- Награда :
Создание блоков CoA составляет блокчейн, состоящий из групп по последовательных блоков[13]:
Правила протокола
Правила протокола chains of activity[14]:
- Каждый новый блок генерируется одним участником
- Каждый новый блок связан с первым битом хэша
- Временной промежуток между двумя блоками и должен быть не меньше . Это значит, что, если следующие 4 блока созданы участниками , то временной промежуток между и должен быть не меньше
- После того, как группа из блоков создана, узлы сети формируют -битовое начальное состояние (англ. seed) , где — входные значения
- Далее начальное состояние (англ. seed) используется для получения последовательности тождеств, использующихся для определения следующих владельцев через алгоритм follow-the-satoshi.
- Если полученный satoshi не израсходован, то владелец обязан предоставить дополнительную подпись, доказывающую владение хотя бы единицами криптовалюты, иначе участник не сможет сгенерировать новый блок.
Dense-CoA
Dense-CoA[15] — альтернативная реализация CoA, в которой участники, генерирующие следующие блоки в цепи, заранее неизвестны. В CoA генерация блока осуществляется одним участником, а в Dense-CoA каждый блок создается группой из участников:
Пусть — необратимая функция. Пусть блок связан с начальным состоянием (англ. seed) , сформированным группой из участников, генерировавших данный блок. Участник , решающий, какие транзакции войдут в следующий блок , определяется с помощью алгоритма follow-the-satoshi с хэш-функцией в качестве входного значения. Оставшиеся участники определяются тем же алгоритмом, но в качестве входного значения используется , где .
Далее, выбранные принимают участие в процедуре генерации блока , которая состоит из двух этапов:
- Каждый участник , где , выбирает случайное секретное значение из
- Каждый участник подписывает сообщение и выкладывает свою подпись и прообраз в сеть.
Начальное распределение криптовалюты
Подтверждение выполнения работы
Для криптовалюты, не использующей proof-of-work, существует один простой способ распределения денег между участниками — проведение IPO или аукциона. Однако, в таком случае, подразумевается, что изначально вся валюта контролируется одной стороной, что усложняет процесс децентрализации. Во многих криптосистемах, использующих proof-of-stake эта проблема решается посредством использования PoW для первоначальной генерации криптовалюты, которая будет циркулировать в системе в дальнейшем. Таким образом, первоначальная стоимость единиц криптовалюты определяется стоимостью их производства[16].
Proof-of-burn
Деньги отправляются на адрес, являющийся хешем случайного числа, с этого адреса их гарантированно нельзя потратить, так как вероятность подобрать ключи к нему стремится к нулю. Взамен майнер получает постоянный шанс найти PoB блок и получить за него награду. Майнинг в данном случае устроен так, что шансы на успех зависят от количества сожженных монет. Проводя аналогии, сжигание- это как невозвратный POS депозит или инвестиции в виртуальное железо для POW майнинга. С экономической точки зрения данный алгоритм лучше подходит для поздних этапов развития криптовалюты, когда уже сгенерирована большая часть денежной массы
Критика
Некоторые авторы утверждают, что доказательство PoS не является идеальным вариантом для распределенного консенсусного протокола. Одна из проблем, называемая «ничего на кону», где (в случае консенсусной ошибки) генераторам блоков нечего терять, голосуя за несколько ветвей цепочек, что не позволяет консенсусу когда-либо установиться. Поскольку формирование цепочки требует небольших затрат ресурсов (в отличие от PoW систем), любой может злоупотребить проблемой с попыткой совершить двойную трату средств «бесплатно».
На практике проекты решали эту проблему разными путями:
- Протокол Slasher, предлагаемый Ethereum, позволяет пользователям «наказывать» мошенников, которые работают в конце более, чем одной ветви цепочки[17]. Такое предполагает, что вы должны дважды подписать создание новой ветви цепочки, и что вы можете быть наказаны, если создадите ответвление без подтверждения доли. Однако протокол Slasher так и не был принят. Разработчики Ethereum пришли к выводу, что доказательства доли в этом случае нетривиальны[18]. Вместо этого Ethereum был разработан протокол Ethash, использующий PoW[19][20].
- Peercoin использует подписанные приватным ключом разработчика контрольные точки. Благодаря этому нет возможности переорганизации цепочки блоков ранее последней контрольной точки. В данном случае компромисс заключается в том, что разработчик Peercoin является центральным органом, управляющим цепочкой блоков.
- Протокол Nxt позволяет реорганизовать последние 720 блоков. Тем не менее, это только искажает проблему: клиент может следовать за вилкой из 721 блока, независимо от того, является ли она самой длинной цепочкой, предотвращая консенсус.
- Гибридный алгоритм PoS и PoW протокола Decred. В этом случае используется подтверждение доли, зависимое от метки времени алгоритма PoW, которое предложено назвать «Proof-of-Activity» (Доказательство деятельности), где проблема доказательства решается наличием второго доказательного механизма — PoW[21].
Примечания
- ↑ Доказательство доли или доказательство работы . 11.06.2011 (англ.) bitcointalk.org. Дата обращения: 1 сентября 2014.
- ↑ Proof of Stake . ноябрь 2012 (англ.) en.bitcoin.it. Дата обращения: 1 сентября 2014.
- ↑ Karl Whelan. Рассуждения на тему методов защиты криптовалют . 11.06.2011 (англ.) forbes.com (20 ноября 2013). Дата обращения: 1 сентября 2014.
- ↑ Proof of Stake (PoS) Definition (англ.) investopedia.com .
- ↑ Proof of Stake FAQ... (рус.) github.com/ethereum .
- ↑ Новые веяния в криптовалютах... (рус.) habrahabr.ru. Дата обращения: 1 сентября 2014.
- ↑ Proof of Stake . ноябрь 2012 (англ.) en.bitcoin.it. Дата обращения: 1 сентября 2014.
- ↑ Andrew Poelstra. Децентрализованный консенсус в Proof-of-stake невозможен. (англ.). wpsoftware.net (28 мая 2014). Дата обращения: 23 сентября 2014.
- ↑ Cryptocurrencies Without Proof of Work .
- ↑ Cryptocurrencies without Proof of Work .
- ↑ Satoshi .
- ↑ Cryptocurrencies without Proof of Work .
- ↑ Cryptocurrencies Without Proof of Work .
- ↑ Cryptocurrencies Without Proof of Work .
- ↑ Cryptocurrencies Without Proof of Work .
- ↑ Cryptocurrencies Without Proof of Work .
- ↑ Slasher: A Punitive Proof-of-Stake Algorithm . Ethereum Blog (15 января 2014). Дата обращения: 11 августа 2017.
- ↑ Slasher Ghost, and Other Developments in Proof of Stake . Ethereum Blog (3 октября 2014). Дата обращения: 11 августа 2017.
- ↑ Proof-of-stake (англ.) // Wikipedia. — 2017-08-07.
- ↑ Wood, Gavin Ethereum: A Secure Decentralised Generalised Transaction Ledger . — «Ethash is the planned PoW algorithm for Ethereum 1.0». Дата обращения: 23 января 2016.
- ↑ Bentov I., Gabizon A., Mizrahi A. Cryptocurrencies without Proof of Work. // arXiv Cryptography and Security.. — 2015.