Авторы: Эш Ли, Ноа Хо
С созданием протокола Ordinal, который обеспечивает возможность нумерации и записи биткойнов, он расширил спектр продуктов, доступных для экосистемы биткойнов, и привнес новую динамику в экосистему биткойнов. В этой статье мы углубимся в детали протокола Ordinal, в том числе в то, как каждый биткойн нумеруется и отслеживается, а также как надписи связаны с нумерацией. Но прежде чем мы углубимся в эту тему, нам нужно сначала понять некоторые базовые сведения о Биткойне, которые помогут нам лучше понять дальнейшее.
Прочитав эту статью, вы освоите механизм транзакций и модель оплаты Биткойн, поймете, как Ordinals реализует нумерацию и отслеживание каждого сатоши, а также как создаются и торгуются надписи. Кроме того, вы поймете различия между разными типами кошельков.
I. История Биткойна
Биткойн использует модель транзакций, подобную наличным, а его платежи основаны на модели под названием UTXO, которая отличается от традиционной модели, основанной на балансе счета. Например, в процессе модели бухгалтерского учета банковского счета, когда A переводит 100 долларов США B, банк записывает три шага, которые составляют процесс транзакции. Первым шагом является списание 100 долларов США со счета А, идентификатор записи для этого шага — tid1. Второй шаг — внести 100 долларов США на счет B, и идентификатор записи для этого шага — tid2. Третий шаг — записать запись о передаче, которая связывает tid1 с tid2, указывая, что счет A уменьшается на 100 долларов, а счет B увеличивается на 100 долларов. Таким образом, отношения передачи между A и B записываются и могут быть запрошены и прослежены в будущем. Теперь мы объясним, как осуществляются платежи в биткойнах, представив UTXO и модель оплаты.
УТХО
В блокчейне Биткойна все балансы хранятся в списке, который называется «Выход неизрасходованных транзакций» (UTXO). Каждый UTXO содержит определенное количество биткойнов, а также информацию о владельце этих биткойнов и указывает, доступны ли они. Думайте об этом как о денежном чеке, подписанном именем держателя, который можно передать другому лицу для использования, если владелец его подпишет. Для данного адреса все суммы UTXO складываются в баланс кошелька по этому адресу. Пройдя все UTXO, мы можем получить текущий баланс для каждого адреса. Если сложить все суммы UTXO, получится полное количество биткойнов, находящихся в настоящее время в обращении.
В структуре транзакции Биткойна каждая транзакция состоит из нескольких входов и выходов, где каждый вход представляет собой ссылку на существующий UTXO, а каждый выход указывает новый адрес, по которому будут получены средства, и соответствующую сумму. После инициации транзакции UTXO, указанный в ее секции ввода, временно блокируется, чтобы предотвратить повторное использование до завершения транзакции. Только когда эта транзакция успешно упакована майнером в блок и подтверждена сетью, соответствующий статус UTXO меняется. В частности, UTXO, используемые в качестве входных данных для транзакции, удаляются из списка UTXO, что указывает на то, что они были израсходованы, в то время как на выходе транзакции создаются новые UTXO, которые добавляются в список UTXO. Можно понять, что старые денежные чеки используются, а затем истекают, создавая новые денежные чеки, право собственности на которые принадлежит новому держателю.
Стоит подчеркнуть, что каждый UTXO можно использовать только один раз в одной транзакции. Как только он используется в качестве входных данных, он навсегда удаляется из списка UTXO. В то же время вновь сгенерированный вывод добавляется в список как новый UTXO. список UTXO постоянно меняется, и по мере создания каждого нового блока он соответствующим образом обновляется. И, анализируя историю транзакций в блокчейне, мы можем восстановить состояние списка UTXO в любой момент времени.
Кроме того, общая входная сумма транзакции обычно немного превышает ее общую выходную сумму. Эта разница, называемая комиссией за транзакцию или сетевой комиссией, предоставляется в качестве стимула для майнеров, ответственных за упаковку транзакций в блоки. Размер сетевой комиссии пропорционален сложности транзакции, поэтому транзакция, содержащая больше входов и выходов, обычно требует более высокой сетевой комиссии.
Теперь, чтобы более наглядно понять структуру транзакций Биткойн, мы рассмотрим конкретный пример. Структура транзакции Биткойн следующая: переменные vin и vout представляют «вход» и «выход» транзакции Биткойн соответственно. Биткойн-транзакции не представлены входами и выходами, в отличие от традиционных моделей баланса счетов, которые фиксируют изменения данных в форме счета.

Мы можем выбрать случайную запись транзакции на сайте Blockchain.com для анализа. На рисунке ниже показана транзакция с хэш-идентификатором 0627052b6f28912f2703066a912ea577f2ce4da4caa5a5fbd8a57286c345c2f2. Он содержит один вход и два выхода.

Используя команды bitcoin-cli getrawtransaction и decoderawtransaction, мы можем увидеть базовую структуру вышеупомянутых транзакций:

В сети Биткойн выходные данные транзакции содержат две важные части информации: адрес (хэш открытого ключа) и сумму (в биткойнах). Если выход транзакции не используется при входе других транзакций, то этот выход транзакции называется неизрасходованным выходом транзакции (UTXO). Тот, у кого есть закрытый ключ, соответствующий открытому ключу в UTXO, имеет право использовать или тратить этот UTXO.
Давайте посмотрим на информацию в «vin» в приведенном выше коде, которая указывает на то, что UTXO, потраченные на эту транзакцию, поступили из другой транзакции (с идентификатором 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18) 0-го выхода (выходов транзакции может быть более одного, индекс нумеруется от 0), мы можем найти сумму этого UTXO из истории транзакций (например, 0,1), поэтому это значение 0,1 не нужно явно прописывать в транзакции, оно получается поиском вверх информация UTXO. «vout» этой транзакции имеет два выхода, которые представляют собой два новых UTXO, соответствующих новому балансу и держателю, пока другая транзакция не использует их в качестве входных данных.
Модель оплаты
Чтобы лучше понять модель оплаты сети Биткойн, мы представляем пример процесса оплаты для платежа от А к Б в размере n биткойнов. На следующей диаграмме показан процесс отправки 3 биткойнов от пользователя А пользователю Б.

Для пользователя А сначала необходимо определить набор всех принадлежащих ему UTXO, т. е. всех биткойнов, находящихся в распоряжении пользователя А;
А выбирает один или несколько UTXO из этого набора в качестве входных данных для транзакции, и сумма этих входных данных равна m(2+0,8+0,5=3,3 BTC) и должна быть больше, чем сумма, подлежащая выплате, n(3 BTC);
Пользователь A устанавливает два выхода для транзакции: один выход для выплаты на адрес B в размере n(3 BTC), а другой выход для выплаты на один из собственных адресов сдачи A в размере m-n-fee(3.3-3- 0,001=0,299 BTC). (б) Кошелек пользователя обычно состоит из нескольких адресов, каждый из которых обычно используется только один раз, а сдача по умолчанию возвращается на новый адрес;
Ожидая, пока майнер упакует эту транзакцию в цепочку для подтверждения, B может получить информацию об этой транзакции. Поскольку размер блока имеет верхний предел (около 1 МБ), майнеры будут отдавать приоритет подтверждению транзакций с высокой скоростью транзакций (fee_rate=fee/size), чтобы получить максимальную комиссию. Мы можем увидеть комиссию за транзакцию майнинга в реальном времени в mempool. Если нам нужно максимально быстрое подтверждение в процессе перевода, мы можем выбрать «Высокий приоритет» или настроить подходящую ставку комиссии за транзакцию.

II. Нумерация и отслеживание Сатоши
Общее количество биткойнов составляет 21 миллион, и каждый биткойн содержит 10^8 сатоши (Сат). Таким образом, в сети Биткойн имеется 21 миллион * 10^8 сатоши. Протокол Ordinals различает эти сатоши путем уникальной нумерации каждого из них. В этом разделе описывается, как протокол это делает и как он отслеживает учетные записи, в которых находится каждый сатоши. Кроме того, будет описана классификация редкости сатоши.
Нумерация Сатоши
Согласно протоколу Ordinals, сатоши нумеруются в соответствии с порядком их добычи. На следующем рисунке показано представление 0-го сатоши, добытого из 0-го блока.

Существуют различные представления порядковых чисел: (https://docs.ordinals.com/overview.html).
Обозначение целого числа: [2099994106992659]() Порядковый номер, присваиваемый в соответствии с порядком добычи сатоши.
Десятичная запись: [3891094.16797]() Первое число — это высота блока, в котором были добыты сатоши, второе — смещение сатоши внутри блока.
Обозначение степени: [3°111094′214″16797‴](). Первое число — это цикл, нумерация которого начинается с 0, второе — это индекс блока в эпоху халвинга, третье число — это индекс блока в периоде корректировки сложности, а последнее число — это индекс сата в блоке.
Обозначение процентиля: [99,99971949060254%]() . Позиция сатоши в предложении Биткойна, выраженная в процентах.
Имя: [сатоши](). Кодирование порядкового номера с использованием символов от a до z.
Мы рассмотрим пример того, как нумеровать вновь добытые биткойны. Глядя на блок 795952 блокчейна биткойнов, мы видим, что первая из этих транзакций, Tx 3a1f...b177, записывает вознаграждение майнера (транзакцию coinbase). Эта транзакция содержит недавно добытые биткойны, которые используются в качестве вознаграждения для майнера, а также комиссию, выплачиваемую майнеру инициатором транзакции. Глядя на входные данные диаграммы ниже, мы видим, что его идентификатор UTXO состоит из строки нулей и высоты блока. Выходной адрес — это адрес кошелька майнера, а сумма — это сумма вознаграждений и комиссий, упомянутых выше.

Если дальше посмотреть раздел вывода майнерам, то можно увидеть распределение адресов, сумм и содержащихся сатоши. Как упоминалось ранее, они содержат вознаграждения и комиссии за майнинг. Из них зеленая информация о номере сатоши 1941220000000000–1941220625000000 представляет собой новые сатоши, сгенерированные в результате вознаграждения за майнинг, а остальные 712 записей сатоши соответствуют всем комиссиям в блоке.

Мы можем проверить число Sat 1941220000000000. Его номер блока — 795952, а десятичная дробь — 795952.0, что означает, что высота блока для добычи этого сатоши равна 795952, а номер сатоши в этом блоке равен 0, за которым следует знак редкости для необычного, который мы опишем подробно в более поздней части.

Поток Сатоши
Поскольку каждый BTC генерируется за счет вознаграждений за майнинг, их все можно отследить. Биткойн-счета используют модель UTXO. Предположим, что пользователь А получил путем майнинга 100-110 сатоши (10 сатоши хранятся целиком в одном UTXO с идентификатором adc123). Когда пользователь А хочет заплатить пользователю Б 5 сатоши, он выбирает использовать идентификатор abc123 в качестве входных данных транзакции, где 5 сатоши передаются пользователю Б, а 5 сатоши возвращаются пользователю А в качестве сдачи. обе копии 5 сатоши хранятся целиком в двух UTXO с идентификаторами abc456 и abc789 соответственно. Вышеупомянутые идентификаторы UTXO и количество сатоши показаны только в качестве примера. На практике минимальное количество составляет 546 сат, и идентификаторы UTXO не выражаются в этой форме.

В приведенной выше транзакции путь потока 10 сатоши пользователя А равен
майнинг генерирует 10 сатоши с числом [100, 110). Это означает, что сатоши с номерами от 100 до 109 хранятся в UTXO с идентификатором abc123 и его владельцем является пользователь А.
Когда А осуществляет перевод, 10 сатоши делятся на две части, по 5 сатоши в каждой. Здесь используется принцип «первым пришел — первым обслужен», то есть нумерация сатоши определяется их индексом в выводе транзакции. Предполагая, что вывод осуществляется в следующем порядке: «Пользователь А», а затем «Пользователь Б», тогда оставшиеся 5 сатоши пользователя А пронумерованы [100, 105) и сохранены в UTXO с идентификатором abc456, а 5 сатоши пользователя Б пронумерованы [105]. , 110) и хранится в UTXO с идентификатором abc789.
Редкие Сатоши
В качестве производной версии протокола Ordinals редкость сатоши можно определить на основе порядка, в котором они добываются. Это приведет к тому, что некоторые особые сатоши будут иметь разную редкость. Ниже приведены уровни редкости различных сатоши:
общий: любой спутник, не являющийся первым в своем блоке (Общий запас: 2,1 квадриллиона).
необычно: первый сат каждого блока (общее количество: 6 929 999)
редко: первый сат каждого периода корректировки сложности (общее количество: 3437).
эпический: первый сат каждой эпохи сокращения пополам (общее количество: 32)
легендарный: Первая суббота каждого цикла (Общий запас: 5)
мифический: Первый сат блока генезиса (Общий запас: 1)
Эта концепция редких сатоши может повысить интерес и ценность экосистемы биткойнов. Сатоши разной редкости могут иметь разную ценность на рынке, привлекая коллекционеров и инвесторов.
III. Метод надписи
Ordinals значительно отличается от других NFT в цепочках, не связанных с биткойнами. Одним из основных отличий является то, что метаданные Ordinals не хранятся в определенном месте. Вместо этого метаданные встроены в данные-свидетели транзакции, поэтому мы называем это «надписью», потому что они «выгравированы», как надпись, на определенной части транзакции биткойнов. Данные привязаны к конкретному сатоши. Этот процесс записи реализуется через Segregated Witness (SegWitness) и Pay-to-Taproot (P2TR), который состоит из двух этапов: фиксации и раскрытия. На указанный сатоши можно вписать любой вид контента (например, текст, изображение или видео). Ниже мы представим еще один, более прямой метод хранения, OP_RETURN, и объясним, почему он не используется в качестве средства записи. Также мы опишем, что такое изолированный свидетель и Pay-to-Taproot и какую роль они играют в записи. Наконец, мы представим способ надписей.
ON_RETURN
В клиенте Bitcoin Core версии 0.9 компромисс наконец был достигнут за счет использования оператора RETURN. RETURN позволяет разработчикам добавлять 80 байт данных о неплатеже к выводу транзакции. В отличие от псевдоплатежей, RETURN создает явно проверяемый непотребляемый вывод; такие данные не обязательно хранить в наборе UTXO. Выходные данные RETURN записываются в блокчейн, они занимают дисковое пространство и приводят к увеличению размера блокчейна, но они не сохраняются в наборе UTXO и, следовательно, не увеличивают пул памяти UTXO и не увеличивают дорогостоящую стоимость памяти для полный узел.
Хотя OP_RETURN — это очень простой способ хранения информации в блокчейне Биткойна, он также является потенциальным средством записи. Однако ограничения OP_RETURN создают некоторые проблемы при работе с хранилищем метаданных. Во-первых, OP_RETURN может хранить только 80 байт данных — ограничение, которое явно не соблюдается в случаях, когда необходимо хранить большие объемы данных. Во-вторых, данные OP_RETURN хранятся в секции вывода транзакции, и хотя такие данные не хранятся в наборе UTXO, они занимают место для хранения в блокчейне, что приводит к увеличению размера блокчейна. Наконец, использование OP_RETURN приводит к увеличению комиссий за транзакции, поскольку для публикации этих транзакций требуется платить больше комиссий.
Отдельный свидетель
Напротив, SegWit предлагает новый подход, который решает эти проблемы. SegWit — это крупное обновление протокола Биткойн, предложенное Питером Вуилле, основным разработчиком Биткойна, в 2015 году и, наконец, официально принятое в версии 0.16.0 в 2017 году. «Сегрегация» в «Segregated Witness» означает «отделенный, изолированный», а «Witness» — это подписанная вещь, связанная с транзакция. Таким образом, SegWit — это отделение определенных данных подписи транзакции (данных-свидетелей) от транзакции.
Основное преимущество отделения подписи от данных, связанных с транзакциями, заключается в том, что это уменьшает размер данных, хранящихся в блоке биткойнов. Это дает каждому блоку дополнительную емкость для хранения большего количества транзакций и означает, что сеть может обрабатывать больше транзакций, а отправитель платит меньшие комиссии. С технической точки зрения это означает удаление информации scriptSig из базового блока и помещение ее в новую структуру данных. Обновление Segwit представляет новое поле-свидетель в выходных данных транзакции для обеспечения конфиденциальности и производительности. Хотя данные-свидетели не предназначены для хранения данных, они фактически дают нам возможность хранить такой контент, как метаданные надписей. Давайте разберемся с раздельным свидетельствованием более графически с помощью следующей диаграммы:



стержневой корень
P2TR — это тип вывода транзакций Биткойна, который был представлен в обновлении Taproot, произошедшем в 2021 году, что позволяет хранить различные условия транзакций в блокчейне более конфиденциальным образом. P2TR играет решающую роль в надписях Ординалов. Надписи, по сути, встраивают определенный контент данных в транзакции Биткойн, а обновление Taproot, и в частности P2TR, делает эти встроенные данные более гибкими и экономичными.
Во-первых, благодаря способу хранения сценариев Taproot мы можем хранить содержимое записей в сценариях расходования путей сценариев Taproot, которые практически не ограничены с точки зрения контента, при этом получая при этом скидку на данные-свидетели, что делает хранение содержимого записей относительно экономичным. Поскольку сценарии Taproot можно использовать только из уже существующих выходных данных Taproot, записи отправляются/раскрываются с использованием двухэтапного процесса отправки/раскрытия. Сначала в транзакции отправки создается вывод Taproot, который обещает сценарий, содержащий содержимое надписи. Затем в транзакции раскрытия потребляются выходные данные, созданные транзакцией отправки, тем самым раскрывая содержимое надписи в цепочке.
Такой подход существенно снижает потребление ресурсов. Если P2TR не используется, информация-свидетель сохраняется в выходных данных транзакции. Таким образом, пока этот вывод не используется, информация-свидетель будет храниться в наборе UTXO. Напротив, если используется P2TR, информация-свидетель не отображается в транзакциях, генерируемых на этапе фиксации, поэтому она не записывается в набор UTXO. Только когда этот UTXO используется, информация-свидетель появляется во входных данных транзакции на этапе раскрытия. p2tr позволяет записывать метаданные в блокчейн биткойнов, но никогда не появляется в наборе UTXO. Поскольку поддержание/изменение набора UTXO требует больше ресурсов, этот подход экономит много ресурсов.
Надписи
Протокол Ordinals использует преимущества SegWit, ослабляющие ограничения размера при записи содержимого сети Биткойн, сохраняя содержимое записи в данных-свидетелях. Taproot упрощает хранение произвольных данных-свидетелей в биткойн-транзакциях, позволяя разработчику Ordinals Кейси Родармору повторно использовать старые коды операций (OP_FALSE, OP_IF, OP_PUSH) для того, что он называет «конвертами», для хранения произвольных данных для так называемых «надписей».
Процесс отливки надписи состоит из следующих двух этапов:
Сначала необходимо создать вывод Commit-to-Taproot скрипта, содержащий содержимое надписи в отправленной транзакции. Сохраняемый формат — Taproot, т. е. выход предыдущей транзакции — P2TR (Pay-To-Taproot), а вход последней транзакции — с определенным форматом, встроенным в засвидетельствованный скрипт Taproot; сначала строка ord помещается в стек, чтобы исключить возможность использования надписи в других целях. OP_PUSH 1 указывает, что следующая передача данных содержит тип контента, а OP_PUSH 0 указывает, что последующие отправки данных содержат сам контент. Большие записи должны использовать несколько отправок данных, поскольку одно из немногих ограничений Taproot состоит в том, что отдельные отправки данных не должны превышать 520 байт. На этом этапе данные для надписи уже соответствуют UTXO вывода транзакции, но не публикуются.

Текстовая надпись, содержащая строку «Привет, мир!» сериализуется, как указано выше Во-вторых, необходимо использовать выходные данные, созданные при отправке транзакции в раскрывающую транзакцию. На этом этапе транзакция инициируется путем принятия в качестве входных данных UTXO, соответствующего этой записи. В этот момент содержание соответствующей надписи раскрывается всей сети.
С помощью двух шагов, описанных выше, содержимое записи было привязано к записываемому UTXO. Опять же, согласно описанному выше расположению сатоши, надпись делается на первом сатоши, соответствующем его входному UTXO, и содержимое надписи включается во входные данные, показывающие транзакцию. Согласно описанному выше введению в поток и отслеживанию сатоши, эти сатоши, на которых записано специальное содержание, можно передавать, покупать, продавать, терять и восстанавливать. Следует отметить, что надписи не могут повторяться, иначе более поздние надписи недействительны.
Мы подробно проиллюстрируем этот процесс, написав пример небольшого образа BTC NFT, который состоит из двух основных этапов, упомянутых ранее: фиксации и раскрытия. Во-первых, мы видим, что хэш-идентификатор первой транзакции — 2ddf9...f585c. Можно отметить, что выходные данные этой транзакции не содержат данных-свидетелей и на веб-странице нет соответствующей надписи.

Далее мы смотрим на второй этап записи, чей Hash ID равен e7454...7c0e1. Здесь мы можем увидеть информацию порядковой надписи, которая является содержанием свидетельской надписи. Входной адрес этой транзакции является выходным адресом предыдущей, а выход 0,00000546BTC (546 сатоши) отправляет этот NFT на его собственный адрес. Также мы можем найти сатоши, где находится эта надпись: Sat 1893640468329373.


В биткойн-кошельке мы видим этот актив. Если мы хотим торговать этим NFT, мы можем отправить его напрямую на чужой адрес, что означает отправку этого UTXO, что завершает поток надписей.

IV. Биткойн-кошелек
После того, как мы поймем, что такое ординалы, поток сатоши и знания о надписях, в настоящее время появляется множество сценариев применения, будь то BRC-20, ORC-20, BRC-721, GBRC-721 и другие связанные производные протоколы, которые требуют от нас наличия соответствующих кошельков для поддержки и отображения информации о токенах или небольших изображений NFT. В этом разделе мы познакомим вас с концепцией и характеристиками различных адресов биткойн-кошельков.
Биткойн-адреса начинаются с 1, 3 или bc1. Как и адреса электронной почты, ими можно поделиться с другими пользователями Биткойнов, которые смогут использовать их для отправки биткойнов непосредственно в свои кошельки. С точки зрения безопасности биткойн-адрес не имеет конфиденциального контента. Его можно опубликовать где угодно без ущерба для безопасности аккаунта. В отличие от адресов электронной почты, мы можем создавать новые адреса так часто, как это необходимо, и каждый из них будет переводить средства непосредственно в ваш кошелек. Фактически, многие современные кошельки автоматически создают новый адрес для каждой транзакции для максимальной конфиденциальности. Кошелек — это просто набор адресов и ключей для разблокировки находящихся в них средств. Сначала нам нужно знать, как создаются адреса биткойн-кошельков.
Частные и открытые ключи Биткойна
Биткойн использует эллиптическую кривую Secp256k1, где «закрытый ключ» представляет собой случайное число от 1 до n-1, где n — очень большое число (256 бит), а n выражается в научной записи примерно как: 1,15792*10^77. .
Диапазон настолько велик, что угадать чей-либо закрытый ключ практически невозможно. Этот случайный целочисленный закрытый ключ может быть представлен 256 битами, и существует множество способов его кодирования. Если закрытый ключ в WIF, сжатой WIF форме, не зашифрован, его можно декодировать, чтобы получить исходное «случайное целое число». Другой способ — BIP38, который предлагает шифровать закрытый ключ с помощью алгоритма AES. Закрытый ключ, полученный по этой схеме, начинается с символа 6P, и этот закрытый ключ необходимо ввести в качестве пароля для импорта в различные биткойн-кошельки, который является закрытым ключом, который мы обычно используем.
Затем мы воспользуемся формулой эллиптической кривой K = kG, чтобы сгенерировать открытый ключ K Биткойна из закрытого ключа k. G — базовая точка, которая является параметром secp256k1. Две координаты K представляют собой два выражения открытого ключа: «Несжатый формат» и «Сжатый формат».

Несжатый, представляющий собой прямое объединение двух координат x и y, которым предшествует префикс 0x04;
Сжатая форма, которая кодируется как 02 x, если y четный, и 03 x, если y нечетный;
Биткойн-адреса
Различные типы биткойн-адресов можно показать на следующей диаграмме с четырьмя представлениями:

Устаревший формат (P2PKH)
Пример: 1Fh7ajXabJBpZPZw8bjD3QU4CuQ3pRty9u
Адрес начинается с «1» и является исходным форматом адреса для Биткойна, который используется до сих пор. Он также известен как P2PKH, что означает Pay To PubKey Hash, и получается путем вычисления открытого ключа через хэш.
Формат вложенного SegWit (P2SH)
Пример: 3KF9nXowQ4asSGxRRzeiTpDjMuwM2nypAN
Вложенный P2SH, который берет существующий адрес P2SH (начиная с «3») и оборачивает его адресом SegWit.
Собственный формат SegWit (Bech32)
Пример: bc1qf3uwcxaz779nxedw0wry89v9cjh9w2xylnmqc3
Адреса, начинающиеся с bc1, предлагаются в BIP0173 и являются собственными адресами изолированного свидетеля. Адреса в кодировке bech32 — формат адреса, разработанный специально для SegWit. bech32 был определен в BIP173 в конце 2017 года, и одна из основных особенностей формата. Одна из основных особенностей заключается в том, что он нечувствителен к регистру (в адрес включены только 0–9, az), что позволяет эффективно избегать путаница и более читабельна при вводе. Поскольку в адресе требуется меньше символов, адрес кодируется с использованием Base32 вместо традиционного Base58, что делает вычисления проще и эффективнее. Данные могут храниться более плотно в QR-коде. bech32 обеспечивает более высокий уровень безопасности, лучшую оптимизацию контрольной суммы и кодов обнаружения ошибок, а также сводит к минимуму вероятность получения неверных адресов.
Сами адреса Bech32 совместимы с SegWit. Для помещения адресов SegWit в адреса P2SH не требуется дополнительного места, поэтому при использовании адресов формата Bech32 плата за них ниже. Адреса Bech32 имеют несколько преимуществ перед более старыми адресами Base58 (кодировка Base58Check используется для кодирования массивов байтов в Биткойне в строки, кодируемые человеком): меньшие QR-коды; лучшая защита от ошибок; более безопасный; не чувствителен к регистру; и состоит только из строчных букв, поэтому его легче читать, печатать и понимать.
Формат стержневого корня (P2TR)
У Bech32 есть недостаток: если последний символ адреса — p, то вставка или удаление любого количества символов q непосредственно перед p не приведет к аннулированию его контрольной суммы.
Чтобы смягчить этот недостаток Bech32, в BIP0350 предложен адрес Bech32m:
Для собственного изолированного адреса-свидетеля версии 0 используйте предыдущий адрес Bech32;
Для собственного изолированного адреса-свидетеля версии 1 (или выше) используется новый Bech32m.
Адреса Bech32m всегда начинаются с bc1p (т. е. адреса Taproot), когда используется версия 1. В частности, как и локальный изолированный свидетель, кошелек может состоять из исходной фразы и криптографической фразы. Они используются для генерации расширенных открытых и закрытых ключей, которые используются для получения произвольных адресов путей в иерархическом детерминированном кошельке. Основная цель — хранить BRC-20, а также NFT для BTC и т. д.
В. О нас
Spectrum Labs — это команда магистров и докторов наук, занимающихся исследованиями блокчейнов, а также ветеранов индустрии блокчейнов. Мы специализируемся на технологии блокчейн-исследований и ее приложениях, чтобы помочь людям лучше понять блокчейн. Основная деятельность Spectrum Labs включает написание исследовательских отчетов, разработку учебных программ и разработку инструментов.
Китайское сообщество BTC NFT (中文社区) — это китайская коммуникационная площадка BTC NFT для новичков в глобальном китайском сообществе.
