Вы здесь

Алгоритмы подтверждения

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

Алгоритмы подтверждения

Proof-of-Work

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

Proof-of-Work (в переводе с английского - “доказательство работой”) - алгоритм, суть которого сводится к необходимости использования большой вычислительной мощности.

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

При этом предполагается, что проверять результаты вычислений в Proof-of-Work легко. На этом и строится алгоритм: время сверки итогов вычислений всегда намного (на несколько порядков) меньше, чем затраты на получение этих итогов.

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

Proof-of-Work


Более подробно алгоритм консенсуса Proof-of-Work рассмотрен здесь и здесь

Proof-of-Stake

Первым алгоритмом, пришедшим “на смену” Proof-of-Work, стало “подтверждение долей” - Proof-of-Stake.

Метод призван решить проблему расходования слишком больших ресурсов на майнинг. В Proof-of-Stake “голосование” осуществляется ограниченным ресурсом - не тем, который существует извне (как энергия в Proof-of-Work - она никак не зависит от конкретной криптовалюты), а внутренним.

По сути, чем больше нод у участника сети с алгоритмом Proof-of-Stake, тем больше у него шансов получить следующий блок. Ограниченность ресурса достигается путём частичного блокирования средств (токенов) у участников - во время выбора того, кто получит блок, использовать монеты нельзя.

Плюс Proof-of-Stake - небольшие затраты энергии: не нужно постоянно увеличивать запасы “железа”, выбор всё равно будет происходить на основе того, сколько криптовалюты есть у каждого участника. А её в большинстве сетей ограниченное количество.

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

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

Proof-of-Stake


Более подробно алгоритм консенсуса Proof-of-Stake рассмотрен здесь

Доказательство с нулевым разглашением

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

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

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

В итоге цель достигается: мальчик понимает, что девочка вводит правильный пароль, но саму комбинацию не узнаёт.
Для чего нужно доказательство с нулевым разглашением? Ответ прост - чтобы исключить третьего участника. В информационных системах существуют хранилища паролей, через которые можно отследить действия любого участника. Это неприменимо в децентрализованных системах (то есть для криптовалют), а значит, нужно ограничиться максимум двумя участниками. А чтобы они оба понимали, что у другой стороны есть какая-то важная информация, применяются вероятностные методы, один из которых - доказательство с нулевым разглашением.

Свойства протокола доказательства без разглашения информации:

  • полнота знания - протокол должен быть таким, чтобы подтверждать полное знание информации;
  • корректность - у участника, заявляющего о наличии сведений, не должно быть шансов “обмануть” другую сторону, доказать ей знание информации при её фактическом отсутствии;
  • нулевое разглашение - сторона А (обладающая информацией) предоставляет стороне Б (проверяющей) лишь такую информацию, которая есть и у других участников.

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

Proof-of-Burn

Proof-of-Burn (с английского - “доказательство сжиганием”) - следующий метод достижения консенсуса в криптосистемах.

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

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

Именно поэтому популярность Proof-of-Burn только растёт. Защищённость кошелька, куда “сбрасываются” средства майнерами, высока. Обычно адрес этого места - хэш случайного адреса: это гарантирует минимальную вероятность получения ключей от него.

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

Proof-of-Capacity и Proof-of-Storage

Следующий метод - Proof-of-Capacity (“доказательство вместимостью”).

Требование к майнеру, получающему криптовалюту, основанную на Proof-of-Capacity - предоставление свободного дискового пространства. Его нужно много: минимальная цифра - 1-2 терабайта, в некоторых системах может быть больше.

Успех участника системы в получении блоков зависит от количества выделенного им пространства. “Лотерейными” билетами здесь являются мегабайты на Hard Disk: чем их больше, тем существеннее доля участника в суммарном пространстве всех майнеров.

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

У Proof-of-Capacity недавно появилась разновидность - Proof-of-Storage. Участники точно так же выделяют свой жёсткий диск, но при этом из всего пространства формируется единое облачное хранилище. Система зарабатывает за счёт поступления денег от пользователей, желающих использовать hard disk участников для хранения своей информации. Задумка интересная, поскольку предлагает майнерам зарабатывать несколькими способами.

Недостаток Proof-of-Capacity - затраты времени на обращения к диску. Иногда получается, что генерировать с помощью ASIC новые блоки быстрее, и тогда Proof-of-Capacity обращается в классический Proof-of-Work.

Proof of Activity, Proof of Burn, Proof of Capacity


Рекомендуем ознакомиться со статьей Рэя Патерсона об альтернативах Proof of Work. В ней идет речь о гибридных системах, их достоинствах и недостатках.

Proof-of-Time

Что обладает ценностью? Деньги, ценные бумаги, другие активы?

Создатели алгоритма Proof-of-Time отвечают на эти вопросы однозначно - ценность есть только у времени. У них есть идея системы, в которой можно расплачиваться не денежными знаками, а собственным временем.
Валюты, основанные на времени, раньше уже существовали - опытом их использования обладают, например, Мехико (система Tlaloc), США (Ithaka Hours) и Япония (Fureai Kippu). Участники системы обменивались друг с другом часами своей работы: например, если один человек делал что-то для другого 1 час, то затем они менялись ролями с такой же часовой отработкой.

Proof-of-Time может применяться в финансовой сфере. Например, инвестор, желающий вложить своё время, отдаёт “дни” (или другие единицы времени) в обмен на криптовалюту системы. Через некоторое время он вернёт свои “дни” обратно на установленных в системе условиях.

Может Proof-of-Time использоваться и транспортными компаниями. Например, при задержке поезда на 20 минут всем его пассажирам выдаётся сертификат на бесплатные 20 минут следующей поездки. Тем самым компания подтверждает важность времени (а не денег, которые пассажиры могли бы и не заработать за этот отрезок) и обязуется его компенсировать.

Пока Proof-of-Time применяется очень ограниченно: первый стартап, основанный на этой технологии, вышел на ICO в августе 2017 года. Эксперты сдержанно оценивают перспективы алгоритма и предполагают, что его использование возможно в рамках узких систем с небольшим числом участников.

Заключение

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

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

Категория: 
Биткоин для "чайников"
3
Ваша оценка: Нет Средняя: 3 (3 оценок)
42250 / 1
Аватар пользователя Иван Петров
Публикацию добавил: Иван Петров
Дата публикации: сб, 12/02/2017 - 21:20

Что еще почитать:

Комментарии:

По моему гибрид pow и pos майнинга идеальны для криптовалюты, все остальные только бестолку усложняют эту процедуру

пн, 08/13/2018 - 19:56

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

пн, 08/27/2018 - 00:09

Джером

Самым надежным, по моему субъективному мнению, является алгоритм подтверждения proof of work (доказательство работы), но он к сожалению очень энергозатратный. Поэтому мне кажется, что гибрид доказательства работы с алгоритмом proof of stake (доказательство владения доли) лучшим вариантом. Особенно это касается атаки 51, когда людям решившим совершить атаку на сеть потребуется не только владение 51% хешрейта сети, но и обладать 51% монет этой же сети. Добиться такого никому не под силу и энергопотребление сети будет гораздо ниже, чем у классического proof of work.

пт, 11/30/2018 - 11:01

А кто знает в каких криптовалютах применяется алгоритм proof of burn? Насколько я понимаю нечто похожее есть у ripple, где комиссии за транзакции никто не получает, но всё-таки это несколько другое.

сб, 12/01/2018 - 14:08

Toha

Есть вопрос и замечание по этому материалу. Начнем с вопроса, я так понял у криптовалюты lisk реализован алгоритм proof of burn? Алгоритм подтверждения proof of time можно с успехом реализовывать в различных видах перевозок, и это не ограниченная группа. Представьте, что аэрофлот или ржд внедрят такую систему вознаграждения, получится огромное количество пользователей.

ср, 12/19/2018 - 13:26