Что же такое транзакция и как работают т.н. «биткоин-кошельки» (под этим термином будем подразумевать программное обеспечение, при помощи которого совершаются транзакции)? Попробуем разобраться…
Транзакция – это финансовая операция по передаче некоторого количества денег от отправителя к получателю. При этом и отправитель, и получатель должны иметь определенные адреса (метки), между которыми и происходит движение денег.
В этом смысле финансовая транзакция подобна почтовым отправлениям – отправитель со своего почтового адреса отправляет в конверте некую сумму денег на адрес получателя.
В банковских структурах финансовая транзакция называется денежным переводом. А адреса – банковскими счетами. Когда некое лицо хочет отправить определенную сумму денег другому лицу, оно обращается в банк с просьбой перевести эту сумму с его банковского счета на банковский счет получателя.
В протоколе Биткоина банковский счет аналогичен т.н. биткоин-адресу, который еще называют адресом кошелька. Формально это некая уникальная буквенно-цифровая строка, например: 12ctspmoULfwmeva9aZCmLFMkEssZ5CM3x.
Рассмотрим блокчейн Биткоина (гроссбух – ledger) и записи транзакций в нем. Представьте себе большую таблицу, в каждой строке которой содержатся следующие данные (поля):
– дата и время финансовой операции (перевода денег);
– биткоин-адрес кошелька отправителя;
– биткоин-адрес кошелька получателя;
– сумма перевода.
Это и есть запись транзакции.
.
Примечание:
Этот пример упрощен для понимания. На самом деле транзакции в блокчейне Биткоина записываются как Входы и Выходы (см. ниже).
Поскольку, как ранее было отмечено, в блокчейне хранятся абсолютно все транзакции, именно по ним можно не только отследить движение всех монет между биткоин-адресами, но и вычислить, сколько криптоденег находится в данный момент в любом кошельке по его адресу.
Как это происходит? Все транзакции с определенным биткоин-адресом можно условно разделить на две категории:
1. Входы – пополнения, когда данный адрес выступает в качестве получателя биткоинов.
2. Выходы – платежи, переводы и т.п., когда адрес выступает в качестве отправителя.
Разумеется, при входах баланс (суммарное количество расчетных единиц) биткоин-адреса увеличивается, а при выходах – уменьшается. Подсчитав все входы и выходы, можно узнать текущий баланс конкретного биткоин-адреса