Как кошельки получают количество биткойнов

Мне всегда было интересно, как клиенты кошельков могут так быстро получать соответствующее количество биткойнов.

Если я хочу знать, сколько биткойнов у меня есть, я должен полностью разобрать всю цепочку блоков, чтобы прочитать все входящие и исходящие транзакции. Текущий размер составляет более 170 ГБ, не потребуются ли минуты (если не часы) для получения всех транзакций?

Но когда я использую, например, веб-кошелек, правильное количество биткойнов загружается мгновенно. Как это работает?

Спасибо

Ответы (2)

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

Вы анализируете блок-цепочку один раз и создаете набор неизрасходованных транзакций-выходов (UTXO), который представляет собой сопоставление между всеми неизрасходованными выходами и их балансом. Это около 2,5 ГБ по размеру и гораздо быстрее обрабатывается.

Причин как для мгновенных, так и для отсроченных платежей может быть несколько -

  1. Сборы. Отправитель мог бы заплатить хорошую комиссию за транзакцию, если бы ваш баланс был пополнен мгновенно.

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

  3. Инфраструктура кошелька. Многие кошельки используют локальную базу данных для мгновенной загрузки или запроса транзакций. Вам следует обратиться к кошелькам SPV . Кошельки SPV хранят не все данные блокчейна, а только релевантные данные, относящиеся к его собственным транзакциям. Только когда ему нужно отправлять транзакции, он связывается с полным узлом. Для получения биткойнов вам не нужно скачивать весь блокчейн.