Как с технической точки зрения взимается плата за транзакции?

Типичная транзакция имеет один или несколько входов и один или несколько выходов. Поскольку для входов не указана сумма, по правилу всегда передаются ВСЕ входы. Любое несоответствие между значением, содержащимся на входах, и общим значением на выходе теряется навсегда.

Когда транзакция отправляется впервые, может быть несоответствие между значениями входов и выходов. Майнер, собирающий блок, может перенаправить эту неучтенную разницу на себя или на любой желаемый адрес, что называется «платой за транзакцию», однако мой вопрос заключается в том, как они это делают?

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

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

Ответы (2)

Типичная транзакция имеет один или несколько входов и один или несколько выходов. Поскольку для входов не указана сумма, по правилу всегда передаются ВСЕ входы. Любое несоответствие между значением, содержащимся на входах, и общим значением на выходе теряется навсегда.

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

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

Это невозможно. Майнеры не могут модифицировать транзакции.

Вместо этого существует просто правило, согласно которому транзакция coinbase (первая транзакция в каждом блоке, созданная майнером) может иметь выходы, суммарная сумма которых не превышает значения субсидии (в настоящее время 25 BTC, скоро 12,5 BTC) плюс сумма всех сборов других транзакций в блоке.

Любое несоответствие между значением, содержащимся на входах, и общим значением на выходе теряется навсегда.

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

Майнеры не могут изменять транзакции или добавлять выходные данные, поскольку это сделает подпись недействительной. Вместо этого они собирают комиссию за транзакцию в транзакции Coinbase .

Три соответствующих правила здесь таковы:

  1. Для обычной транзакции: Σ(inputs) ≥ Σ(outputs)
    разница может взиматься в качестве комиссии за транзакцию.
  2. Для транзакции coinbase: output ≤ block subsidy + transaction fees
    выход равен субсидии на блок и комиссиям, когда майнер получает их полностью.
  3. Для блока: Σ(inputs) + block subsidy ≥ Σ(outputs)
    Опять же, это равно, когда майнер получает максимально допустимое вознаграждение.