A Ledger Live, a BRD és az Edge wallet is érintett volt egy most feltàrt biztonsági hibában. A bug miatt a “visszavont” bitcoin utalásokat beérkező tranzakcióként érzékelte a fogadó fél számlája. A Ledger és a BRD legfrissebb verziói már védenek az ilyen típusú visszaélések ellen.
A Bitcoin tranzakciók alapvetôen visszavonhatatlanok. Az általános szabály szerint ha legalább 6 confirmationnal (megerősítéssel) rendelkezünk, tehát ha a hozzánk beérkezô utalás adatait legalább 6 blokk tartalmazza, akkor már biztosak lehetünk benne, hogy az így küldött pénzt már nem tudják visszavenni tôlünk. 6 blokk megváltoztatásához akkora számítási kapacitásra lenne szükség, aminek biztosítása még a legnagyobb értékű tranzakciók esetében is gazdaságilag értelmetlenné tenne egy ezek visszafordítására tett kísérletet. Az, hogy hány confirmationnal rendelkezik egy tranzakció, a legtöbb tárcában és block explorerben nyomon követhetô.
A Bitcoin szoftverének 0.12-es verziójában került bevezetésre az RBF (replace by fee) funkció. Ez lehetővé teszi, hogy egy frissen indított tranzakció felülirható legyen egy másikkal. A küldő az eredeti utalást egy magasabb bányász költséggel elküldött, akár nulla BTC-s tranzakcióval is helyettesítheti, a bányászok pedig a magasabb fee miatt ezt, és nem az eredetit adják hozzá a blokklánchoz. Egy kevés bányászköltség megfizetésével tehát lényegében visszavonhatóvá váltak a frissen kiküldött utalások.
Az RBF támogatást sajnos több tárcaszolgáltató is hibásan építette be a saját szoftverébe. A Ledger, a BRD és az Edge wallet által alkalmazott megoldások nem megfelelően kezelték a felülírt tranzakciókat és mindig csak az eredetileg küldött összeget jelezték a fogadó tárcák számlaegyenlegén.
[banner id=”85812″ caption_position=”bottom” theme=”default_style” height=”auto” width=”auto” show_caption=”1″ show_cta_button=”1″ use_image_tag=”1″]
Ha valaki például megvásárolt volna egy terméket egy bitcoint elfogadó boltban, a fizetés végrehajtása során dönthetett volna úgy, hogy csak egy egészen minimális bányászköltséggel indítsa útjára a tranzakciót. Az alacsony fee miatt biztos lehetett volna benne, hogy az utalását még sokáig nem fogják jóváírni a bányászok, akik mindig a magasabb jutalékkal küldött tranzakciókat részesítik előnyben.
A boltos tárcája a programhiba miatt egyből beérkező utalásként könyvelte volna el ezt, az egyébként még meg nem erősített utalást, tehát az eladó abban a hiszemben lehetett volna, hogy az árucikket már kifizették. A vásárló eközben egy második, magasabb bányász illetékkel küldött, de valójában nullás tranzakcióval felülírhatta volna az eredeti utalását, vagyis a két tranzakciót láthatatlanul kicserélve, lényegében ingyen juthatott volna hozzá az adott termékhez (Double Spend).
Ugyanennek a hibának egy másik alkalmazása azt is lehetővé tette, hogy valaki mondjuk 50-szer elküldhesse ugyanazt a 10 dolláros tranzakciót, ami a fogadó fél oldalán látszólag 500 dollárként íródott volna jóvá (Amplified Spend).
A fenti tevékenységek a nyilvánvaló csaláson túl akár komolyabb problémákat is okozhattak volna egy fogadó fél számára, aki ha az el szerette volna költeni a tárcájában lévő állítólagos coinokat, kritikus hibaüzenetekkel találkozott volna. A bugot feltáró ZenGo szerint egyes walletek az első ilyen kiutalási kísérletet követően már nem is voltak képesek többször szinkronizálni magukat a blokklánccal és nem lehetett helyreállítani a működésüket sem (DOS: Denial of Service).
A ZenGo az iparági szokásoknak megfelelôen jelezte a problémákat az érintett tárcák fejlesztôi számára, majd 90 nappal késôbb nyilvánosságra hozta az ügyet. A tegnapi publikációig a Ledger és a BRD csapata már befoltozták ezt a biztonsági rést, az Edge fejlesztôi viszont még dolgoznak a hiba elhárításán.
[banner id=”77461″ caption_position=”bottom” theme=”default_style” height=”auto” width=”auto” show_caption=”1″ show_cta_button=”1″ use_image_tag=”1″]