MSTR Cat

Блокчейн/Уровень II · Механика/2.2 Транзакции/Урок 2

Входы и выходы

Анатомия транзакции: outpoint, скрипты и неявная комиссия

МатериалыОбозреватель блоков, например mempool.space или blockchain.comКалькулятор для сложения значений в сатоши

Любопытство

  1. Как транзакция доказывает, что имеет право потратить сумму, созданную другой транзакцией?
  2. Если отдельного поля для комиссии нет, как майнеры точно знают, сколько им платят?
  3. Почему первая транзакция в каждом блоке необычна по своей структуре?

Исследование

  1. Транзакция в Биткоине — это структура данных с номером версии и полем nLockTime, но её основу составляют входы и выходы. Вход не содержит ценности; он указывает на неё. Каждый вход ссылается на конкретный предыдущий выход с помощью outpoint: 32-байтного txid исходной транзакции и 4-байтного индекса, указывающего, какой именно выход этой транзакции тратится. Эта ссылка связывает транзакции в цепочку.
  2. Каждый вход также содержит данные для разблокировки и поле nSequence. Поле nSequence управляет временными блокировками и сигналами replace-by-fee. Данные для разблокировки, которые хранятся в scriptSig у legacy-транзакций или в секции witness у SegWit, дают криптографическое доказательство, необходимое для выполнения условий выхода, на который ссылается вход. Именно здесь находится подпись, созданная приватным ключом.
  3. Ценность хранится в выходах. Каждый выход задаёт сумму в сатоши в виде 8-байтного целого числа и скрипт блокировки (scriptPubKey), определяющий, кто сможет потратить её в дальнейшем. Одна транзакция может иметь несколько входов и выходов, но сумма входов должна быть не меньше суммы выходов.
  4. Комиссия нигде не хранится. Она вычисляется как разница между общей суммой, расходуемой входами, и общей суммой, создаваемой выходами. Этот остаток получает майнер, включивший транзакцию в блок. Если бы суммы были равны, комиссия была бы нулевой; если бы выходы превышали входы, транзакция была бы недействительной.
  5. Coinbase-транзакция — исключение, которое подтверждает правило. У неё есть один особый вход без предыдущего outpoint, который фактически создаёт новую ценность из ничего. Её выходы содержат субсидию за блок (сейчас 3,125 BTC) плюс все комиссии, собранные с других транзакций этого блока. Txid любой транзакции — это двойной хеш SHA-256 её сериализованных данных без учёта witness-данных.
  6. Откройте обозреватель блоков и найдите блок 170, добытый 12 января 2009 года. Помимо coinbase-транзакции, в нём есть одна транзакция: Сатоши Накамото отправляет 10 BTC Хэлу Финни. Её единственный вход тратит coinbase-выход блока 9 на 50 BTC. У неё два выхода: 10 BTC Финни и 40 BTC обратно Сатоши. И входы, и выходы в сумме составляют 50 BTC, поэтому комиссия равна нулю; ранние транзакции часто ничего не платили, потому что места в блоках было с избытком.

Ключевые факты

  • Вход ссылается на предыдущий выход через outpoint, состоящий из txid и индекса выхода.
  • Комиссия за транзакцию — это разница между суммой значений входов и суммой значений выходов.
  • Выходы содержат 8-байтное значение в сатоши и скрипт блокировки (scriptPubKey).
  • Входы содержат данные для разблокировки (подпись) и поле nSequence для временных блокировок или сигнализации RBF.
  • Coinbase-транзакция создаёт новые биткоины с помощью особого входа без предыдущего outpoint.
  • Txid — это двойной хеш SHA-256 сериализованной транзакции без учёта witness-данных.

Упражнение девять, шесть, три, один

9СобратьИзучите 9 недавних транзакций в обозревателе блоков. Для каждой запишите количество входов, количество выходов и комиссию в сатоши.
6СгруппироватьРаспределите эти 9 по 6 группам по структуре: один вход — один выход, один вход — два выхода, много входов — один выход (консолидация), один вход — много выходов (пакетный платёж), много входов — много выходов или другое.
3Выделить главноеСведите 6 групп к 3 причинам, по которым у транзакции бывает несколько входов или несколько выходов.
1КристаллизоватьНапишите 1 предложение о том, почему Биткоин может оставлять комиссию неявной, а не указывать её.

Проверка фактов

Даты, цифры и утверждения были проверены по приведенным ниже опубликованным источникам.

Открыть в интерактивной академии →

EN PT ES ZH JA KO DE FR MS