Транзакции как доказательство доли

Redirect to Stop


Даниэль Лаример
dlarimer@invictus-innovations.com
28 ноября 2013

Введение

Протокол доказательства доли Proof-of-Stake, основывается на концепции, подразумевающей, что безопасность цепочки блоков должна обеспечиваться теми, кто имеет в существовании данной цепи финансовую заинтересованность. В данной статье будет продемонстрирован новый подход к протоколу Proof-of-Stake, в котором разрушение монета-дней в каждой транзакции заменяет подавляющее большинство предоставляемых в рамках протокола доказательства работы Proof-of-Work аспектов защиты сети. В отличие от предшествующих систем Proof-of-Stake, в которых только определённое количество узлов участвовали в расчётах в рамках алгоритма POS, мы представим новое видение функционирования протокола доказательства доли, при котором все узлы сети, совершающие транзакции, будут участвовать в обеспечении безопасности системы. Мы полагаем, что такая сеть будет обладать иммунитетом к тем типам атак, которые могут быть применены против систем Bitcoin или Peercoin.

История создания

Концепция доказательства доли Proof-of-Stake, была впервые представлена в качестве средства для борьбы с известными слабостями в сети Bitcoin, в первую очередь с возможностью атаки 51%.

Существующие системы Proof-of-Stake, такие как Peercoin, основаны на «контрольных блоках», где цель, которую преследует майнер, находится в обратной зависимости от уничтоженных монета-дней. Кто-либо из владельцев Peercoin обязан стать майнером в рамках протокола Proof-of-Stake и жертвовать часть своих монет в течение определённого времени, чтобы обеспечивать безопасность сети.

Создатели Peercoin признали, что алгоритма доказательства доли Proof-of-Stake для обеспечения безопасности в таком виде было недостаточно, поэтому они сделали ставку на гибридную систему, при которой оба алгоритма: и доказательства работы POW, и доказательства доли POS используются для защиты сети. Увеличение сложности добычи в рамках работы алгоритма Proof-of-Work происходит синхронно со снижением вознаграждения за блок, что должно автоматически приводить к уменьшению количества майнеров.

Несмотря на использование протокола доказательства доли Proof-of-Stake, Peercoin-прежнему полагается на опцию «майнинга» в рамках POS, что по своей сути ограничивает количество людей, и процент денежной массы доступной для защиты сети с помощью алгоритма доказательства доли Proof-of-Stake. Стимулом для майнеров в рамках протокола Pproof-of-Stake является, в среднем, прибыль равная 1% от их ставки. Эта прибыль в настоящее время ещё и размыта 8% инфляции, в рамках выплат майнерам под Proof-of-Work.

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

Несмотря на успех Peercoin, его вариант применения протокола доказательства доли Proof-of-Stake не может в полной мере решить проблему двойных расходов или отказа системы. В конечном счете, сеть всё равно находится под защитой протокола доказательства работы Proof-of-Work и в её рамках по-прежнему добывать тайные альтернативные цепочки блоков, которые могут быть использованы для двойной траты «double spend» в рамках атаки. Сильный игрок, такой как, например, правительство, в состоянии приобрести достаточные вычислительные мощности, чтобы забрать более 51% блоков под алгоритмом доказательства доли POS и все блоки в цепи доказательства работы POW. Сеть Peercoin достигла лишь повышения суммы затрат, необходимых для осуществления атаки системы, но оставила без изменения недочёты, в результате использования которых сеть и может быть атакована.

Цель майнинга (форжинга)

Большинство источников о криптовалютах и майнинге, в первую очередь сосредоточены на вопросах распределения монет и защиты сети от монопольной добычи. Награда за майнинг считается необратимой издержкой, платой за «безопасность» и рассматривается в рамках общепринятого представления, что чем больше майнеров, тем лучше. Существующие системы доказательства доли Proof-of-Stake переняли этот менталитет и платят людям, которые теперь «майнят» на основе протокола POS.

В рамках проблем, затрагиваемых в данной статье, мы хотели бы сосредоточиться на самой важной роли, которую играет майнинг и которая совершенно не связана с безопасностью или созданием валюты. Эта роль заключается в определении заявителя блока в децентрализованном порядке. Чистый алгоритм доказательства доли Proof-of-Stake должен определить, какой из тысяч компьютеров создаст и опубликует следующий блок. Эти блоки должны появляться через регулярные промежутки времени, достаточно протяжённые для того, чтобы сеть смогла прийти к согласованию между каждым блоком.

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

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

Как алгоритм доказательства работы Proof-of-Work обеспечивает безопасность

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

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

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

Если мы хотим заменить алгоритм доказательства работы Proof-of-Work, тогда эта замена должна позволить предотвратить производство поддельных цепочек блоков. Давайте взглянем на ключевую особенность, позволяющую использовать вычислительные мощности для производства фальшивых цепей блоков. Успешность проведения двух видов атак: нападения, имеющего целью совершать двойные траты, и атаки позволяющей производить майнинг в эгоистических интересах группы лиц, зависят от возможности нападающих произвести тайную альтернативную цепочку блоков, которая будет длиннее общественной цепи. Всё что требуется для предотвращения подобных нападений – это сделать невозможным производство тайной цепочки блоков без обладания 50% от общих финансовых активов сети.

Третий вид атак, приводящий к отказу работы сети, не требует создания секретной цепочки блоков. Для предотвращения этих атак, выбор самой длинной цепочки блоков должен производиться на других условиях, нежели это происходит во время работы под протоколом доказательства работы Proof-of-Work.

Транзакции как доказательство доли в алгоритме Proof-of-Stake

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

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

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

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

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

Относительная безопасность алгоритма доказательства работы Proof-of-Work сети Bitcoin против алгоритма доказательства доли Proof-of-Stake

По состоянию на ноябрь 2013 года, Bitcoin оценивался примерно в $1000 за монету, с общей рыночной капитализацией системы, равной 12 миллиардам долларов. Каждый блок даёт майнеру 25 BTC, общей стоимостью $25000 и эффективный рынок будет приближать затраты на добычу блока к $25000. Для того, чтобы злоумышленнику удалось провести атаку двойной траты брутом, он должен быть в состоянии произвести 7 блоков в тайне, в то время как остальная часть сети произведёт 6 блоков. Это составит затраты в $175,000 на оплату электроэнергии, потребляемой в течение 60 минут, плюс одноразовое капиталовложение на вычислительное оборудование, которое потребит такое огромное количество электроэнергии. После того, как столица захвачена, сеть эффективно скомпрометирована, и злоумышленник может вредить сети постоянно.

В системе, работающей под протоколом доказательства доли POS, стоимостью 12 млрд. долларов и производящей 50 000 блоков в год с требованием перемещения всех средств по меньшей мере один раз в год, на уничтожение пропорционального количество монета-дней будет затрачиваться в среднем $240,000 на блок. В среднем, злоумышленнику придется накопить достаточно монето-дней, чтобы создать тайную цепочку блоков, которая разрушила монета-дней на сумму в $1,680,000 то есть из более 7 блоков. После того, как атака была завершена, злоумышленник должен будет ждать еще один год, прежде чем он сможет использовать свой капитал в 1,68 млн долларов повторно, чтобы попытаться произвести вторую атаку.

Сравнение в стоимости атаки таких двух сетей зависит от цены покупки и настройки количества чипов ASIC, достаточного для потребления электричества на сумму в 175,000 долларов, учитывая тот факт, что чипы возможно будет использовать и далее, что может принести значительную добавочную прибыль, которая более чем компенсирует затраты.

Еще один фактор, влияющий на безопасность системы, работающей под протоколом доказательства работы Proof-of-Work, заключается в постоянно снижающейся награде за блок. Когда это происходит, соответственно падает и сумма, затрачиваемая на поддержание безопасности сети. Например, если предположить, что стоимость Bitcoin останется на нынешнем уровне, к тому времени, когда награда за блок упадёт в два раза, то же самое случится и с безопасностью системы. Стоимость сети должна возрасти в два раза, до $24 млрд., чтобы обеспечить тот же уровень защиты сети после увеличения сложности.

При работе по алгоритму доказательства доли Proof-of-Stake, безопасность сети увеличивается вместе с увеличением стоимости сети. Из этого видно, что в долгосрочной перспективе, протокол Proof-of-Stake способен обеспечить на порядок большую безопасность, чем протокол Proof-of-Work. Bitcoin тратит более 1.4 млрд. ежегодно на поддержание безопасности в рамках алгоритма доказательство работы POW. Эти средства уходят напрямую сетям электроснабжения и не предоставляют никаких дополнительных выгод обществу.

Тем временем алгоритм Proof-of-Stake способен предоставить большую защиту совершенно бесплатно.

Случай атаки двойной траты «double spend»

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

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

В отличие от систем под протоколом доказательства работы Proof-of-Work, в сети POS пара честных узлов, принадлежащих крупным владельцам, может играть роль стражников всей сети. Если они увидят попытку проведения атаки двойной траты, они могут использовать собственные фонды и остановить нападение за считанные минуты. В случае с протоколом доказательства работы POW, честные узлы уже отдают сети все, что они имеют, и у них нет возможности отражать заведомо мошеннические действия по двойным тратам.

Большие развилки цепей являются необычным явлением, особенно если они появляются в отсутствии сбоев в работе инфраструктуры сети. Как результат, наиболее активные и полностью подсоединённые узлы не обязаны автоматически переключаться на самые длинные цепи протокола POS, пока одна из цепей не стала ощутимо больше. Попытка двойной траты будет зафиксирована, опубликована, а её цепочка, скорее всего, проигнорирована подавляющим большинством пользователей.

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

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

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

Сочетание знания своей клиентуры и увеличение времени ожидания для крупных сделок позволяет снизить потенциал проведения успешной атаки с двойной тратой практически до 0.

Сделки в оффлайн

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

Перенос сделок из меньших цепочек

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

Единственные транзакции, которые не будут заверены, относятся к сделкам, опирающимся на монетообразующую транзакцию из меньшей цепочки блоков. По этой причине в сети Bitcoin монетообразующие транзакции обязаны созревать на протяжении 120 блоков, перед тем, как средства с них могут быть использованы.
На практике редко встречаются развилочные цепочки из более чем считанного количества блоков. С точки зрения практики использования, 6 подтверждающих блоков вполне достаточно для защиты от развилок в цепочках. Конкретной рекомендацией для того кто встретился с развилочной цепочкой будет остановка всех сделок до того момента, пока меньшая сеть не объединится с основной или пользователи могут стать жертвой атаки с двойной тратой.

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

Децентрализованная генерация блока и его передача

К этому монету уже стало очевидно, что доказательство доли Proof-of-Stake является удовлетворительным для выявления лучшей цепи и обеспечивает более дешёвую и надёжную безопасность сети. Децентрализованной сети необходимо найти метод нахождения консенсуса относительно того, какой блок будет добавлен следующим, ведь майнинг устранён. В развитой сети в одну секунду может происходить до 12 транзакций, в то время как задержка на распространение в сети может достигать 60 секунд. Это означает, что новые блоки, которые уничтожают большее количество монета-дней, могут быть генерированы с частотой превышающей распространение блоков. Без майнинга ни один лотерейный механизм не способен избирать каждые 10 минут единственный узел, которому будет доверено право включать (или не включать) транзакции в блок.

У сети должен быть способ, регулировать частоту производства блоков и транзакций. Эта возможность может быть достигнута путём настройки минимальной комиссионной платы за блок, которая должны осуществляться в той же манере, с которой в сети Bitcoin осуществляется настройка сложности. Эти комиссионные сборы замедлят объём транзакций до установленного уровня и повлекут за собой увеличение времени, затрачиваемое на создание первого блока претендента; однако как только первый кандидат будет создан, остальные претенденты по прежнему будут производиться быстрее, чем первый сможет быть транслирован.

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

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

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

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

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

Заключение

В этой статье мы предоставили упрощенный алгоритм доказательства доли Proof-оf-Stake, который позволяет всем пользователям сети внести свой вклад в защиту системы от атак. В рамках этой системы задача создания секретной цепи блоков, которая содержит больше уничтоженных монета-дней, чем общественная цепь сделок, представляется экономически неосуществимой для любого злоумышленника. Представлены методы, позволяющие защитить сеть от 51% атаки, атаки майнинга группой лиц в эгоистических целях и атаки с двойной тратой, осуществимые без майнинга вообще.

Так как протокол доказательства доли Proof-of-Stake устраняет необходимость в выплате вознаграждений майнерам, он так же устраняет необходимость в инфляции, а также устраняет необходимость в затратном потреблении электроэнергии, свойственном протоколу proof-of-work. В мире, с постоянно увеличивающимся количеством цепочек блоков, обеспечение безопасности с помощью протокола доказательства работы Proof-of-Work становится фрагментированным без объединенного майнинга, у которого в свою очередь также имеются недостатки. С переходом на алгоритм доказательства доли Proof-of-Stake, объединённый майнинг больше не является необходимым и любое количество цепочек блоков может быть произведено без ущерба для безопасности каждой отдельной цепочки блоков.

Источник: BitShares-Wiki

Добавить комментарий