2017-07-21 17:18

Блокчейн биткоина, системы PoW и PoS

Блокчейн биткоина, системы PoW и PoS

Loading

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

\n\n

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

\n\n

Но спектр данных, которые способен хранить блокчейн, значительно шире. Различные проекты, такие как Mastercoin, Counterparty, Tether и другие используют децентрализацию блокчейна для краудфайдинга, трейдинга и прочих операций с финансами.

\n\n

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

\n\n

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

\n\n

База данных общего использования блокчейн

\n\n

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

\n\n

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

\n\n

Кроме всего сказанного, сети требуется защита от централизации на случай, если ресурсы одного из узлов сети значительно превысят ресурсы других узлов. Фактически ему будут предоставлены полномочия управления хранящимися данными, чего допустить нельзя. На основании перечисленных принципов процесс создания базы данных представляет собой следующее:

\n\n

•        Узлы отправляют данные в децентрализованную сеть, где происходит их дальнейшая обработка;

\n\n

•        Узлы формируют информацию для добавления в блоки данных и предпринимают попытку внести блоки данных в базу данных;

\n\n

•        База данных, в которой находится большее число блоков, является «корректной», на нее ссылаются все участники сети при добавлении блоков.

\n\n

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

\n\n

Защитный механизм блокчейн

\n\n

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

\n\n

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

\n\n

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

\n\n

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

\n\n

Proof-of-stake

\n\n

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

\n\n

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

\n\n

Может показаться, что второй концепт является более удачным, чем первый, но на практике все значительно сложнее. Для функционирования Proof-of-Work (PoW) требуется огромное количество энергии, но кроме этого имеются и другие недостатки. Поскольку контроль над работой майнинг-пулов (объединения майнеров) осуществляется операторами, принцип децентрализации не выполняется, так как контроль над сетью может осуществляться одним крупным игроком.

\n\n

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

\n\n

Однако есть существенный недостаток у систем PoS – пустой стейк (Nothing-at-Stake). Из-за него данные системы выглядят нестабильными по своей природе. Злоумышленники могут осуществить форк блокчейна – создать за счет «несуществующих» ресурсов более длинную альтернативную цепочку. Поскольку другие майнеры также не используют «настоящие» ресурсы, они могут его поддержать. При помощи форка открывается возможность атак «двойного расхода» и отклонения некоторых транзакций. Например, при оплате товаров можно заместить платеж на свой аккаунт в альтернативном блокчейне. Все атаки на систему PoS можно условно разделить на два вида: ближние и дальние. При атаке первого вида злоумышленник производит замены большей части последних блоков. Во втором случае предпринимается попытка замены истории всей сети и добраться до генезис-блока.

\n\n

Ближние атаки

\n\n

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

\n\n

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

\n\n

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

\n\n

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

\n\n

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

\n\n

Дальние атаки

\n\n

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

\n\n

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

\n\n

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

\n\n

Следует обратить внимание на сходство в реализации обеспечения безопасности обеих систем. Она во многом зависит от добросовестности и доброй воли разработчиков.

\n\n

Разработчики «отматывали» историю многих PoS систем после успешно проведенных атак и даже после обмена подозрительно большого объема валюты.

\n\n

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

\n\n

Возможно, использование принципов обеих систем для создания гибрида PoS и PoW систем может стать наиболее рациональным решением с точки зрения безопасности. Сейчас данный подход уже является наиболее распространенным. Для многих валют был реализован двухэтапный процесс: PoW при выпуске через выплату майнерам новыми монетами и PoS после выпуска валюты. Из-за крепко засевшего менталитета Nothing-at-Stake в головах экспертов, многие криптовалюты не будут спешить отказываться от PoW. Но PoS-системы в любом случае будут превосходить PoW-системы по простоте имплементации и своей надежности.

\n