Chainmerger : как объединить блокчейн после хардфорка

3141
Просмотры

Хардфорк биткоина и других криптовалют является необратимым процессом. Цепь делится на две части, каждая из которых работает по своим правилам. Разработчики Bitcoin Core заявляли, что в биткоине не предусмотрен процесс слияния. В будущем могут появиться идеи, которые будут реализованы в других криптовалютах. Сделать что-то сейчас невозможно, потому что биткоин и его форки активно используются.

Почему нельзя объединить блокчейн после форка?

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

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

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

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

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

Суть Chainmerger

Это предложение требует жестких возможностей с точки зрения как Bitcoin Core, так и Bitcoin Cash протокола. Новый узел биткоина должен будет объединить устаревший консенсус обоих протоколов и по-разному проверять различные интервалы высоты блоков. Само по себе это не является чем-то необычным, поскольку узлы Bitcoin ABC уже сегодня выполняют этот тип проверки, чувствительной к высоте блоков (они проверяют блоки №1–478558 в соответствии с согласованными правилами Bitcoin Core, а блоки > №478558 — в соответствии с согласованными правилами Bitcoin Cash).

Разница заключается в том, что узел Chainmerger синхронизирует обе истории цепочки блоков после №478558 параллельно и проверяет оба блокчейна.

Chainmerger : как объединить блокчейн после хардфорка
Цепное объединение между Bitcoin и Bitcoin Cash, форк на высоте блока 478558 и объединение на некоторой будущей высоте блока Х + 1.

Событие «hardfork chainmerger» начинается, когда в обеих цепях достигается заданная высота в X блоков, после чего они отклоняют любые блоки, расширяющие соответствующие цепочки, в соответствии с существующими правилами консенсуса. Вместо этого  нода требует специального блока слияния на высоте X+1, который по-разному реализует hashPrevBlock. Он будет хэшировать заголовки блоков с обоих блокчейнов. Кроме того, блок X+1 должен соблюдать новые, общие правила, которым будет следовать объединенный блокчейн.

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

  • Каждый UTXO на BTC или BCH должен также тратиться на объединенной цепочке с использованием тех же секретных ключей, что и до слияния.
  • Общая эмиссия в 21 миллион монет должна оставаться нетронутым.

На момент написания этой статьи наряду с BTC было добыто 126 700 дополнительных BCH. Более важным является тот факт, что многие владельцы BTC перемещали свои BCH. Попытка объединить оба конфликтующих набора выходов неизрасходованных транзакций приведет к увеличению числа BTC. Это говорит о том, что просто так объединить все UTXO нельзя.

Один из выходов — создание коэффициента объединения UTXO, то есть 1 BTC + 1 BCT = 1 BTC (объединенный).

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

0,8862*BTC + 0,1138*BCH = 1 BTC (объединенный).

Этот способ страдает от колебания рынка и им легко манипулировать.

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

40239,55 — 32754,53 = 7485,02 по BTC
33787,07 — 32754,53 = 1032,54 по BCH

Эти метрики можно использовать для алгоритмического определения коэффициента UTXO в точке слияния.

Для выходов BTC, у которых не появились конфликтующие BCH (владельцы не перемещали монеты), баланс в BTC останется таким же до и после слияния.

Держатели, которые продавали BCH, будут иметь меньший баланс BTC на -13,79%, но это может быть несколько компенсировано прибылью, которую они уже получили, продавая эти монеты за BTC или фиат. Пользователи, которые изначально купили BCH, получат 0,1379 BTC за каждый купленный BCH.

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