LDK 0.2.6 ištaiso „Lightning“ fondo nukreipimo ir paleidimo iš naujo klaidas
„Lightning Development Kit“ – įrankių rinkinys, skirtas „Bitcoin Lightning“ programoms kurti, rugsėjo 9 d. išleistas v0.2.6 su klaidų pataisymais, galinčiais nukreipti mažas mazgo lėšų sumas arba neleisti įkelti išsaugotos kanalo būsenos.
LDK supakuoja „Lightning“ diegimą kaip programinės įrangos kūrimo rinkinį, skirtą naudoti, įskaitant mobiliąsias pinigines ir mokėjimo paslaugų infrastruktūrą. Atnaujinimas suteikia kūrėjams, prižiūrintiems paveiktas programas, pataisymus dėl finansinės rizikos ir būklės, kuri gali sutrikdyti įprastą mazgo paleidimą iš naujo.
Sujungimas leidžia mazgui pridėti lėšų arba pašalinti lėšas iš esamo mokėjimo kanalo. LDK API dokumentacijoje tai apibūdinama kaip kanalo finansavimo išleidimas ir jo pakeitimas nauju. Praktiškai tai pakeičia kanalui skirtus pinigus per pakaitinio finansavimo sandorį.
Šio sandorio išlaidas dalijasi dalyviai. Iniciatyvinis mazgas moka mokesčius už nurodytas bendras dalis, kartu su savo įvestais ir išvestimis. Todėl mokesčio apskaičiavimas turi įtakos tam, kiek mazgo pinigų sumokama už operaciją.
Sujungimo trūkumas gali leisti kenkėjiškam partneriui paskirstyti perteklinius mokesčius, o perteklius patenka į tos partnerės išvestį. Leidime aprašoma nedidelė lėšų suma, kuriai kyla pavojus, kai mazgas inicijuoja sujungimą, nenurodant skaitinės ribos.
Atskiras saugumo trūkumas buvo susijęs su dviem mokėjimo sutartimis, turinčiomis tą pačią mokėjimo maišą. Sėkmingai persiuntus, gavus ir iš karto atmetus netikrą, „ChannelManager“ būsena gali likti nebegalima įkelti.
„ChannelManager“ yra LDK komponentas, skirtas tvarkyti kanalus ir mokėjimus. Iš naujo paleidus esamą mazgą, reikia nuskaityti jo išsaugotą būseną atgal į atmintį – procesas vadinamas deserializavimu. Jei ši išsaugota būsena atmetama įkeliant, programa negali užbaigti įprasto paleidimo iš naujo. Netikros mokėjimo atmetimas savaime neišvengia šios konkrečios nesėkmės.
Piniginės kūrėjams šios dvi pataisos skirtos skirtingoms mokėjimo paslaugos palaikymui: teisingai paskirstomos lėšos pasikeitus kanalui ir išlaikoma būsena, kurią galima įkelti po išjungimo.
LDK architektūros dokumentacijoje paaiškinama, kad jos pagrindinis diegimas yra sudarytas į programas. Kūrėjai pasirenka aplinkinius saugyklos, piniginės, tinklo ir blokų grandinės stebėjimo komponentus. Todėl pataisyto įrankių rinkinio įtraukimas į tas programas yra svarbus paveiktų integracijų priežiūros veiksmas.
Pranešime apie išleidimą nepranešama apie pastebėtus nuostolius ar išnaudotas programas. Jo aprašymas nustato pažeidžiamumą ir pataisymus, o ne išmatuotą naudotojų mokestį. Kai pasiekiama 0.2.6 versija, tiesioginė paveiktų programų komandų užduotis yra pataisyti savo naudojamą programinę įrangą.
