Egy kritikus hiba órákra lefagyasztotta a Bitcoin tranzakciókat a Lightning Networkön belül

Vasárnap késő este a fejlesztők egy kritikus érvényesítési hibát fedeztek fel az LND-n, a Bitcoin Lightning Network egyik népszerű implementációjában, amelyet a Lightning Labs fejleszt és támogat. Konkrétan, az LND Bitcoin teljes node  implementációjában, a BTCD-ben volt egy hiba a Taproot verziójában. (A BTCD a Bitcoin teljes node implementációja, amely népszerű a Lightning Network felhasználói körében.) A hiba az LND 0.15.1-es és régebbi verzióit érinti. Az LND arra kéri az összes felhasználókat, hogy frissítsenek a 0.15.2 verzióra.

Az LND hiba befolyásolta a Lightning csomópontok működését, és néhány órán keresztül megakadályozta, hogy az LND felhasználók a Layer-2-es Lightning Networkből a mainnet-re, Layer 1-es Bitcoinra lépjenek ki. Amíg a hiba nem volt megoldva, az LND-felhasználók nem tudtak új Lightning-csatornákat létrehozni vagy lezárni.

LND hiba

Egy nagyméretű multi-sig Taproot tranzakció leplezte le a hibát

A fejlesztők az LND hibát a Bitcoin Scripting Language, a Bitcoin egyik programozási nyelvének határait tesztelve fedezték fel. Egy rendkívül fejlett okos szerződést akartak tesztelni, amely számos fél általi társ-hitelesítést igényelt.

A teszt elvégzéséhez az egyik fejlesztő létrehozott egy nagy multi-sig Taproot tranzakciót. Ehhez 998 privát kulcsos aláírásra volt szükség a bitcoin küldésének hitelesítéséhez. Hogy ezt a 998-as számot kontextusba helyezzük, vegyük figyelembe, hogy a Lightning Network felhasználói jellemzően csak 2-2 multi-sig tranzakcióval nyitnak csatornát. Ezt a Taproot-tranzakciót a tesztnet blokkgyártói elfogadták. A tranzakciót később kibányászták egy mainnet Bitcoin blokkban. Ezután a tranzakció megtörte az LND-t.

Ez a hibás tranzakció így megzavarta az LND által használt azt a módszert, amely kiszámította, hogy mi volt a legutolsó Bitcoin-blokk. Konkrétan az LND a hibás könyvtára miatt nem tudott hozzáadni egy új blokkot. A hibanaplóban a következő üzenet jelent meg: “Unable to complete chain rescan. readScript. script witness item is larger than the max permitted size.”

A Lightning Labs csapata azonnal elkezdte az LND hiba javítását, és a javítás a 0.15.2 verzió kiadásával jelent meg.

Ez a hiba rávilágít a kereszt-implementációs watchtower szolgáltatások szükségességére

A hibaelhárítási folyamat után a fejlesztők ismét hangoztatták, hogy szükség lenne egy olyan watchtower (őrtorony) szolgáltatásra, amelyek figyeli a különféle implementációkat.

Ez a hiba most csak az LND-t érintette. Az LND a Lightning Network egyik népszerű implementációja, de léteznek más implementációk is, mint az Éclair és a Core Lightning.

A watchtower-ek olyan harmadik féltől származó szolgáltatások, amelyek felügyelik a nyilvánosan nyomonkövethető Bitcoin Lightning Network hálózatot. Egyúttal lehetővé teszik a felhasználók számára, hogy kártérítést kérjenek a hibás operációért. A watchtower-ek a Lightning összes implementációját figyelemmel tudnák kísérni, hogy megvédjék a felhasználókat bármelyik implementáció kiesése esetén.

Egy ilyen őrtorony, amely az összes implementációt (LND, Core Lightning, Éclair stb.) felügyeli, megvédhetné a felhasználót a hibák vagy hackelések során. Lehetővé téve számukra, hogy Justice Transaction-t tegyenek közzé, ha valaki megpróbálja ellopni a pénzüket a szolgáltatás kiesésekor. Ma már létezik néhány kisebb, implementációkon átívelő őrtorony, mint például az Eye of Satoshi, de ezeket nem használják még széles körben.