PPCoin: пиринговая платежная система с доказательством доли владения

Аннотация

Метод пиринговой (peer-to-peer) платежной системы взят из Биткойна Сатоши Накамото. «Доказательство доли владения» (proof-of-stake) заменяет «доказательство выполнения работы» (proof-of-work), чтобы обеспечить большую часть сетевой безопасности. В рамках этого гибридного метода, доказательство выполнения работы в основном обеспечивает начальный минтинг (minting – «чеканка» с англ.) и в основном является второстепенным в конечном счете. Уровень сетевой безопасности в перспективе не зависит от энергопотребления, обеспечивая таким образом энергоэффективную и более конкурентоспособную пиринговую платежную систему. Доказательство доли владения основано на возрасте монеты и генерируется каждым узлом (node) с помощью схемы хэширования, схожей со схемой Биткойна, но через ограниченное пространство поиска. История блокчейна и расчеты по транзакциям дополнительно защищены механизмом централизованного распространения информации о контрольных точках цепи блоков.

 

Введение

С момента создания Биткойна (Накамото, 2008 г.), «доказательство выполнения работы» было основным методом пиринговой платежной системы. Концепция доказательства выполнения работы была основой минтинга и модели безопасности, разработанной Накамото.

В октябре 2011 года мы поняли, что концепция «возраста монеты» (coin age) может способствовать созданию альтернативного метода, известного как «доказательство доли владения», по отношению к системе «доказательства выполнения работы» Биткойна. С тех пор мы официально оформили метод, в котором доказательство доли владения используется для построения модели безопасности пиринговой платежной системы и части ее минтингового процесса, тогда как доказательство выполнения работы в основном облегчает начальную часть минтинового процесса и постепенно уменьшает его значимость. С помощью этого метода мы попытались продемонстрировать жизнеспособность будущих пиринговых платежных систем, независимых от потребления энергии. Мы назвали проект ppcoin.

 

Возраст монеты

Концепция «возраста монеты» была известна Накамото как минимум с 2010 года и использовалась в Биткойне, например, чтобы помочь уделить приоритетное внимание транзакциям, хотя она не играла решающую роль в модели безопасности Биткойна. Возраст монеты коротко определяется как период владения валютой. Простой пример, если Боб получил 10 монет от Элис и сохранял их в течение 90 дней, мы говорим, что Боб накопил 900 монето-дней монетного возраста.

Кроме того, когда Боб потратил 10 монет, которые он получил от Элис, мы говорим, что возраст монеты, накопленный Бобом с этими 10 монетами, был использован (или уничтожен).

Чтобы облегчить вычисление возраста монеты, мы ввели поле отметки времени в каждую транзакцию. Протоколы времени блока и времени транзакции укреплены, чтобы обеспечить вычисление возраста монеты.

 

Доказательство доли владения

Доказательство выполнения работы помогло дать жизнь главному прорыву Накамото, однако природа метода доказательства выполнения работы такова, что криптовалюта зависима от потребления энергии, и таким образом вводит значительные накладные расходы на эксплуатацию таких сетей, которые покрываются пользователями через комбинацию инфляции и сборов за транзакцию. Естественно, возникает вопрос, нужно ли поддерживать потребление энергии, чтобы иметь децентрализованную криптовалюту? Таким образом, это важный этап как с точки зрения теории, так и  с технологической точки зрения, чтобы продемонстрировать, что безопасность пиринговых платежных систем не должна зависеть от потребления энергии.

Концепция, именуемая доказательством доли владения, обсуждалась в биткойн-сообществе еще в 2011 году. Грубо говоря, доказательство доли владения — это форма доказательства права собственности на валюту. Возраст монеты, подтвержденный транзакцией, можно считать формой доказательства доли владения. Мы самостоятельно сформулировали концепцию «доказательства доли владения» и концепцию «возраста монеты» в октябре 2011 года, благодаря которым мы поняли, что доказательство доли владения вполне может заменить большинство функций доказательства выполнения работы путем аккуратной модернизации минтинга и модели безопасности Биткойна. Это объясняется главным образом тем, что, как и доказательство выполнения работы, доказательство доли владения не может быть легко подделано. Конечно, это одно из важнейших требований валютных систем — сложность для фальсификации. С философской точки зрения, деньги – это форма «доказательства выполнения работы» в прошлом, таким образом, они должны быть в состоянии заменить собой доказательство выполнения работы.

 

Генерация блоков по доказательству доли владения

В нашем гибридном дизайне блоки разделены на два разных типа, блоки с доказательством доли владения и блоки с доказательством выполнения работы.

Доказательством доли владения в новом типе блоков является специальная транзакция под названием coinstake (названная в честь специальной транзакционной coinbase Биткойна). В транзакции coinstake владелец блока платит сам себе постольку, поскольку «потребляет» возраст монеты, получая привилегию генерировать блок для сети и чеканить в результате доказательства доли владения.

 

Структура транзакции доказательства доли владения (Proof-of-Stake - Coinstake)

Рисунок: Структура транзакции доказательства доли владения (Proof-of-Stake — Coinstake).

 

Первый вход coinstake называется ядром и должен соответствовать определенному протоколу целевого хэша, таким образом, создание блоков доказательств доли владения является случайным процессом, аналогичным блокам доказательства выполнения работы. Однако важным отличием является то, что операция хеширования выполняется в ограниченном пространстве поиска (более конкретно, один хэш на кошелек в секунду) вместо неограниченного пространства поиска, как в доказательстве выполнения работы, поэтому нет значительного потребления энергии.

Цель хэша, которую должно выполнить ядро — это цель на единицу монеты (coin-day), потребляемую в ядре (в отличии от цели доказательства выполнения работы Биткойна, которая представляет собой фиксированным целевым значением для каждого узла). Таким образом, чем больше coin age потребляется в ядре, тем проще получить протокол цели хэша. Например, если у Боба есть кошелек, в котором саккумилировано 100 монето-лет (coin-years), то он сможет сгенерировать хэш через 2 дня, а если Алиса накопила 200 монето-лет, то она может сгенерировать хэш-число примерно за 1 день.

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

 

Чеканка на основании доказательства доли владения

Новый процесс минтинга вводится для блоков доказательства владения в дополнение к минтингу «доказательства работы» Биткойна. Доказательство доли владения чеканит коины на основе потребляемого coin age в транзакции coinstake. Монетный коэффициент в размере 1 цента за каждый монето-год выбран таким образом, чтобы обеспечить низкий уровень инфляции в будущем.

Несмотря на то, что мы сохранили доказательство выполнения работы как часть процесса чеканки, чтобы облегчить первоначальную чеканку, предполагается, что в системе только с доказательством доли владения изначальный минтинг может быть полностью распространен в генезис блоке в результате процесса, аналогичного первоначальному публичному предложению на фондовом рынке (IPO).

 

Протокол основной цепи

Протокол для определения того, какая из конкурирующих цепочек блоков выбирается в качестве основной в цепи, перестроен на использование потребляемого coin age. Здесь каждая транзакция в блоке вносит свой потребляемый coin age в партитуру блока. Цепь блоков с наибольшим общим потреблением возраста монеты выбирается в качестве основной цепи.

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

Эта конструкция устраняет некоторые проблемы, связанные с так называемой «атакой 51%» Биткойна, которая подразумевает, что система считается защищенной только тогда, когда в одних руках не концентрируется больше 51% майнинга. Во-первых, стоимость контроля над значительным пакетом акций может быть выше стоимости приобретения значительной мощности по добыче, что повышает стоимость атаки таких мощных объектов. Также во время атаки потребляется возраст монеты атакующего, что может затруднить предотвращение того, чтобы транзакции не вошли в основную цепочку.

 

Контрольная точка: Защита истории

Один из недостатков использования общего потребленного возраста монеты для определения основной цепи заключается в том, что она снижает стоимость атаки по всей блок-цепочке истории. Несмотря на то, что Биткойн обладает относительно сильной защитой, Накамото все ещё вводил контрольные точки в 2010 году в качестве механизма для укрепления истории цепочек блоков, предотвращая любые возможные изменения в части блочной цепи раньше контрольной точки.

Еще одна проблема заключается в том, что затраты на двухстороннюю атаку также могут быть снижены, так как злоумышленнику может просто потребоваться накопление определенного количества возраста монет и принудительная реорганизовать весь блокчейн. Чтобы избежать подобного, мы решили ввести дополнительную форму контрольных точек, которые транслируются централизованно, в гораздо более короткие промежутки времени, например, несколько раз в день, чтобы замораживать цепочки блоков и завершать транзакции. Этот новый тип контрольной точки транслируется аналогично системе оповещений Биткойна.

Лори (Laurie, 2011) утверждает, что Биткойн не полностью решил проблему распределенного консенсуса, поскольку механизм контрольной проверки не производится. Мы попытались разработать практический распределенный протокол контрольно-пропускных пунктов, но его было трудно защитить от сетевых атак. Хотя механизм контрольной проверки является формой централизации, мы считаем его приемлемым до того момента, как не появится более удачное решение.

Другая техническая причина связана с использованием централизованно распространением контрольных точек. Чтобы защититься от DoS атак, ядро coinstake должно быть проверено до того, как блок доказательства доли владения может быть принят в локальную базу данных (дерево блоков) каждого узла. Из-за модели данных узла Биткойна (индекс транзакции) крайний срок контрольной проверки необходим для обеспечения возможности всех узлов проверять соединение каждого ядра coinstake до принятия блока в дереве блоков. Из-за вышеперечисленных практических соображений мы решили не изменять модель данных узла, а вместо этого использовать центральную контрольную точку. Наше решение состоит в том, чтобы изменить расчет возраста монеты, чтобы потребовать минимальный возраст, например, равный одному месяцу, ниже которого возраст монеты вычисляется как ноль. Затем центральная контрольная точка используется для обеспечения того, чтобы все узлы могли согласовать прошлые транзакции старше одного месяца, таким образом, для проверки соединения ядра coinstake в качестве ядра требуется ненулевой возраст монеты, поэтому она должна использовать вывод более месяца назад.

 

Подписи блоков и протокол дубликата владения

Каждый блок должен быть подписан его владельцем, чтобы предотвратить копирование и использование одного и того же доказательства доли владения злоумышленниками.

Протокол дубликата владения предназначен для защиты от злоумышленников, использующих единое доказательство владения для создания множества блоков для DoS атаки. Каждый узел собирает пару (ядро, временную метку) всех транзакций, которые он видел. Если принятый блок содержит дублируемую пару в качестве еще одного ранее принятого блока, мы игнорируем такой дублированный блок до тех пор, пока блок-преемник не примет отцепленный блок.

 

Энергоэффективность

Когда чеканка доказательства выполнения работы приближается к нулю, остается все меньше и меньше стимулов для чеканки блоков доказательства выполнения работы. В этом долгосрочном сценарии потребление энергии в сети может опуститься до очень низких уровней, так как незаинтересованные майнеры прекращают добычу блоков доказательства выполнения работы. Сеть Bitcoin сталкивается с таким риском, если объем транзакции / плата не повышается до достаточно высоких уровней, чтобы поддерживать потребление энергии. В соответствии с нашим дизайном, даже если потребление энергии приближается к нулю, сеть по-прежнему защищена доказательством доли владения. Мы называем криптовалюту долгосрочно энергоэффективной, если потребление энергии на доказательство работы может приблизиться к нулю.

 

Другие соображения

Мы изменили монетный коэффициент доказательства выполнения работы, который не определяется хейтом блока (временем), а определяется сложностью. Когда сложность майнинга возрастает, ставка валютного паритета снижается. Относительно гладкая кривая выбирается в отличие от ступенчатого движения Биткойна, чтобы избежать искусственного давления на рынок. Конкретнее, непрерывная кривая выбирается таким образом, что каждое из 16-кратного повышения сложности добычи уменьшает количество блочного коэффициента. В более долгосрочной перспективе кривая монетного коэффициента «доказательства выполнения работы» не будет слишком отличаться от кривой Биткойна с точки зрения инфляционного поведения, учитывая Закон Мура. Мы считаем разумным следовать традиционной точки зрения, что рынок больше предпочитает валюту с низкой инфляцией, нежели с высокой, несмотря на серьезную критику Биткойна по идеологическим причинам со стороны некоторых влиятельных экономистов.

Бабайофф (2011) изучил влияние платы за транзакцию и спорил с тем, что комиссия за транзакцию является стимулом для майнеров не сотрудничать друг с другом. В нашей системе конкуренция усугубляется, поскольку мы больше не даем транзакционные сборы владельцу блока. Вместо этого мы решили уничтожить транзакционные сборы вообще. Это устраняет стимул не признавать блоки других майнеров. Это также служит дефляционной силой для противодействия инфляционной силе от чеканки доказательства выполнения работы.

Мы также выбираем принудительное взимание комиссий за транзакции на уровне протокола для защиты от атак.

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

 

Вывод

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

 

Благодарности

Большое спасибо Ричарду Смиту за помощь в тестировании и работе с сетью/форком.

Мы хотели бы поблагодарить разработчиков Satoshi Nakamoto и Bitcoin, чья блестящая новаторская работа повлияла на наши умы и позволила нам создать этот проект.

 

Литература

Бабайофф (2011): О Биткойне и красных шарах.

Лори Б. (2011): Децентрализованные валюты, вероятно, невозможны (но давайте по крайней мере сделаем их эффективными). (http://www.links.org/files/decentralised-currencies.pdf)

Накамото С. (2008): Биткойн: Пиринговая электронная платежная система.

(http://www.bitcoin.org/bitcoin.pdf)

 

Санни Кинг, Скотт Нэдал

(sunnyking9999@gmail.com, scott.nadal@gmail.com)

19 августа, 2012 г.