- Какие форматы бывают у биткоин-адресов?
- SegWit (СегВит) как способ увеличения масштабируемости биткоина
- Что такое SegWit
- История создания SegWit (Сегвит)
- Подготовительный этап
- Софтфорк, хардфорк и прочие разногласия
- Активация SegWit в основной сети биткоина и ее последствия
- SegWit (Сегвит) в других криптовалютах
- SegWit в 2021 году
- SegWit или Legacy?
- Кошельки, поддерживающие технологию Segregated Witness
- Плюсы и минусы технологии
Какие форматы бывают у биткоин-адресов?
Что такое биткоин-адрес в формате legacy?
Legacy-адрес — это стандартный для сети биткоина адрес, предложенный Сатоши Накамото. Иначе это формат называют P2PKH (Pay To Public Key Hash), поскольку он требует от получателя подпись, вычисленную из приватного ключа, и публичный ключ. Скрипт транзакции выхода с помощью криптографических функций сверяет их с хешем публичного ключа — и в случае совпадения позволяет расходовать средства. Вероятность того, что система примет некорректно введенный адрес составляет 1 в 232 степени, то есть один случай из 4,29 млрд.Legacy-адрес можно узнать по префиксу 1 (и m или n в тестовой сети). К основным минусам такого адреса относятся чувствительность к регистру при вводе данных, более высокие комиссии за операции, низкая скорость двойного хеширования контрольной суммы, больший вес в QR-кодах и неудобство записи на мобильном устройстве или на бумаге.
Из каких частей состоит биткоин-адрес в формате legacy?
Legacy-адреса уникальны, обычно состоят из 26-35 символов и представляют собой 160-битные хэши открытого ключа ECDSA ключевой пары. С появлением SegWit-адресов их стали называть старыми, однако изначально они были достаточно эффективным средством представления locking scripts в более удобном для пользователей виде и уменьшения рисков отправки средств на некорректный адрес.Стандартный биткоин-адрес состоит из таких частей:
- префикс;
- сгенерированный в результате применения к приватному ключу алгоритмов SHA256 и RIPEMD публичный ключ;
- контрольная сумма.
Почему в биткоин-адресах бывает разное количество знаков?
Как зашифрованы части legacy-адреса?
Все части биткоин-адреса в формате legacy зашифрованы с защитой от опечаток по системе кодирования Base58Check. В основе кода лежит латинский алфавит. Вы никогда не увидите в таком биткоин-адресе символы, которые легко спутать между собой (знаки плюс и минус, косая черта, ноль, прописные буквы “o” и “i”, строчная “L”). Согласно системе Base58Check в них применяются только следующие 58 символов:
Что такое биткоин-адрес в формате P2SH?
P2SH-адреса (Pay to script hash) появились в предложении по улучшению биткоина BIP-0016 в январе 2012 года благодаря главному научному сотруднику Bitcoin Foundation Гэвину Андресену. Они имеют ту же структуру, что и legacy-адреса, но начинаются с цифры 3.Такие адреса предполагают, что при переводе средств получатель должен иметь скрипт, подходящий к скрипту хеша. Эта особенность позволяет снижать комиссию за перевод биткоинов отправителем, перекладывать комиссионные затраты на получателя и создавать адреса с мультиподписью.
Технология P2SH может разрешить использование средств любым пользователем или, наоборот, запретить для всех. Важно помнить, что биткоин-адреса в формате P2SH поддерживают SegWit, но не являются его нативным решением. Не поддерживающие SegWit криптокошельки могут проводить SegWit-транзакции благодаря механизмам P2WPKH-в-P2SH и P2WSH-в-P2SH.
Что такое биткоин-адрес в формате SegWit?
- легко читаемой человеком части,
- разделителя (1),
- данных и контрольной суммы.
Если при введении адреса было допущено до четырех ошибок, контрольная сумма, входящая в Bech32-адрес, не сойдется. Благодаря примененному в решении коду Боуза-Чоудхури -Хоквингема (БЧХ-коду) ошибки будут автоматически исправлены.
При записи Bech32-адрес применяются следующие 32 символа:
Какие плюсы и минусы использования Bech32-адресов?
C новыми адресами QR-коды стали меньше, а защита от ошибки выше. Кроме того, использование биткоин-адресов в формате Bech32 на сегодня для пользователей более выгодно, ведь комиссия за отправку средств с них ниже, а скорость обработки выше. Главный минус Bech32-адресов — их поддерживают не все криптокошельки и сервисы.Среди первых поддержку таких адресов добавили аппаратные криптокошельки Ledger Nano S, TREZOR и Digital Bitbox, десктоп-криптокошельки Electrum и Armory, мобильные криптокошельки Edge, GreenAddress (для iOS- и Android-устройств), а также Samourai Wallet, Wasabi Wallet, GreenBits и Electrum (для Android-устройств).
Можно ли переводить биткоины с legacy-адреса на SegWit-адрес?
Активация SegWit в сети биткоина была софтфорком — это значит, что новая и предыдущая версии сохранили совместимость. То есть вы можете без проблем переводить средства с legacy-адреса на SegWit-адреса. На уровне блокчейна проблем с разницей в форматах адресов не существует.На практике сложности возникают, если пользователь хочет перевести средства со своего legacy-адреса, например, созданного на криптобирже, на bc1-адрес, а торговая площадка технически еще не внедрила поддержку нового формата адресов. В таком случае стоит использовать пусть и менее эффективный, чем bc1-, но все же более продвинутый, чем legacy- P2SH-адрес.
В обратном направлении, с bc1-адреса на legacy-адрес, средства должны поступить без проблем.
Какие обозреватели блоков отслеживают bc1-адреса?
Источник
SegWit (СегВит) как способ увеличения масштабируемости биткоина
О том, что биткоин станет общепринятым платежным средством, говорят с самого момента его появления, то есть уже более 10 лет. Однако, стоит понимать, что с текущей пропускной способностью его сети это не представляется возможным. В среднем 3, максимум 5–7 транзакций в секунду — все, что может предложить Bitcoin в то время, как, например, у Visa этот показатель измеряется тысячами.
Одна из причин такой медлительности кроется в проблеме масштабирования, которую уже давно пытаются исправить многие разработчики, предлагая решения второго уровня вроде Lightning Network. Но их внедрению препятствует еще ряд недостатков блокчейна биткоина, частично устранить которые помогает обновление протокола SegWit, приведшее к выделению цепи Bitcoin Cash и ряду других драматичных событий. Но, обо всем по порядку.
Что такое SegWit
SegWit — это сокращение от словосочетания Segregated Witness, которое переводится с английского, как «отделенный (сегрегированный) свидетель». Именно такое название носит обновление протокола, изменяющее способ хранения данных в блокчейне с целью улучшения его масштабируемости и скорости работы.
Одна из основных причин вышеописанных проблем заключается в ограничении размера блока биткоина — он не может весить больше 1 MB. В каждом блоке, как известно, содержится информация обо всех добавленных в него транзакциях. При этом большую часть веса транзакции занимают данные свидетеля (witness), записанные в строке кода scriptSig. Речь идет о цифровой подписи отправителя, подтверждающей его намерение перевести указанную в транзакции сумму монет. В каждом блоке эта информация суммарно занимает около 60%!
Второй проблемный момент заключается в том, что подпись формально может быть откорректирована уже после того, как транзакция появилась в блоке, а, значит, существует вероятность изменения ее идентификатора (хеша). В итоге следующие операции, входящие уже в другие блоки, замедляются из-за необходимости построения последовательной цепочки подтвержденных транзакций, для каждой из которых приходится «вытягивать» окончательные данные из прошлых сделок. Эта особенность транзакций получила название пластичности (гибкости) и является основным препятствием для внедрения решений второго уровня в блокчейны биткоина и схожих с ним криптовалют. Кроме того, эту уязвимость теоретически могли использовать злоумышленники, чтобы препятствовать включению транзакций в блоки.
SegWit (Сегвит) решает описанные проблемы путем вынесения раздела кода с цифровой подписью за пределы базовой структуры блокчейна в сайдчейн (побочную цепь) с блоками размером 4 MB. Таким образом повышается эффективность использования полезного объёма основных блоков (их размер остается стандартным — 1MB), что означает возможность включения в них большего количества транзакций (почти в два раза).
Также при помощи SegWit исчезает явление пластичности — внесение изменений в цифровые подписи больше не приводит к замене идентификаторов. Это значит, что транзакции подтверждаются быстрее и устраняются препятствия, мешающие развертыванию скоростных платежных каналов в виде надстроек к основной сети. Еще один приятный плюс — снижение комиссий за проведение переводов вплоть до 50%.
Еще лучше понять задачи и принцип работы технологии SegWit поможет видео ниже:
Что такое SegWitИстория создания SegWit (Сегвит)
О том, что структура блокчейна биткоина является неидеальной и требует внесения изменений, начали говорить уже через несколько лет после его запуска.
В 2012 году группа разработчиков Bitcoin Core называла транзакционную пластичность одной из главных проблем в дальнейшем развитии сети.
В последующие годы с ростом популярности биткоина все чаще случались периоды загруженности блокчейна, во время которых подтверждения транзакций приходилось ждать по нескольку дней. Некоторые для решения проблемы предлагали увеличить размер блока путем проведения хардфорка, однако эта идея не была массово поддержана членами сообщества.
Подготовительный этап
В 2014 году биткоин-разработчики Адам Бэк (Adam Back), Грегори Максвелл (Gregory Maxwell), Питер Уилле (Pieter Wuille) и Мэт Коралло (Matt Corallo) при участии еще нескольких человек основали компанию Blockstream, деятельность которой была сосредоточена на разработке сайдчейнов, улучшающих сеть биткоина. В ее лабораториях и родилась идея по внедрению в сеть Bitcoin обновления Segregated Witness. Концепция SegWit впервые была представлена на конференции Scaling Bitcoin в Гонконге в декабре 2015-го (Lightning Network была презентована двумя месяцами ранее на том же мероприятии в Монреале).
Это предложение по улучшению масштабируемости было встречено в основном положительно, в частности из-за того, что не требовалось изменение существующих правил консенсуса. Для внедрения SegWit достаточно было провести частичное обновление протокола через софтфорк — программное обновление блокчейна без «жесткого» разделения на отдельные цепочки. Соответствующее решение было включено в предложение по улучшению биткоина BIP141 (и последующие BIP 142–145).
В январе 2016-го состоялся запуск тестовой сети под названием SegNet, которая уже через 2 месяца полноценно поддерживала первые версии Lightning Network.
Софтфорк, хардфорк и прочие разногласия
Параллельно с разработкой обновления частью биткоин-сообщества продолжала лоббироваться идея о необходимости увеличения размера блока путем хардфорка. В основном это были сторонники альтернативного клиента Bitcoin Classic.
В феврале 2016-го во время встречи в Гонконге между сторонами конфликта было достигнуто взаимное соглашение об активации SegWit с последующим проведением хардфорка по изменению размера блока до 2 MB.
В апреле апгрейд был готов к релизу, а уже в октябре 2016 года его интегрировали в клиент Bitcoin Core 0.13. Чтобы активировать обновление, разработчики должны были получить поддержку 95% майнеров. Однако, некоторые пулы для майнинга, контролирующие значительную часть мощностей сети биткоина, выступили против запуска SegWit.
Процесс сдвинулся с мертвой точки в апреле 2017-го, когда было сформировано предложение UASF (BIP148), заключающееся в изменении правил проведения софтфорков — для их активации требовалась поддержка не 95% майнеров, а такого же количества полных нод.
Затем в мае состоялась очередная встреча между сторонниками софтфорка и хардфорка. Результатом стало подписание Нью-Йоркского соглашения, которое заключалось в осуществлении альтернативного устраивающего все стороны сценария под названием SegWit2x. Он состоял в активации SegWit путем софтфорка при достижении 80% поддержки участников сети и проведении хардфорка по увеличению размера блока в течение полугода после этого. Важным нюансом описанного события стало то, что в нем не участвовали представители Bitcoin Core, поэтому существовал риск технической несовместимости с самым популярным биткоин-клиентом.
Активация SegWit в основной сети биткоина и ее последствия
1 августа был проведен ранее предложенный софтфорк UASF, изменивший правила для принятия следующих обновлений. Через неделю на блоке 479708 состоялась фиксация SegWit в основной сети биткоина. Окончательная активация многострадального обновления протокола Сегвит произошла 24 августа 2017 года.
В преддверии этих событий несогласные с приближающимся обновлением майнеры под предводительством Роджера Вера таки провели хардфорк, в результате которого 1 августа появилась самостоятельная ветвь в виде криптовалюты Bitcoin Cash. В этой сети размер блока был увеличен до 8 MB, однако несмотря на это преимущество большая часть сообщества все же избрала оригинальный биткоин с внедренным SegWit.
Что касается второй запланированной фазы SegWit2x, которая должна была увеличить размер блока биткоина до 2 MB, ее сторонники 8 ноября 2017-го объявили об отмене хардфорка. В качестве официальной причины было указано нежелание осуществлять очередной раскол сообщества, т.к. поддержка была на уровне всего 30%.
Некоторые отдельные группы разработчиков впоследствии заявляли о намерении самостоятельно реализовать хардфорк и 28 декабря это вроде как было сделано. Но по факту, кроме названия SegWit2x, у этого проекта было мало общего с оригинальной задумкой технологии Сегвит. В итоге появилась монета B2X, которая за последние полтора года обесценилась и сейчас почти нигде не торгуется.
SegWit (Сегвит) в других криптовалютах
После того, как в 2016 году стало известно о завершении разработки технологии SegWit, ее внедрением заинтересовались разработчики многих альткоинов. И поскольку многие из них были основаны на коде биткоина, реализовать это было не так уж и сложно.
Первым проектом, внедрившим SegWit, стал Groestlcoin в январе 2017 года. Немногим позже это обновление было активировано в блокчейнах Emercoin, Vertcoin, Syscoin, DigiByte, Viacoin и Monacoin.
Кроме того, 10 мая 2017 года обновление протокола было внедрено в сеть криптовалюты Litecoin. Именно тогда впервые была показана жизнеспособность модели UASF (активируемых пользователями софтфорков), благодаря которой и состоялся запуск SegWit в опекаемом Чарли Ли блокчейне.
SegWit в 2021 году
В данный момент эта технология используется в 40% всех совершаемых BTC-транзакций. Неполное принятие объясняется тем, что значительное количество участников сети все еще не обновили свое программное обеспечение до версии с поддержкой SegWit и, по сути, продолжают взаимодействовать с блокчейном по старым правилам.
Для сравнения — в сети Litecoin использование Segregated Witness в транзакциях сейчас находится на уровне 55–60%. То есть принятие новой технологии Сегвит почти в 1,5 раза выше, чем у биткоина, но полного перехода тоже еще не состоялось.
Когда состоится абсолютное принятие SegWit в сети Bitcoin (если это вообще случится), предсказать невозможно, поскольку модель софтфорка не предполагает обязательного перехода всех участников сети на новую версию используемого ПО.
SegWit или Legacy?
Поскольку полного принятия SegWit еще не состоялось, в блокчейне биткоина продолжают существовать три разных вида адресов:
- legacy — старый формат, начинаются с «1…»;
- compatibility (P2SH) — совместимы одновременно с новым и старым ПО, начинаются с «3…»;
- default segwit (bech32) — могут использоваться только теми, кто перешел на SegWit, начинаются с «bc1…».
Первый тип является оригинальным, т.е. изначально поддерживаемым сетью Bitcoin. Однако, с legacy-адресов нельзя пересылать средства на адреса формата bech32. А значит нет возможности использовать открываемые обновлением преимущества — а это, как минимум более быстрые и дешевые, транзакции.
Compatibility-адреса являются «всеядными», т.е. могут быть использованы как в кошельках и приложениях, которые еще не перешли на Segregated Witness, так и в тех, которые поддерживают эту технологию.
Третий вариант позволяет отправлять средства на адреса любого типа, используя все преимущества SegWit.
Поэтому, вывод напрашивается сам собой — лучше всего использовать нативные segwit-адреса.
При этом стоит помнить, что далеко не все биткоин-кошельки поддерживают взаимодействие с ними.
Кошельки, поддерживающие технологию Segregated Witness
На сегодняшний день работа с SegWit-адресами поддерживается во всех линейках аппаратных кошельков — Ledger, Trezor и KeepKey.
Также о поддержке SegWit (Сегвит) объявили почти все популярные десктопные и мобильные кошельки, среди которых Exodus, Electrum, Samourai Wallet, Green Address, Jaxx и Coinbase Wallet.
Конечно же, работа с новыми адресами Сегвит по умолчанию доступна во всех версиях клиента Bitcoin Core, выпущенных после августа 2017-го.
А вот известный сайт Blockchain.com, который является старейшим онлайн-кошельком, все еще не работает с SegWit.
Плюсы и минусы технологии
К основным преимуществам SegWit относится:
- Увеличение количества транзакций в блоке почти в 2 раза;
- Повышение пропускной способности сети;
- Снижение комиссионных сборов за проведение транзакций;
- Уменьшение размера блокчейна и, как следствие, времени его загрузки полными нодами (места на жестком диске также нужно меньше);
- Устранение пластичности транзакций, которая является основным препятствиям к внедрению решений второго уровня;
- Исключение возможности изменения цифровых подписей сторонними лицами.
Недостаток у обновления Segregated Witness, по сути, всего один — кратковременный эффект. Ведь даже если в будущем будут реализованы планы по увеличению размера блока до 2 MB, этого все равно может оказаться мало для поддержания приемлемой пропускной способности сети, которая, несомненно, будет пополняться новыми участниками с ростом популярности биткоина.
Но специалисты из Blockstream обещают, что эту проблему поможет устранить Lightning Network. Если им действительно удастся провести полномасштабное внедрение данной надстройки, это может дать тот самый толчок к более активному развитию экосистемы биткоина, который ему так необходим для становления глобальным платежным средством.
Источник