Масса подписей в биткойнах: Почему некоторые UTXO подписать сложнее, чем другие

НовичокDec 27, 2023
В этой статье рассматривается использование UTXO (Unspent Transaction Output) и влияние размера подписи на комиссию за транзакции.
Масса подписей в биткойнах: Почему некоторые UTXO подписать сложнее, чем другие

Что такое подписная масса UTXO?

Хотя мы знаем, что подписание транзакций со слишком большим количеством UTXO может привести к сбоям в работе устройства, это общее утверждение все же оставляет некоторые вопросы: существует ли определенное количество UTXO, которое приведет к сбою аппаратного кошелька во время подписания? Могут ли определенные UTXO вызывать больше трудностей, чем другие?

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

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

Этот факт распространяется не только на типы адресов и многозначные кворумы; на подписание одного UTXO на многозначном адресе с 2 из 3 может уйти значительно больше усилий, чем на подписание другого UTXO на том же адресе (или эквивалентном адресе, даже если суммы биткоинов и адреса назначения абсолютно одинаковы).

Почему некоторые UTXO труднее подписать?

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

Проверки безопасности входного количества

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

Например, если у Вас были UTXO на общую сумму 0,8 BTC и Вы использовали их для отправки 0,3 BTC куда-либо, то если Вы не отправили оставшиеся ~0,5 BTC обратно себе в качестве сдачи, майнер блока теперь может потребовать эти 0,5 BTC в качестве части своих заработанных комиссионных.

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

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

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

Сложность транзакций из общих источников

Большинство людей получают биткоины на свой кошелек одним из трех способов: с биржи, от майнингового пула или напрямую от другого человека в одноранговой (P2P) транзакции. Пиринговые транзакции обычно содержат очень низкую сложность, и результирующие UTXO будут иметь относительно небольшую подписную массу.

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

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

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

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

Заметка о SegWit и уязвимости BIP 143

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

Однако в середине 2020 года была обнаружена уязвимость в BIP 143, что побудило многих производителей аппаратных кошельков вновь ввести проверку безопасности суммы ввода для SegWit-транзакций. На момент написания статьи проверка безопасности входного объема остается обычным процессом при подписании аппаратного кошелька. В сообществе ведутся дискуссии о будущих изменениях, которые могли бы более эффективно устранить необходимость в проверке безопасности вводимой суммы, например, сделать комиссионные явными в каждой транзакции, а не неявными.

Как подписная масса влияет на меня?

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

Предвидение и преодоление неудач при подписании документов

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

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

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

Масса подписей не влияет на комиссионные за транзакции

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

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

Отказ от ответственности:

  1. Эта статья перепечатана из[unchained]. Все авторские права принадлежат оригинальному автору[Тому Хонзику]. Если у Вас есть возражения против этой перепечатки, пожалуйста, свяжитесь с командой Gate Learn, и они незамедлительно рассмотрят их.
  2. Предупреждение об ответственности: Мнения и взгляды, выраженные в этой статье, принадлежат исключительно автору и не являются инвестиционным советом.
  3. Перевод статьи на другие языки осуществляется командой Gate Learn. Если не указано, копирование, распространение или плагиат переведенных статей запрещены.
Mulai Sekarang
Daftar dan dapatkan Voucher
$100
!
Buat Akun