Het onvoorziene: navigeren door een contractstoring en V2-herlancering
Door DeHub Team — 2022-10-01
In het vierde kwartaal van 2022 functioneerden de belastingtriggers in ons contract niet goed. Het token bevroor. De liquiditeitspool bevroor ermee. We werden gedwongen om opnieuw te starten als v2.
Dit is de ernstigste technische storing in de geschiedenis van DeHub en het verdient een eerlijk account.
## Wat er is gebeurd
Het contract droeg fiscale logica in het overdrachtstraject — het standaardontwerp voor de periode, waarbij een percentage van elke transactie wordt omgeleid naar liquiditeit, marketing of houders.
Die triggers werkten niet goed onder reële omstandigheden. Het resultaat was geen gedegradeerde ervaring. Het token kon niet bewegen en omdat de pool afhankelijk is van overdrachten, sloot de liquiditeit ermee af. Houders konden niet handelen. We konden het niet van buitenaf oplossen, omdat het gedrag in de eigen logica van het ingezette contract zat.
Er was geen patch. Onveranderlijkheid is de eigenschap die je wilt tot het moment dat het onveranderlijke stuk is.
Waarom een audit het niet voorkwam
We hadden het voorgaande jaar een volledige Certik-audit laten uitvoeren en hebben de beveiliging sinds de kwetsbaarheid van v1 serieus genomen.
Dit was geen uitbuiting. Niemand viel ons aan. Het contract deed waarvoor het geschreven was, onder een combinatie van voorwaarden die niet gemodelleerd waren. Audits kijken hard of code misbruikt kan worden. Ze zijn veel zwakker in de vraag of een ontwerp zich verstandig gedraagt aan de randen van zijn eigen aannames, en dat is waar dit leefde.
Het is de duidelijkste illustratie die we hebben van de grenzen van een audit, daarom hebben we het woord sindsdien nooit meer als garantie gebruikt.
Wat we hebben gedaan
Hernieuwd. Er was geen kleinere optie.
Dat betekende een nieuw contract en het migreren van meer dan 25.000 houders erop — een enorme operationele onderneming die werd uitgevoerd onder precies de omstandigheden waarin u de minste geloofwaardigheid hebt.
Het betekende ook beslissen wat het nieuwe contract zou moeten zijn, en we gingen naar gewone standaard ERC-20-tokenomics met helemaal niets slims in het overdrachtspad. Geen belastingtriggers. Geen voorwaardelijke logica tussen een houder en zijn eigen tokens.

Wat we eigenlijk hebben geleerd
Complexiteit in het overdrachtspad is het risico. Elk slim tokenomisch mechanisme is code die voor altijd op elke transactie wordt uitgevoerd, in marktomstandigheden die nog niemand heeft gezien. De slimheid moet daartegen zijn plaats verdienen.
Onveranderlijk betekent onveranderlijk. Ontwerp voor de zaak waarin je niet kunt ingrijpen, want dat is het geval dat je krijgt.
De community draagt de kosten van je ontwerpbeslissingen. Houders konden buiten hun schuld geen toegang krijgen tot hun eigen posities. Wat de technische uitleg ook is, dat is wat er is gebeurd en het is het frame dat we hebben behouden.
Nadien
V2 verzonden, houders gemigreerd en handel hervat op Gate.io in Q1 2023. Het vereenvoudigde contract loopt sindsdien zonder incidenten.
Eind 2022 was de slechtste periode die DeHub heeft gehad — dit, onmiddellijk nadat de Palawan-onderneming instortte en een loterij van $ 1 miljoen miste het minimum. Alle drie staan ze volledig in dit archief.
Voor iedereen die nu tokenomics ontwerpt
Het specifieke advies dat we zouden geven, nadat we ervoor hebben betaald:
Alles in het overdrachtspad moet worden gerechtvaardigd tegen het ergste geval, niet tegen het beoogde geval. Vraag wat deze code doet bij 100x het volume dat u verwacht, bij 1% ervan, tijdens een liquiditeitsevenement en wanneer een integrerend contract zich gedraagt op een manier die u niet had verwacht. Als je niet alle vier kunt beantwoorden, hoort het daar niet thuis.
En ga ervan uit dat je het nooit kunt veranderen. De mentale oefening die ons zou hebben gered, is eenvoudig: schrijf op wat je zou doen als dit contract zich morgen slecht zou gedragen en je geen admin-sleutel had. Als het eerlijke antwoord "iedereen opnieuw starten en migreren" is, hebt u dat resultaat al geaccepteerd — u hebt het alleen nog niet gepland.
DeHub openen