
Jak bylo tento týden oznámeno, adresa spojená s využíváním FTX přesouvá finanční prostředky prostřednictvím řady projektů napříč řetězci.
Zatímco většina prostředků prošla přes Thorchain, některé z nich byly směrovány přes tBTC. Během tohoto procesu byly odhaleny dvě chyby.
Ani jedna chyba neohrožuje prostředky uživatelů. První byla opravena a vydána včera, zatímco druhá vyžaduje diskuzi komunity a konsensus.
První chyba — vektor odmítnutí služby
V sobotu 30. září požádala adresa spojená s FTX o vyplacení 76,81431578 BTC.
V tBTC dnes může o odkupy požádat každý uživatel se zůstatkem L1 tBTC. Po nějaké době, off-chain správce delegovaný Threshold DAO v
Koordinátor peněženky
smlouva ověřuje žádost o zpětný odkup a vyzývá podepsané osoby, aby považovali žádost o odkup za platnou. Pokud 51 ze 100 signatářů konkrétní peněženky souhlasí, společně podepíší a uvolní tyto prostředky na bitcoinovém blockchainu.
Po nějaké době byla tato žádost o odkup schválena správcem odkupů. Nejméně 51 signatářů v přidružené peněžence souhlasilo a vyplacení bylo dokončeno.
O 9 hodin později jiná adresa spojená s využíváním FTX požádala o další vyplacení — tentokrát za 76,62186419 BTC.
Krátce nato se stalo něco neuvěřitelného.
Neznámá třetí strana odeslala transakce BTC do dvou peněženek za tBTC.
Nyní se to děje neustále – tBTC se koneckonců razí uložením BTC. Ale namísto normální vkladové transakce byly tyto transakce vytvořeny ručně takovým způsobem, že klienti podepisující tBTC si mysleli, že peněženky jsou „zaneprázdněny“ přesuny prostředků a nejsou schopny obsluhovat požadavky na vyplacení. Správce schválení čekal, až peněženky přestanou být „zaneprázdněné“ – což se nikdy nestalo.
Ve skutečnosti tyto transakce BTC zablokovaly všechny zbývající odkupy tBTC.
Nevíme, kdo tyto transakce odeslal. Ale ať už to byli kdokoli, věděli dost na to, aby násilně pozastavili most tBTC, spálili v tomto procesu jednoduchý 0denní exploit a zabránili schválení druhého odkupu spojeného s FTX.
Tohle je pro mě novinka. Žádné bílé klobouky se nevztáhly, nikdo nenabídl žádné vysvětlení – ale načasování je neuvěřitelné.
V tomto okamžiku křičely výstražné a monitorovací systémy používané přispěvateli napříč DAO. Vývojářský tým Keep začal o víkendu připravovat opravu, která opraví odmítnutí služby.
Tehdy jsme také pochopili, že jeden z blokovaných výkupů byl spojen s FTX.
Druhá chyba — chyba v návrhu mechanismu vyplácení
Druhá chyba se ukázala, když jsme připravovali první patch.
Threshold DAO může delegovat více adres schvalovatelů v
Koordinátor peněženky
smlouva.
Bohužel k dnešnímu dni existuje pouze jedna delegace na jednu adresu správce – jediný bod selhání. Dnes je tato adresa řízena společností vlastněnou v USA, které není povoleno schvalovat zpětný odkup spojený s FTX.
Oprava konstrukce mechanismu
Mít pouze jediného delegovaného schvalovatele s 25 miliony USD v TVL bylo nedopatřením. Větším problémem je však samotná konstrukce mechanismu.
Jakýkoli systém spoléhající na výslovné schválení zpětného odkupu musí mít další problém, jako je tento. Když byl protokol poprvé dodán, důvodem schvalovacího mechanismu byla rychlost a uživatelská přívětivost – alternativy znamenaly horší uživatelskou zkušenost.
Nevěřím, že současný systém udělal správné kompromisy.
Existují dva jasné přístupy k nápravě této chyby
Přejděte od postupu založeného na schválení k postupu založenému na vetu
Odstraňte veškerou kontrolu uplatnění na úrovni protokolu
Věřím, že nejbezpečnější návrh mechanismu je něco, čemu říkám „optimistické vykoupení“. Namísto seznamu adres, které dokončují výkupy, máme seznam adres, které mohou výkup vetovat – podobně jako role Guardian v optimistickém ražbě.
S tímto mechanismem jsou všechny zpětné odkupy ve výchozím nastavení platné. Pokud je vyplacení vetováno kvůli podezření na hacknutí mostu, může být odloženo. Pokud je vetováno dostatečným počtem opatrovníků, může se vrátit k hlasování držitele tokenu. Pokud je veto potvrzeno hlasováním držitele tokenu, může být odmítnutý odkup tBTC automaticky vrácen uživateli, který jej vyplácí.
Nevýhodou je, že tento hypotetický mechanismus vyžaduje další zpoždění pro každý zpětný odkup. Postupem času by se však toto zpoždění mohlo zmenšit až na 15 minut a u malých transakcí zcela upustit.
A konečně, pokud a když komunita usoudí, že systém je bezpečný bez období pro kontrolu proplacení, mohlo by to zpoždění zcela odstranit a hladce přejít z prvního přístupu na druhý. Ve skutečnosti si myslím, že jasný harmonogram odstranění kontroly zpětného odkupu by pomohl vybudovat důvěru v celé komunitě.
Ať už je tato chyba v designu mechanismu vyřešena, hodně jsme se z této zkušenosti naučili – a jsem rád, že jsme se to naučili tento týden, a ne 10x odsud.
co dál?
DAO a komunita musí učinit rozhodnutí.
Ať už se komunita rozhodne přidat další adresu schvalovatele, upgradovat smlouvy na mechanismus ve stylu „optimistického vykoupení“ nebo zkoumat a zvažovat další možnosti, jako vývojový tým jsme tu, abychom vám poradili a pomohli vybudovat robustnější a bezpečnější a neutrální budoucnost financí společně.