Ученые считают, что Биткойну требуются радикальные изменения

bitcoin-ng-or-how-cornell-researchers-think-a-radical-redesign-can-solve-bitcoin-s-scaling-issues-0
Споры относительно ограничений размера блока в сущности отражает поиск золотой середины между эффективностью и безопасностью. Более крупные блоки позволяют осуществлять большее количество транзакций в сети биткойн, но могут вылиться в сокращение использования мощностей добычи, что в итоге приведёт к централизации всей системы. Некоторые разработчики в пылу спора выдвигали предложения найти золотую середину и, таким образом, прийти к консенсусу, но, увы, до сих пор их призывы не нашли поддержки.

Тем временем группа исследователей из Корнелльского университета пошла совершенно другим путём. Вместо того чтобы пытаться найти эту самую середину, доктор Иттай Эйял, кандидат наук Адем Эфе Генсер, преподаватель информатики Эмин Гюн и исследователь Робберт Ван Ренесси представили Bitcoin NG – радикальный редизайн архитектуры биткойна, который, как предполагается, навсегда поставит точку в споре о размерах блока.

О ключевых блоках

На данный момент, биткойн-майнеры включают в блок два типа информации: POW (англ. proof of work или “доказательство выполнения работы”), которое позволяет определить сети самую длинную цепь, а также число транзакций, выбираемое майнером. Bitcoin NG предлагает расщепление этих двух функций путём создания двух отдельных типов блока, а именно: ключевых блоков и микроблоков, каждый из которых остается частью всё той же цепи.

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

Чтобы объяснить плюсы использования ключевых блоков Эяль рассказал журналу Bitcoin Magazine следующее:

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

bitcoin-ng-or-how-cornell-researchers-think-a-radical-redesign-can-solve-bitcoin-s-scaling-issues-1

О микроблоках

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

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

О токсичных транзакциях

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

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

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

bitcoin-ng-or-how-cornell-researchers-think-a-radical-redesign-can-solve-bitcoin-s-scaling-issues-2

О радикальности

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

«Существует несколько возможных сценариев», – объясняет Эяль. «Мы можем достичь консенсуса в биткойн-сообществе, изменить принцип работы чейнблока и внедрить Bitcoin NG в качестве нового биткойна. Или же, если кто-то возьмет на себя реализацию всех технических отличий, Bitcoin NG сможет стать альткойном. Лично мне интересна технология и наука, что лежит в её основе, и я воспринимаю Bitcoin NG как исследовательский проект. На мой взгляд, это более уместный способ составлять чейнблока»

Дополнительную информацию можно найти в публикациях Эяля и Сирера на сайте http://hackingdistributed.com

Источник: bitcoinmagazine.com



Categories: Альткойны, Безопасность, Майнинг

Tags: , , , , , , ,

24 replies

  1. Не совсем понимаю, зачем нужно- хм все это додумывать, если можно просто слегка изменить алгоритм нахождения блоков и награду. Сейчас награда за блок равна 25 монетам, после 16 июня будет равно 12.5 монетам(дата может изменить на несколько недель, впрочем речь не об этом).
    Время нахождения блоков равно 10 минутам.
    Почему бы не изменить алгоритм чтоб время нахождения блоков стало равным 5 минутам, но награда за блок стала 12.5 монет ( после 16 июня – 6.25 монеты). Во первых это вдвое убыстрит транзакции. Во вторых это значительно облегчит майнинг в соло. Если сейчас сеть находит 144 блока в сутки, то будут находиться уже 288- что значительно увеличит шансы майнера одиночки заработать денег и он не будет майнить на пуле. Также мелкие пулы которые сейчас находят по 1 блоку в неделю, значительно увеличат шансы на выиграшь. В третих- эмиссия монет не изменится, она по прежнему будет равна общему количеству в 21 млн- инвесторы разницы не ощутят.

    Далее- награда обрубается с циклом в 210 тыс блоков в 2 раза- что не очень удобно. ибо для всех майнеров день когда будет пересчет награды станет черным днем календаря- ибо уменьшение награды в 2 раза, самими майнерами будет воспринято как увеличение сложности в 2раза. Следовательно- те у кого древние асики, те выключат их чтоб не загонять себя в долги. останутся только те кто майнит в обход счетчика и те кто имеет стальные яйца. А ну еще и идейные- которым пофигу на прибыль, им важен процесс. НО! Как только курс биткоина поднимется, то те кто отключились тут же вернутся, ибо их асики уже станут выгодными.

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

    Почему бы не сделать что после 16 июня награда не будет падать резко в 2 раза на 210 тыс блоков, а на чуть чуть каждый месяц- как берстах ( на 5% в месяц) или в дигибайтах ( на 1% в месяц)? Это значительно смягчит ситуацию с майнерами.

    • проще всего каждые 8 лет увеличивать скорость блоков в 2 раза

      то есть в июле 2016 – сделать 12.5 монет, но 5 минут
      в 2020 – 6.250 монет 5 минут
      в 2024 – 3.125 монет 2.5 минуты
      и т.д.

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

  2. не надо ломать то, что пока и так работает. вот если работать перестанет тогда и будут думать, а пока руки прочь!

    • Автомобиль тоже не нужно было изобретать. Телеги прекрасно работали же.

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

    • да уж, предложение –

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

      звучит по идиотски, особенно выражение – “задним числом”, это типа – анально ? 😉

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

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

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

  5. Не нужно передавать весь блок по сети.

    Достаточно сортировать транзакции по объему и передавать только хэш списка транзакций.

    То есть вместо 1 мбайта передавать хеш 128 байт

    А сами транзакций у майнеров уже есть. Их надо привести к каноническому виду, отсортировать, сверить хэш и блок готов.

    • 1). Это получается 2^n-1 операций хеширования, где n – количество транзакций в mempool? За последнюю неделю, если верить https://tradeblock.com/bitcoin , mempool доходил до 10000Tx, а это ~10^3000 операций, что бессмысленно.
      2). Просветите, mempool синхронный и одинаковый для всех узлов?

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

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

          То же самое с мемпулом. Никакой разницы.

        • Если узел принимает транзакции, которые потом отражает в составе блока, то спрашивается, зачем принимал эту транзакцию и тратил память?

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

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

      • N операций хеширования
        Где N – число транзакций в мемпуле

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

        Транзакции в мемпуле можно разделить на старше 10 секунд, 30 секунд, старше 1 минуты и старше 5 минут.

        В этом случае число операций хеширования будет 4*N

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

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

    • С размером блока есть минимум 2 проблемы.
      Первая – именно размер блокчейна. Она действительно не решается предложенной архитектурой.
      Вторая, более серьёзная – latency при передаче свежего блока между майнерами. Грубо говоря, пока остальные майнеры скачивают блок, сгенерировавший его уже ищет следующий, получая таким образом преимущество. Чем больше блок, тем больше преимущество.
      Очистка блокчейна от неактуальных транзакций не является решением второй проблемы.

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

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

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

          • Достаточно передать список хэшнй транзакций а не сами транзакции

  7. Ученые идите ка лечить таких же учёных как вы сами

Trackbacks

  1. Lightning Network и алгоритм zkSNARK – в четверг состоится очередной Moscow Blockchain Developers Meetup | Malanris's site
  2. Lightning Network и алгоритм zkSNARK – в четверг состоится очередной Moscow Blockchain Developers Meetup — Man in Town

Поделитесь своими мыслями

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s