Duży błąd w oprogramowaniu Bitcoin ujawniony 2 lata po naprawie

"Wysoki" błąd w oprogramowaniu Bitcoin ujawniony 2 lata po naprawie - błąd Bitcoin CorePoważny błąd w oprogramowaniu Bitcoin Core, z którym nie należy mylić System Bitcoin, mógłby pozwolić atakującym na kradzież funduszy, opóźnianie transakcji lub dzielenie większej sieci blockchain na sprzeczne wersje, gdyby nie zostało to potajemnie naprawione dwa lata temu.

Błąd w kodzie

Artykuł opublikowany w środę przez Braydona Fullera, inżyniera protokołu w sklepie kryptowalutowym Purse, i Javeda Khana, starszego programisty protokołu Handshake, mówią, że wykryli lukę w czerwcu 2018 roku.

Bugowi przypisano poziom istotności 7,8 w skali od 1 do 10, co jest uważane za „wysokie” (9 i więcej jest uważane za „krytyczne”). Problem był spowodowany tym, że „zdalne węzły” nie potrafiły usunąć nieprawidłowych transakcji z pamięci, powiedział Khan.

Brak anulowania takich transakcji może doprowadzić do ataku, który załaduje węzeł ofiary nieaktualnymi danymi w ramach tak zwanego „niekontrolowanego zużycia zasobów”, co ostatecznie spowoduje zamknięcie węzła, stwierdza dokument.

Rozwiązania warstwy 2 (L2), takie jak Lightning Network, eksperymentalny system płatności zbudowany na łańcuchu bloków Bitcoin, były zagrożone z powodu tego błędu. Z drugiej strony pełne węzły Bitcoin nie groziły utratą środków.

Nie ujawniono żadnych prób wykorzystania tego problemu, napisali Khan i Fuller. Luka nie została publicznie ujawniona od ponad dwóch lat, ponieważ operatorzy węzłów potrzebowali więcej czasu na aktualizację, niż oczekiwano, powiedział Fuller.

Chociaż błąd został naprawiony, jego ujawnienie podkreśla trudności w budowaniu globalnego standardu monetarnego w językach programowania stworzonych przez człowieka, nie wspominając o wysokich barierach technicznych w rozwoju największej kryptowaluty na świecie.

Problem w kodzie został wstawiony do Bitcoin Core w listopadzie 2017. Według dokumentu, około 50% węzłów Bitcoin w tym czasie było potencjalnie narażonych na atak. Poprzednie wersje Bitcoin Core nie miały tego typu problemów.

Nie tylko Bitcoin Core

Khan powiedział, że luka mogła pozwolić napastnikowi na kradzież funduszy z węzłów, które miały otwarte kanały na Lightning. Wersje Bitcoin Core 0.16.0 i 0.16.1 zostały przeanalizowane i poprawione przez programistę Matt Corallo po ujawnieniu przez Fullera zespołowi Core w lipcu 2018 r.

Bitcoin Core to referencyjna implementacja lub standardowa wersja oprogramowania sieciowego, z którego wywodzi się wiele innych. Zgodnie z dokumentem błąd mógł również dotyczyć kilku innych implementacji Bitcoina i jego pochodnych:

  • Węzły Bitcoin v0.16.0
  • Wszystkie wersje beta Bcoin do wersji 1.0.0-pre
  • Wszystkie wersje Btcd do v0.20.1-beta
  • Litecoin Core v0.16.0
  • Namecoin Core v0.16.1
  • Wszystkie wersje Dcrd do wersji 1.5.1.

Wszystkie te implementacje zostały załatane.