В чем разница между Bitcoin адресами? 1... 3... bc1...

Вероятно, Вы замечали, что существуют разные типы Bitcoin адресов, некоторые начинаются с единицы:

Некоторые с тройки:

А некоторые и вовсе с загадочного сочетания bc1:

Сегодня мы разберемся:

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

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

Почему, зачем, откуда разные адреса Bitcoin?

Пропустить пункт

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

"Каждый предмет рассказывает историю; если ты знаешь, как её прочесть"

Вернемся к самому первому - нулевому блоку - genesis блоку в блокчейне Bitcoin:

Генезис (genesis) блок - это первый блок блокчейна. Современные версии Биткойна нумеруют его, как блок 0, хотя самые ранние версии считали его блоком 1.

Как Вы можете заметить, используется адрес, начинающийся с 1:

Такие адреса называются Legacy или P2PKH адресами (подробнее с каждым адресом разберем ниже - в пункте про сравнение разных типов адресов).

Такую ситуацию - использование только Legacy адресов - Вы можете наблюдать вплоть до августа 2017 года:

Блок 100000 - 29 декабря 2010 11:57:43 UTC:

Блок 300000 - 10 мая 2014 06:32:34 UTC:

Блок 464000 - 29 апреля 2017 08:41:02 UTC:

Перескочив на блок Блок 500000 18 декабря 2017 18:35:25 UTC:

Мы уже видим и другие форматы адресов. Это адреса, которые начинаются с 3 - Nested Segwit - P2SH и с bc1 - Native Segwit - bech32. Что же стало причиной для их появления?

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

Были выдвинуты различные предложения решения данной проблемы, например:

В BIP 100 (2015-06-11) было предложено динамически изменять размер блока по итогу голосования майнеров:

BIP (Bitcoin Improvement Proposal) - предложение по улучшению биткойна - акт открытого проектирования, нацеленный на внедрение новых стандартов и функций в биткойн.

В BIP 102 (2015-06-23) хотели поступить проще - увеличить максимальный размер блока до 2 мегабайт:

В BIP 103 (2015-07-21) предложение было интереснее: увеличивать размер блока вслед за технологическим прогрессом:

Не буду Вас томить - ни одно из этих предложений не было принято😄. Как это связано с адресами? Появление новых адресов стало следствием внедрения решения этой (и еще нескольких) задач.

Решение проблемы ограничения размера блока в 1 мегабайт было найдено и имя ему - протокол Segregated Witness ("Изолированный свидетель"). Имя протокола полностью описывает его суть. В чем же дело? До введения этого протокола 65% объема данных транзакции занимали подписи, которые удостоверяли адрес отправителя.

В BIP 141 (2015-12-21) было предложено использовать протокол SegWit:

Теперь подписи хранились в новой структуре, называемой "свидетелем" (witness), отдельно от основного древа транзакций. Это позволило вместить до 4 мегабайт транзакций в блоке.

Внедрение протокола было запланировано на 1 августа 2017 года, как раз отсюда начал свой путь формат адресов SegWit, отныне у Биткоина стало три формата адресов: Legacy, Nested Segwit, Native Segwit.