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

20
ПОДЕЛИТЬСЯ

Bitnovosti начинают цикл статей на основе материала Виталика Бутерина «The hard problems of cryptocurrency». В этом тексте автор рассматривает главные проблемы, стоящие сейчас перед криптовалютным сообществом, и возможные направления развития биткойна и криптовалют в целом. Виталик Бутерин — сооснователь Bitcoin magazine, основатель проекта Ethereum.

01-Zeitstempel_01
Инструмент для проставления текущего времени на документах. Германия, около 1960. Фото: Oxfordian Kissuth / Wikimedia commons

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

Вот некоторые разделы криптоэкономики:

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

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

В традиционной прикладной криптографии утверждения о безопасности обычно выглядят так:

  • Никто не может проделать более чем 2^79 вычислительных шагов.
  • Разложение на множители — алгоритмически сложная (суперполиномиальная) задача.
  • Взятие корней n-й степени по модулю — алгоритмически сложная задача.
  • Задача нахождения дискретного логарифма на эллиптической кривой не может быть решена за время меньшее 2^n/2.

В криптоэкономике же базовые утверждения о безопасности, в дополнение к утверждениям криптографического толка, будут примерно такими:

  • Никакое множество лиц, контролирующее более 25% всех вычислительных ресурсов, не способно к сговору.
  • Никакое множество лиц, контролирующее более 25% всех денег, не способно к сговору.
  • Количество вычислений, которые необходимо проделать для определенной proof-of-work-функции при данном количестве денег, не суперлинейно после разумно низкого предела.
  • Существует не являющееся пренебрежимо малым количество альтруистов и не являющееся пренебрежимо малым количество сумасшедших или политических противников системы, поведение же большинства пользователей можно в рамках модели рассматривать как близкое к рациональному.
  • Количество пользователей системы велико, пользователи могут появляться и исчезать в любой момент, хотя некоторые пользователи подключены к системе постоянно.
  • Цензура невозможна; каждая пара узлов может относительно быстро обмениваться сообщениями.
  • Можно легко сгенерировать очень большое количество IP-адресов и оплатить интернет-канал неограниченной пропускной способности.
  • Многие пользователи анонимны, так что механизмы репутации и долга не могут быть реализованы применением силы.

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

Технология

Технология распределенного консенсуса, используемая в сети Bitcoin, впечатляет в значительной степени из-за своей простоты. Задача, сформулированная 30 лет назад, была решена механизмом, который настолько просто реализовать и настолько просто понять, что даже некоторые увлекающиеся технологиями подростки могут описать его работу во всех подробностях. Тем не менее, в своей текущей версии эта технология существенно ограничена. Масштабируемость биткойна непродуманна: тот факт, что каждый полный узел должен хранить каждую транзакцию — препятствие на пути к успеху для этой платформы. К тому же, это препятствует применению биткойна для микроплатежей — области, в которой он был бы, возможно, наиболее полезен. Механизм меток времени подвержен уязвимостям, а алгоритмы proof-of-work могут базироваться на крайне ограниченном наборе вычислительных задач. Тот факт, что оригинальное решение оказалось настолько «простым», в любом случае означает, что технологии есть куда развиваться. Вот несколько возможных направлений будущих усовершенствований.

1. Масштабируемость блокчейна

Одна из важнейших проблем для криптовалютного сообщества — проблема масштабируемости. Часто встречается высказывание, что в то время как популярные платежные системы обрабатывают около 2000 транзакций в секунду (TPS), биткойн в своем текущем виде может обрабатывать только семь. На фундаментальном уровне это не совсем так: с измененным параметром, ограничивающим размер блока, биткойн сможет обрабатывать и 70, и даже 7000 TPS. Тем не менее, если биткойн достигнет таких масштабов, мы столкнемся с другой проблемой: для обычного пользователя станет невозможно поддерживать полный узел, и поддержание полных узлов станет прерогативой небольшой группы бизнесменов, которые смогут себе это позволить. Поскольку для майнинга достаточно заголовка блока, даже майнеры смогут (и многие уже так делают) майнить без загрузки полного блокчейна.

Обеспокоенность здесь вызывает, главным образом, проблема доверия. Если всего несколько сущностей способны поддерживать полные узлы, они могут вступить в сговор и приписать друг другу лишних биткойнов, и у других пользователей не будет способа это обнаружить без обработки всего блокчейна. И хотя подобное мошенничество может быть обнаружено постфактум, может возникнуть ситуация, при которой проще будет продолжить работу с «мошеннической» цепочкой (и власти могут в той или иной форме поддерживать такую тактику). Кроме того, при откате мошеннических транзакций и переключении на альтернативную ветку возникает проблема координации. Таким образом, в предельном случае, биткойн с 7000 TPS будет иметь проблемы безопасности, схожие с теми, которые имеют централизованные системы типа Paypal, тогда как изначально мы хотели получить систему, обрабатывающую 7000 TPS с тем же уровнем децентрализации, который предлагался криптовалютами изначально.

В идеальном случае должен существовать дизайн блокчейна, который работает и обладает похожими на биткойн качествами в смысле безопасности (см. атака 51%). Такой блокчейн должен функционировать, даже если ни один узел не обрабатывает более, чем 1/n всех транзакций, где n может быть увеличено по мере необходимости, возможно, ценой линейного или квадратичного роста неэффективности в менее важных процессах и вопросов конвергенции (сходимости). Это позволит архитектуре на основе блокчейна работать при неограниченном количестве транзакций в секунду и в то же время сохранит уровень децентрализации, который представлял себе Сатоши.

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

Дополнительные предположения и требования:

  • Существует большое количество майнеров.
  • Майнеры могут использовать специализированное или неспециализированное аппаратное обеспечение. Предполагается, что специализированное оборудование мощнее неспециализированного в значительное (например, 10000) количество раз на специфичных задачах.
  • Обычные пользователи используют неспециализированное оборудование.
  • В идеальном случае, после некоторого количества блоков (возможно, логарифмического по отношению к размеру сети) для отмены транзакции будет требоваться 51% сети. Тем не менее, приемлемы решения, где транзакции смогут платить очень маленькую комиссию при более низком уровне безопасности, хотя нужно избегать ситуаций, когда злоумышленник мог бы извлечь прибыль, одновременно отменив множество мелких транзакций.
  • В идеальном случае, решение должно поддерживать как можно больше функций блокчейна общего назначения, основанного на аккаунтах (например, Ethereum), хотя приемлемы также решения, специфичные для определенной валюты или определенной области применения (регистрация доменных имен).

2. Метки времени

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

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

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

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

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

Дополнительные предположения и требования:

  • Все добросовестные пользователи имеют часы, показания которых нормально распределены вокруг некоего «настоящего» времени со стандартным отклонением 20 секунд.
  • Никакие два узла не удалены друг от друга более чем на 20 секунд (то есть за 20 секунд сообщение от любого узла гарантированно достигает любого другого).
  • Решение может основываться только на существующем концепте «N узлов»; на практике это будет реализовано с помощью proof-of-stake и anti-sybil-токенов.
  • Система должна постоянно предоставлять сигнал точного времени, отклоняющийся на менее чем 120 секунд от внутренних часов более чем 99% честных узлов. Мы также предполагаем, что система должна быть непротиворечивой в диапазоне около 190 секунд.
  • Система не должна основываться на proof-of-work любого рода.
  • Внешние системы смогут в будущем основываться на этой системе; тем не менее, она должна оставаться надежной в случае, если злоумышленники контролируют менее 25% узлов, вне зависимости от системы мотивации.

По материалам Ethereum wiki. Автор — Виталик Бутерин.

Продолжение следует.

20 КОММЕНТАРИИ

  1. https://greenaddress.it/ru/
    делает платежи моментальными, а еще тут были статьи про прочие способы “предсказания” платежа уже по первым подтверждениям – моментальность платежей не проблема и магазины вполне в состоянии позволить себе риск в 0,01% от стоимости товаров на тот случай, если платеж отменят и он так и не пройдет.
    Кредитки кстати так же работают, платежи попадают в банк, и уже по сети банков спустя N времени зачисляются куда нужно.

    Насчет скорость транзакций – как писали ниже, расширить блок не представляет проблем, но в этом нет нужды в принципе. На данный момент пользователей биткоин кошельков по статистике блокчейн.инфо несколько миллионов человек.
    Даже если их будет 100 миллионов на весь мир, все равно понимающих биткоин людей будет в пропорции 0,1 миллиарда к 7 миллиардам, или 1 к 70, или 98,5% ничего не понимающих в биткоине(да и во всех прочих деньгах тоже).

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

    А теперь берем параметры визы в 7000 платежей в секунду и делим на 70, получаем 100 переводов в секунду взамен существующих, что абсолютно не является проблемой для сети и можно устраивать туземун хоть сейчас 🙂

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

    Очень точное определение криптоэкономики и криптографии!

  3. Странная статья. Сложная, изобилует терминами, вместо которых можно было бы сказать попроще. Мне, лично, не нравится такой стиль изложения, так как читатель перестаёт понимать, о чём речь, и подсознательно считать автора выше него (раз тот использует сложные запутанные термины). Типичный развод в стиле Ипсумов и прочего…

    Много выдуманных проблем, IMHO. Сеть Биткойна работает. И будет работать. Пускай Виталик допиливает свой Etherium, который, лично я уверен, никому не нужен будет. Вот конкретно по пунктам:

    Зачем надо было писать про “шаги 2^79” – я впервые слышу про такое. Зачем писать про задачу дискретного логарифма? Какое имеет отношение это ко второй части?

    Насчёт TPS скорости. Если Биткойном будут пользоваться так много народу, то вот что пишет автор:

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

    А теперь представьте – биткойн принимается везде, что с ним будет? Цена его будет гораздо выше, чем сейчас – просто для такого товарооборота нужны будут биткойны те, что есть только сейчас + намайненные. А от системы ещё два года будет выплачиваться за блок майнерам 25 биткойнов + комиссии. Потом 12,5 ещё четыре года. И вы вправду думаете, что при таком раскладе майнить будет так мало народу, и что не у всех будет хватать средств купить себе комп с SSD дисками? 🙂 Не надо пугать централизацией – сразу подтянуться новые майнеры и прочие. Если подумать, что создал Сатоши Накамото, то поймете, что в Биткойне – саморегулирующая система.

    Далее, по всё тому же сказанному выше – что значит “приписать себе лишних биткойнов”? Чтобы приписать, надо проделать огромную работу – подобрать хеши. Приписать просто нельзя. Что, и вправду кто-то верит, что при большой активности использования Биткойна кто-то себе припишет только потому, что у других пользователей не будет копии всего биткойна? Ну у обычных нет, но будут майнеры, а их будет очень много, когда будет 7000 TPS и цена за биткойн в 100 раз больше. Будут и full node, просто хотя бы потому, что вычислительная техника это уже позволяет поддерживать потенциально такую скорость.

    Потом “Однако в этом подходе существуют потенциальные уязвимости, которые могут проявиться в блокчейнах, где время играет важную роль.”. О чём он вообще? Если о других блокчейнах, зачем тут говорить как о проблеме Биткойна? У Биткойна в этом плане проблем нет. И зачем то этот Бутерин далее описывает какой то запутанный, эмпирический, странный алгоритм про точное время. Не понимаю я этого…

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

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

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

      • Вы правда считаете проблемой увеличить блокчейн в 100-500 раз? Ну подумаешь база будет не 20гб а 2тб, в чем проблема? Стоимость жесткого диска 100 баксов в год это копейки по сравнению с десятками тысяч затрачиваемые на майнеры….

    • А что с ним случилось? Почему “не было”? Какие проблемы у него были, которые сделали так, что его не стало?

      По статье – супер! Битновостя снова торт.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here