Алгоритм Proof of Work и его особенности. Пруф оф ворк


Сравнение Proof-of-Work и Proof-of-Stake | ForkLog

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

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

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

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

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

Децентрализованная база данных блокчейн

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

Но мы все-таки должны найти некий рецепт для восстановления согласованности всей системы, так, чтобы все системные узлы имели единую версию блокчейна. Именно здесь и начинается вся красота блокчейна. Децентрализованный блокчейн — не просто произвольная база данных, все записи сформированы в блоки и организованы в линейном порядке. Каждый последующий блок, как известно, ссылается на своего предшественника. Узлы должны обладать некоторым влиянием, чтобы иметь возможность добавлять записи в базу данных, в то время как процесс записи самой базы данных должен использовать определенные ресурсы для обеспечения работы узлов. Заставляя узлы «платить» что-либо за возможность записывать в базу данных, мы достигаем сразу двух целей: защита от спам-узлов, которые загрязняют сеть, и – одновременно – решение проблемы выбора «правильной» базы данных, на случай сомнений. Как известно, предпочтение отдается базе данных с набольшим количеством блоков. В теории, на построение такой базы данных было затрачено больше ресурсов, соответственно, она будет считаться корректной.

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

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

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

Защита блокчейна

Поскольку мы имеем дело с компьютерными сетями, наш выбор «ресурса» относительно очевиден — компьютерная мощность в чистом виде. Чтобы добавить блок в блокчейн, узел должен решать определенные вычислительные задания, которые значительно усложняют контроль над сетью со стороны одного узла. Это краткое описание концепта Proof-of-Work (доказательство работы) — в основном предполагающего способность узла проверить, что майнер (в роли которого выступает узел, добавляющий новый блок в блокчейн) фактически выполнил расчеты.

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

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

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

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

Proof-of-stake

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

Узлы отправляют друг другу блокчейн-токены (определенное значение, связанное с транзакционными входами и выходами), которое эффективно создает биткоин-баланс узла получателя (в действительности, база данных биткоина не содержит никаких балансов, вместо них содержатся транзакционные входы и выходы). Это дало человеку под ником Sunnyking, создателю криптовалюты Peercoin, идею использовать «стейк» (“stake”) — некоторое значение, заблокированное на транзакционных выходах, в качестве ресурса, который определяет, какой узел получает право на майнинг следующего блока. В подходе proof-of-stake узлы также пытаются хэшировать данные в поисках результата меньше определенного значения, но сложность в данном случае распределяется пропорционально и в соответствии с балансом данного узла. Иными словами — в соответствии с количеством монет (токенов) на вашем счету. Таким образом, узел с большим балансом имеет больше шансов сгенерировать следующий блок. И поскольку маловероятно, что конкретному узлу не так интересно иметь больший баланс, чем у остальной сети, эта схема выглядит достаточно привлекательной, прежде всего из-за небольших требований к вычислительным ресурсам, а также потому, что не возникает ситуации «выброшенных» компьютерных мощностей.

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

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

Это корень знаменитой проблемы Nothing-at-Stake (пустой стэк), которая делает PoS системы по своей природе нестабильными в глазах многих криптовалютных энтузиастов. Атакующий может попытаться сделать форк блокчейна, т. е. создать более длинную альтернативную цепочку посредством расходования «несуществующих» ресурсов. Более того, его могут поддержать другие майнеры, поскольку также не расходуют «подлинные» ресурсы. Посредством форка атакующий может отклонять определенные транзакции и осуществлять атаки «двойного расхода» (платить мерчантам, получать товары, делать форк блокчейна и замещать платеж продавцу платежом на собственный аккаунт в альтернативном блокчейне).

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

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

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

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

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

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

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

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

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

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

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

На что нам хотелось бы обратить внимание, это определенное сходство между система PoS- и PoW-системами в вопросах обеспечения безопасности. Оба подхода полагаются на добрую волю и порядочность разработчиков.

Многие POS-системы были форкнуты разработчиками, чтобы “отмотать” историю назад после успешных атак на блокчейн или даже просто обмен большого количества криптовалюты, происхождение которой вызывало вопросы.

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

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

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

Саша Иванов специально для ForkLog

Нашли ошибку в тексте? Выделите ее и нажмите CTRL+ENTER

forklog.com

Proof-of-Work – что это простыми словами, как работает PoW

Что такое Proof-of-Work (PoW) и Proof-of-Stake (PoS), в чем разница и почему важно для децентрализованных сетей.

Вы наверняка слышали, что блокчейн обеспечивает безопасное хранение данных. Но за счёт чего ему это удаётся?

В статье «Что же такое блокчейн на самом деле?» мы разобрались, что делает блокчейн децентрализованным, и затронули понятие Proof-of-Work — PoW, доказательство работы. Однако мы не обсудили в деталях, как работает механизм, какие проблемы решает и с какими трудностями сталкивается.

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

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

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

Алгоритм Proof-of-Work (PoW) позволяет участникам блокчейн-сети знать, была ли предлагаемая им информация создана бесплатно или её авторам пришлось серьёзно вложиться в её создание.

Почему PoW столь важен

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

  1. Какая версия истории правильная?

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

  1. Тайминг сети

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

Представим, что новый компьютер присоединяется к сети сегодня. «Старожил» может сказать: «Эй, вот деньги, которые я отчеканил шесть месяцев назад, и деньги, которые я отчеканил ещё через десять минут». Как новый участник сети сможет подтвердить действия, которые были совершены в прошлом?

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

Анализ Proof-of-Work: Без кода совсем никуда

Когда Стивен Хокинг писал свой шедевр «Краткая история времени», коллега сказал ему, что каждая научная формула, которую он включит в книгу, уменьшит количество читателей на 50%. Так что в итоге Хокинг оставил только знаменитую Эйнштейновскую E=mc2. Книгу Хокинга в итоге прочли миллионы людей, многие из которых весьма далеки от физики.

Поскольку эта статья нацелена на широкую аудиторию, постараемся использовать в ней как можно меньше кода.

Напомним, что хеш-функция предоставляет собой уникальный цифровой отпечаток части данных. Например, уникальный хеш для имени Мэтт — это длинный фрагмент текста:

4f31fa50e5bd5ff45684e560fc24aeee527a43739ab611c49c51098a33e2b469

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

Когда майнер создаёт новый блок для блокчейна, он должен предоставить сети два хеша: один из них — хеш всех транзакций в блоке, а другой — хеш, который доказывает, что майнер потратил огромное количество энергии на создание блока. Эти затраты делают нерентабельным искажение данных. Но для этого, как упоминалось в предыдущей статье, майнерам необходимо работать в системе, действующей по типу лотереи, где может быть только один победитель. Обе эти задачи решаются с помощью Proof-of-Work.

Скажем, если вместо matt хешировать matt0, мы получим такой хеш:

c5163e81b6dff231b46b584384718ffb734da51d51009399b4b5c73aaa55a811

Если сравнить его с хешем matt, легко заметить, что хеши совершенно разные:

Hash(matt) =

4f31fa50e5bd5ff45684e560fc24aeee527a43739ab611c49c51098a33e2b469

Hash(matt+0) =

c5163e81b6dff231b46b584384718ffb734da51d51009399b4b5c73aaa55a811

Криптографические хеш-функции всегда возвращают одинаковое значение для заданной части данных.

Теперь хешируем, например, matt14 и получим:

Hash(matt + 14) =

0ec48972291a05f8b137468c709bf798dbd8b84bc113b5352e81d2bb20d43120

Но зачем это делать? Представьте, что компьютер поставил перед нами задачу: «Дайте мне первое число, добавленное в конце имени Мэтт, в результате чего хеш будет начинаться с нуля».

С помощью своего компьютера мы начинаем генерировать хеши до первого совпадения:

Hash(matt + 0) =

c5163e81b6dff231b46b584384718ffb734da51d51009399b4b5c73aaa55a811Hash(matt + 1) =

4755a40d3769d7614fb31229fedea4d5e247b3ab8cdc223c4b4f5e3cf9910b4cHash(matt + 2) =

3f8aad849c3ac625d61ae58929ac1bbf5626592a28dc5368b19b2ef40f514f59

И так далее.

В конце концов, дойдя до matt14, мы получили бы хеш, который начинается с нуля:

0ec48972291a05f8b137468c709bf798dbd8b84bc113b5352e81d2bb20d43120

Наш компьютер отвечает текстом matt14 и включает хеш; принимающий компьютер смотрит, соответствует ли полученный хеш тому, который был запрошен.

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

Фактически мы предоставили доказательства своей работы, то есть выполнили доказательство работы.

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

Изначальная команда поступит в обработку мгновенно:

BlockHash = Hash(‘All of the transactions in the current block’)

После чего наш компьютер приступит к вычислениям:

Hash(BlockHash + 0)Hash(BlockHash + 1)Hash(BlockHash + 2)

И так далее.

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

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

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

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

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

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

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

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

Проблемы Proof-of-Work

Майнинг с алгоритмом Proof-of-Work — не единственный известный метод достижения консенсуса в децентрализованной сети. Тем не менее это самый безопасный и меньше всего подверженный централизации на сегодняшний день вариант.

Существуют и другие системы, такие как Proof-of-Stake: она направлена на решение некоторых проблем, связанных с Proof-of-Work, но в целом ведёт к полудецентрализованной (или полуцентрализованной) сети.

Итак, с Proof-of-Work связаны две проблемы.

Высокое энергопотребление

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

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

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

Блокчейн хранит историю всех когда-либо созданных блоков, включая Proof-of-Work для каждого блока. Когда новый компьютер присоединяется к сети, он загружает весь блокчейн и проверяет каждый фрагмент работы, чтобы гарантировать, что всё верно. Хакеры могут отправить пользователю неправильный блокчейн, но программное обеспечение пользователя подключится ко многим компьютерам и рассмотрит самую длинную цепочку с самым длинным кумулятивным доказательством работы — и это будет «истинный» блокчейн.

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

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

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

Централизация майнинга

Границы рентабельности добычи биткоинов очень тонкие. Чтобы получить прибыль, вам нужно иметь доступ к дешёвому электричеству, и его поставки должны быть надёжными. Пока большая часть добычи биткоина приходится на западные провинции Китая, где в избытке производится дешёвая электроэнергия. Напротив, модель Proof-of-Stake не имеет географической привязки.

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

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

Одно можно сказать наверняка: на сегодняшний день Proof-of-Work обеспечивает самый высокий уровень безопасности для децентрализованных блокчейн-сетей.

coinspot.io

Алгоритм 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, имеют установленную стоимость мастерноды, в то время как другие валюты, такие как Divi, предлагают многоуровневую систему мастернод с разными уровнями увеличения вознаграждения.

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

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

Некоторые авторы спорят, что 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 считают, что большинство описанных сценариев атак невозможны, либо так непредсказуемы, что существуют только в теории.

Как же работает пруф оф стейк майнинг в протоколе 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 утверждает, что это делает вредоносную атаку на сеть сложнее.

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

ru.bitcoinwiki.org

Алгоритм Proof of Work и его особенности

Proof of Work или PoW (подтверждение работы) – представляет собой уникальный алгоритм консенсуса в рамках blockchain.

Он применяется в криптосистеме для верификации операций и создания новых цепей в рамках блокчейна.

Майнеры соревнуются со своими конкурентами за право регистрации сделок и получение поощрения от системы в виде новых единиц криптовалюты. Отсюда и название операции — «добыча».

Содержание:

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

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

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

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

Что такое математическая задача в рамках Proof of Work

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

Существует несколько разновидностей таких задач:

  • Функции хэша или как найти входные параметры, зная результат.
  • Целочисленная факторизация. Другими словами, поиск числа, образованного в результате умножения 2-х других чисел.
  • Криптографический протокол Guided Tour Puzzle Protocol, который создан для защиты от атак. Если сервер «подозревает» DDDoS атаку, требуется решение хэш функции для некоторых нод в установленной последовательности. В данном случае, задача заключается в поиске цепочки значений функций хэша.
 Ответ на задачу в рамках криптосистемы Proof of Work называется хэшем. По мере развития и роста сети, она сталкивается с все большим количеством трудностей. Новые алгоритмы требуют все больших вычислительных мощностей для выполнения требований блокчейна. Соответственно, сложность заданий чувствительная к развитию системы.  перейти к содержанию ↑

Насколько сложной является задача в рамках Proof of Work

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

В противном случае, время создания блоков будет существенно увеличено.

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

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

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

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

перейти к содержанию ↑

Сеть блокчейн и принцип реализации этого алгоритма

Вкратце, майнеры занимаются решением задач в области математики, создают новый блок и занимаются верификацией сделок.

То, насколько сложной является задача, зависит от количества людей в системе, ее мощности и загрузки.

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

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

перейти к содержанию ↑

В каких сферах используется протокол Proof of work

PoW можно встретить во многих современных криптокоинах. Самым популярным из них является биткоин. И именно в Bitcoin заложены принципы этого типа консенсуса.

За постановку задач отвечает алгоритм Hashcash.

Он меняет сложность в соответствии с мощностью всей системы. Среднее время создания нового блока составляет в районе 10 минут. У криптовалют на базе Bitcoin (к примеру, лайткоин) используется та же система.

 Еще один крупный проект, в рамках которого используется алгоритм Proof of Work – Ethereum. А учитывая тот факт, что порядка 3 из 4 современных систем реализовано именно на базе эфириум, а это значит, что у большинства токенов используется консенсус PoW.  перейти к содержанию ↑

Почему алгоритм Proof of Work находится на первом месте

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

Защита от DDoS атак предполагает установку некоторых лимитов в сети.

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

Несмотря на то, что в целом, такая атака возможна, она выглядит малоэффективной с точки зрения затрат.

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

Есть ли какие-то недостатки в алгоритме PoW

К основным минусам Proof of Work можно отнести:

  • Высокие расходы. Для майнинга требуется специальное «железо», с помощью которого и будут производиться сложные расчеты. Причем стоимость такого оборудования может быть крайне высокой. Заниматься майнингом имеет смысл только объединившись в пулы или создавая фермы. Оборудование слишком «прожорливое», что также увеличивает стоимость добычи. Большие затраты несут угрозу криптосистеме в том, что она может стать централизованной и управление ей будет сконцентрировано в одних руках.
  • Бесполезность расчетов. Майнеры постоянно генерируют новые блоки и потребляют много энергии. Однако расчеты, которые делает система, больше нигде не применяются. Они лишь обеспечивают надежность сети и не могут быть использованы в деловой сфере, в науке или любой другой отрасли.
  • Атака 51%.
перейти к содержанию ↑

Что же такое атака 51%

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

Соответственно, у них появляется достаточно «сил» для контроля большого объема событий.

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

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

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

В сети то ответвление, которое имеет большую длительность, остается (признается действительным), а то, что короче – удаляется (отбрасывается). Соответственно, операция между Алиной и Андреем не проводится, и Андрей не получает денег.

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

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

 Поэтому атака 51% возможна, но не целесообразна. И в данном случае децентрализация – это то, что защищает пользователей от монополии в денежных переводах. А Proof of Work (PoW) создает стабильность и гармонию в криптосистеме, где абсолютно каждый может стать гарантом проверки созданных транзакций. 

Алгоритм Proof of Work и его особенности

Голосуй

bitgid.com

Алгоритм Proof-of-work (PoW) - Bitcoin Wiki

Это утверждённая версия страницы. Она же — наиболее свежая версия.

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

Создание консенсуса Proof-of-work может представлять собой случайный процесс с маленькой вероятностью успеха, в течение которого происходит большое количество ошибок. Bitcoin использует так называемую “Hashcash” функцию для доказательства выполнения работы (PoW).

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

Принцип работы протокола Proof-of-Work[править]

Hashcash функция используется в Bitcoin для создания блоков. Во время майнинга Proof-of-work (PoW), которое привязано к содержимому блока, необходимо для принятия блока системой. Сложность этой задачи варьируется для контроля частоты нахождения блоков. Система запрограммирована таким образом, что бы частота нахождения блоков, в среднем, составляла 1 блок в 10 минут.

В виду того, что процесс нахождения блока весьма трудозатратен и случаен, невозможно с точностью предсказать какой Bitcoin-worker (майнер) решит задачу и найдет блок. Для того, что бы система признала блок истинным необходимо, чтобы его hash составлял значение меньшее по сравнению с текущей целью (target). Таким образом, каждый блок показывает, что была проделана определенная работа по его нахождению.

Каждый блок содержит хеш предыдущего блока, образуя цепь. Изменить блок невозможно – возможно лишь создать блок на той же высоте, который будет содержать в себе hash предыдущего блока. Для проведения такого процесса необходимо проделать работу по нахождению всех предыдущих блоков. Высокая сложность этого процесса защищает цепочку блоков (block chain) от несанкционированного доступа и атак типа double-spending.

ru.bitcoinwiki.org

Алгоритм Proof of Work

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

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

Что понимается под математической задачей?

Это задача, для решения которой требуются значительные вычислительные мощности, например:

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

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

Почему важна сложность?

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

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

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

Где применяется Proof of Work?

Алгоритм Proof of Work используется во многих криптовалютах. Наиболее известное его применение – система Биткоин. Именно в ней данный алгоритм был применен впервые. В качестве задачи используется Hashcash. Этот алгоритм позволяет менять сложность задачи в зависимости от общей вычислительной мощности сети. Среднее время формирования блока составляет 10 минут. Аналогичная система используется и в других криптовалютах, построенных на базе биткоина.

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

Преимущества Proof of Work

Главными преимуществами алгоритма консенсуса PoW являются его защищенность от DoS-атак и низкая зависимость майнинговых возможностей пользователя от доли принадлежащих ему монет.

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

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

Недостатки Proof of Work

Главные недостатки - это высокие затраты, "бесполезность" вычислений и возможность проведения т. н. "атак 51%".

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

Атака 51%, или атака большинства. Это случай, когда пользователь или группа пользователей контролирует большую часть майнинговой мощности. Злоумышленники стремятся получить мощность, которой будет достаточно для контролирования большинства событий в сети. Это позволяет им монополизировать генерирование новых блоков и получение вознаграждения, так как они могут не позволить другим майнерам создавать блоки. Используя атаку 51%, злоумышленники могут отменять транзакции.

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

Подписывайтесь на United Traders в социальных сетях:

utmagazine.ru

Что такое Proof of Work? Что такое Proof of Stake?

Еще раз здравствуйте друзья, сегодня мы разберем два самых популярных метода для достижения консенсуса в криптовалютах. Не смотря на то, что они совсем разные, есть проекты, где они работают одновременно, но на разных этапах. Об этом поговорим немного позже, а сначала давайте разберемся, что такое Proof of Work и Proof of Stake.

СОДЕРЖАНИЕ СТАТЬИ:

  1. Что такое Proof of Work
  2. Что такое Proof of Stake
  3. Где совмещаются методы PoW и PoS
  4. Какие еще есть методы защиты
  5. Заключение

Что такое Proof of Work

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

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

Метод Proof of Work не имел аналогов до 2011 года, пока не появился метод Proof of Stake, после чего мнение разработчиков разделилось. Одна часть не изменяла старому методу, а вторая переключились на Proof of Stake.

Что такое Proof of Stake

Proof of Stake – это альтернативный методу Proof of Work метод защиты криптовалют, который с английского переводится как «доказательство долей». Расчет вероятности участия в формировании новых блоков, зависит от количества монет на кошельке пользователя. Эти два показателя взаимосвязаны между собой таким образом, что если на вашем кошельке находится 5% от общего количества монет, то вы будете принимать участие в проверке и формировании 5% создающихся блоков.

Advertisement

Метод защиты Proof of Stake, впервые начал применятся в алгоритме работы криптовалюты Peercoin, ее обзор можете прочитать здесь. После примера, который показал Peercoin, много криптовалют начали его использовать, примерами являются: Nextcoin, Blackcoin и другие.

Где совмещаются методы PoW и PoS

Не смотря на конкуренцию этих двух идеологий, встречаются проекты, которые совмещают их обе, получая от этого много пользы. Методы PoW и PoS используются в криптовалютах Emercoin и Novacoin одновременно. Криптовалюта Peercoin, которая первой начала применять метод PoS – использует его исключительно для подтверждения транзакций, метод PoW – применяется для начального распределения монет, что делает Peercoin более универсальным и гибким.

Какие еще есть методы защиты

Как говорится, не двумя методами едиными полнится мир криптовалют. Кроме выше рассмотренных Proof of Work и Proof of Stake, встречаются и другие:

– Proof of Activity;

– Delegate Proof of Stake;

– Proof of Burn;

– Proof of Capacity;

– Proof of Storage и другие.

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

Заключение

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

ЧИТАЙ СВЕЖИЕ НОВОСТИ ИЗ МИРА КРИПТОВАЛЮТ И БЛОКЧЕЙН-ТЕХНОЛОГИЙ НАBITBET.NEWS

www.bitbetnews.com