Bitcoin — ввод и вывод транзакций

0
372

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

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

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

Bitcoin - ввод и вывод транзакций

Вход

Ввода является ссылкой на выход из предыдущей операции. В транзакции часто указывается несколько входов. Все входные значения новой транзакции (то есть общая стоимость монет предыдущих выходов, на которые ссылаются входы новой транзакции) суммируются, и общая сумма (за вычетом комиссии за транзакцию) полностью используется выходами новой транзакции. сделка. Предыдущий tx — это хэш предыдущей транзакции. Индекс — это конкретный результат в указанной транзакции. ScriptSig — это первая половина скрипта (более подробно обсуждается позже).

Скрипт содержит два компонента: подпись и открытый ключ. Открытый ключ должен соответствовать хешу, указанному в сценарии погашенного вывода. Открытый ключ используется для проверки подписи искупителей, которая является вторым компонентом. Точнее, второй компонент — это подпись ECDSA над хешем упрощенной версии транзакции. Это в сочетании с открытым ключом доказывает, что транзакция была создана реальным владельцем рассматриваемых биткойнов. Различные флаги определяют, как упрощается транзакция, и могут использоваться для создания различных типов платежей.

Выход

Выход содержит инструкции по отправке биткойны. Стоимость — это количество сатоши (1 BTC = 100000000 сатоши), которое будет стоить этот вывод после востребования. ScriptPubKey — это вторая половина скрипта (обсуждается позже). Может быть более одного выхода, и они разделяют общую ценность входов. Поскольку на каждый выход одной транзакции можно ссылаться только один раз входом последующей транзакции, все объединенное входное значение должно быть отправлено на выходе, если вы не хотите его потерять. Если входная стоимость составляет 50 BTC, но вы хотите отправить только 25 BTC, Биткойн создаст два выхода стоимостью 25 BTC: один в пункт назначения, а другой обратно вам (известный как « изменение», хотя вы отправляете его себе). Любые входящие биткойны, не погашенные при выходе, считаются комиссией за транзакцию ; тот, кто генерирует блок, может потребовать его, вставив его в транзакцию coinbase этого блока.

A отправляет 100 BTC на C, а C генерирует 50 BTC. C отправляет 101 BTC D, и ему нужно отправить себе сдачу. D отправляет 101 BTC кому-то другому, но он еще не выкупил его. Только выход D и сдача C могут быть потрачены в текущем состоянии.

Проверка

Bitcoin - ввод и вывод транзакций

Чтобы убедиться, что входы авторизованы для сбора значений ссылочных выходов, Биткойн использует настраиваемую систему сценариев, подобную Forth . ScriptSig входного и в Реферировано scriptPubKey выходных в оцениваются (в указанном порядке), с scriptPubKey с использованием значений , оставшихся в стеке scriptSig. Ввод разрешен, если scriptPubKey возвращает true. Посредством системы сценариев отправитель может создавать очень сложные условия, которым должны соответствовать люди, чтобы заявить о ценности вывода. Например, можно создать вывод, который может быть востребован кем угодно без какого-либо разрешения. Также возможно потребовать, чтобы вход был подписан десятью разными ключами или мог быть погашен паролем вместо ключа.

Типы транзакций

Биткойн в настоящее время создает две разные пары scriptSig / scriptPubKey. Они описаны ниже.

Можно разработать более сложные типы транзакций и связать их вместе в криптографические соглашения. Они известны как контракты .

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