Bitcoin Forum
May 10, 2024, 11:38:09 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1]
1  Other / Archival / Is it possible to overfill a hardware wallet? on: November 09, 2023, 04:09:27 PM
Modern wallets work using HD wallet technology and for all Bitcoin-like coins they use the UTXO model, which allows you to constantly create new addresses for receiving coins.
When you connect your wallet, a request is made to the server, which checks the balances of all your used addresses and calculates your balance. The wallet also usually checks a certain number of unused addresses ahead for balance history; this parameter is called GAP Limit.
How GAP Limit works:
The blockchain contains records of public addresses and their balances. To display your account balance, the wallet checks your transaction history on the blockchain. Since accounts for Bitcoin and Bitcoin-based coins use multiple public addresses, the wallet only needs to look up the public addresses that are in use.
Public addresses are obtained from the account's extended public key (xpub) by incrementing the address index in the receiving path. Typically, wallet follow the BIP44 standard, which dictates that wallets look 20 addresses forward from the last address used. If you receive a transaction to the first address, the wallet will scan up to 21 addresses for transaction history. If nothing is found, the search will stop. If a payment was received at address 22, the wallet will not see it, since it stopped at address 21.
Now imagine the situation that you are a very active user and receive several dozen payments to new addresses per day and over the years, the server will have to scan tens of thousands of addresses every time you access it. What will happen in this case? Will the server throw an error or continue to endure the bullying of such users and sooner or later will it crash? But someone can create a dust attack on the received addresses; in this case, it will be enough to send dust to every 20th address in order not to exceed the GAP Limit. If you use many of these wallets, what will happen to the servers? What is your opinion on this matter?

Information about how GAP Limit works is taken from here:
https://support.ledger.com/hc/en-us/articles/360010892360-Address-gap-limit?docs=true
2  Other / Archival / Можно ли переполнить аппаратный кошелек? on: November 09, 2023, 10:14:10 AM
Современные кошельки работают по технологии HD wallet и для всех биткоин подобных монет используют модель UTXO, которая позволяет создавать постоянно новые адреса для получения монет.
При подключении кошелька дается запрос на сервер, который проверяет остатки всех ваших использованных адресов и подсчитывает ваш баланс. Так же сервер обычно проверяет некоторое количество не использованных адресов находящихся впереди на наличие истории балансов, этот параметр настраивается на сервере и называется GAP Limit.
Как работает GAP Limit:
Блокчейн содержит записи публичных адресов и их балансов. Чтобы отобразить баланс вашего счета, сервер проверяет историю ваших транзакций в блокчейне. Поскольку учетные записи для биткойнов и монет на основе биткойнов используют несколько публичных адресов, серверу необходимо искать только те публичные адреса, которые используются.
Публичные адреса получаются из расширенного открытого ключа учетной записи (xpub) путем увеличения индекса адреса в пути получения. Обычно сервера следуют стандарту BIP44, который предписывает, чтобы кошельки просматривали 20 адресов вперед от последнего использованного адреса. Если вы получили транзакцию на первый адрес, сервер просканирует включительно до 21 адреса на наличие истории транзакций. Если ничего не найдено, поиск прекратится. Если на адрес 22 был получен платеж то сервер не увидит его, поскольку он остановился на адресе 21.
Теперь представим ситуацию что вы очень активный пользователь и получаете по несколько десятков платежей на новые адреса в день, но теоретически можете получать платежи и на старые адреса, вам это никто не запрещает. С годами серверу прийдется сканировать десятки тысяч адресов при каждом вашем обращении. Что произойдет в таком случае? Сервер будет выдавать ошибку или продолжать терпеть издевательства таких пользователей и рано или поздно «ляжет»? А ведь кто нибудь может создать пылевую атаку на получаемые адреса, в данном случае пыль будет достаточно отправлять на каждый 20й адрес, чтобы не превышать GAP Limit. Если использовать много таких кошельков, что произойдет с серверами? Ваше мнение по этому поводу.
Pages: [1]
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!