Найти тему
Bitcoin Review

Биткоин за 5 минут: Кошельки и транзакции

Как это ни странно звучит, но «биткоин-кошельки» не содержат биткоинов!

Да-да! Именно так! Собственно биткоины, как монеты или деньги, существуют только в контексте протокола блокчейна Биткоина, а именно в виде записей транзакций в распределенной базе данных, которую еще называют ledger — бухгалтерская книга или гроссбух. Это база данных — блокчейн Биткоина — содержит записи абсолютно всех транзакций за всю историю со всеми существующими на данный момент биткоинами (монетами).

Что же такое транзакция и как работают т.н. «биткоин-кошельки»(под этим термином будем подразумевать программное обеспечение, при помощи которого совершаются транзакции)? Попробуем разобраться…

Транзакция — это финансовая операция по передаче некоторого количества денег от отправителя к получателю. При этом и отправитель и получатель должны иметь определенные адреса (метки), между которыми и происходит движение денег.

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

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

В протоколе биткоина банковсий счет аналогичен т.н. биткоин-адресу, которые еще называют адресом кошелька. Формально это некая уникальная буквенно-цифровая строка, например: 12ctspmoULfwmeva9aZCmLFMkEssZ5CM3x.

Но вернемся к блокчейну Биткоина (гроссбуху — ledger) и записи транзакций в нем.

Представьте себе большую таблицу, в каждой строке которой содержатся следующие данные (поля):

  • Дата и время финансовой операции (перевода денег).
  • Биткоин-адрес кошелька отправителя.
  • Биткоин-адрес кошелька получателя.
  • Сумма перевода.

Это и есть транзакция в блокчейне Биткоина.

Примечание: Этот пример упрощен для понимания. На самом деле транзакция в блокчейне Биткоина записывается как Входы и Выходы (см.ниже).

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

Как это присходит? Все транзакции с определенным биткоин-адресом можно условно разделить на две категории:

  • Входы — пополнения, когда данный адрес выступает в качестве получателя монет.
  • Выходы — платежи, переводы и т.п., когда адрес выступает в качестве отправителя.

Разумеется, при входах баланс (суммарное количество денег) биткоин-адреса увеличивается, а при выходах — уменьшается. Подсчитав все входы и выходы, можно узнать текущий баланс конкретного биткоин-адреса (кошелька).

Но, как владельцы этих адресов (кошельков) управляют своими деньгами? Как они совершают платежи и переводы?

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

Когда владелец соответствующего биткоин-адреса (кошелька) хочет перевести деньги (биткоины) на другой адрес, он дает соответствующее распоряжение в сеть Биткоина, подписанное электронно-цифровой подписью (ЭЦП), сформированной при помощи соответствующего приватного ключа от кошелька.

Собственно, эту операцию и совершают специальные компьютерные программы и приложения, называемые «биткоин-кошельками», такие как Bitcoin Core, Electrum или веб-приложение на сайте Blockchain.infoдр. Они также подсчитывают баланс биткоин-адреса (кошелька), отслеживая все входы и выходы по данному адресу и показывают все предыдущие транзакции по этому адресу.

Краткие итоги:

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

Примечание: О приватных ключах и ЭЦП читайте в моих статьях «Шифрование с открытым ключом: Наглядная иллюстрация» и «Электронная цифровая подпись: Просто и наглядно»

P.S. Этой статьей автор начинает цикл публикаций под общим названием «Биткоин за 5 минут» или «Биткоин для чайников», цель которых — просто, наглядно и понятно рассказать обо всех аспектах биткоина. Подписывайтесь и следите за публикациями!