Как майнеры биткойнов проверяют двойные или чрезмерные траты?

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

Делать это для каждой биткойн-транзакции звучит ужасно неэффективно.

Как они на самом деле это делают?


person user2223142    schedule 24.05.2015    source источник


Ответы (1)


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

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

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

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

person Tom Harding    schedule 25.05.2015
comment
Большое спасибо Том. Смена точки зрения от адреса к результатам и ведение индекса неизрасходованных сумм - все это имеет смысл. - person user2223142; 26.05.2015
comment
Я все еще не понимаю вашего объяснения, вы можете дать мне еще один ресурс? Спасибо - person FDuldul; 28.04.2018
comment
Вы можете поискать на UTXO множество попыток интуитивного объяснения. Однако большинство из них делают вещи сложными. Попробуйте забыть о банковских счетах и ​​сосредоточиться на наличных деньгах. Когда вы тратите наличные, вы отдаете ФАКТИЧЕСКИЕ банкноты и монеты следующему парню. Это похоже на то, как работает биткойн, но чтобы потратить биткойн, вы всегда уничтожаете монеты, которые вам были даны ранее, и создаете новые, чтобы отдать их получателю. - person Tom Harding; 29.04.2018