3. Транзакции

Наконец мы можем ввести понятие электронной монеты

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

Монета – это история ее переходов от одного владельца к другому

Баланс вашего кошелька не хранится в сети – он вычисляется из этой истории когда его необходимо узнать

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

Биткойн в транзакциях можно разделить на дробные части. Минимальная такая часть была названа «сатоши» в честь Сатоши Накамото. В одном Биткойне 100 000 000 сатоши.

 

Представим, что мы 2-ой владелец и хотим отправить транзакцию 3-му

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

Подписав транзакцию мы отправляем ее в сеть, где она ожидает подтверждения в структуре называемой mempool.

Но если мы получили несколько переводов, отправлять нужно тоже несколько?

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

У транзакций есть еще одна особенность: вся сумма со входов будет потрачена.

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

Но что делать, если субъект не хочет отправлять всю сумму?

Для этого у транзакции может быть несколько выходов. Часть денег отправим на нужный нам адрес, а «сдачу» – обратно себе.

Проблема двойной траты

Проблема, разумеется, в том, что получатель не может определить, сколько раз бывший владелец потратил эту монету. Традиционное решение заключается в проверке центральным доверенным лицом («монетным двором» или эмитентом) каждой транзакции.

Чтобы решить эту проблему будем считать, что первая отправленная транзакция и является правильной.

Для этого используется публичная сеть, в которой все участники определяют, какая транзакция пришла первой.