When Specifications Meet Reality: Uncovering API Inconsistencies in Ethereum Infrastructure

Dit paper introduceert APIDiffer, het eerste specificatie-gestuurde differentiatietestframework dat automatisch API-inconsistenties in de Ethereum-klantenecosysteem detecteert en zo 72 bugs heeft blootgelegd met een aanzienlijk hogere codecoverage en een lagere rate van vals-positieven dan bestaande methoden.

Jie Ma, Ningyu He, Jinwen Xi, Mingzhe Xing, Liangxin Liu, Jiushenzi Luo, Xiaopeng Fu, Chiachih Wu, Haoyu Wang, Ying Gao, Yinliang Yue

Gepubliceerd Mon, 09 Ma
📖 4 min leestijd☕ Koffiepauze-leesvoer

Each language version is independently generated for its own context, not a direct translation.

Titel: De "Taal" van Ethereum: Hoe een nieuwe tool de vertalers op de proef stelde

Stel je voor dat Ethereum een gigantisch, wereldwijd bankstelsel is dat volledig op een computer draait. In dit systeem zijn er geen bankiers of directieleden; alles wordt geregeld door software, genaamd clients. Er zijn verschillende teams die deze software bouwen (zoals Geth, Nethermind, Lighthouse, enzovoort), net zoals verschillende bedrijven verschillende modellen van dezelfde auto kunnen bouwen.

Het probleem? Hoewel ze allemaal dezelfde blauwdruk (de specificatie) gebruiken, bouwen ze hun auto's soms op heel verschillende manieren. Soms werkt de radio in de ene auto wel en in de andere niet, of geeft de snelheidsmeter in de ene auto 100 km/u en in de andere 110 km/u, terwijl ze allebei op dezelfde snelheid rijden.

In de Ethereum-wereld noemen we deze verschillen API-bugs. Een API is simpelweg de "taal" die gebruikers (zoals jij met je wallet-app) gebruiken om met het netwerk te praten. Als deze taal niet perfect wordt vertaald door alle verschillende software, kunnen er grote problemen ontstaan: je ziet misschien een ander saldo dan je echt hebt, of een transactie die er is, wordt niet getoond.

Het Probleem: De "Vertaalfouten"

De auteurs van dit paper (Jie Ma en zijn team) merkten op dat de huidige manier om deze software te testen, net zo oud en traag is als het handmatig controleren van elke auto in een fabriek.

  • Moeilijk: Je hebt een expert nodig die alles uit zijn hoofd kent.
  • Verouderd: Zodra de blauwdruk (de specificatie) verandert, zijn de oude tests direct nutteloos.
  • Onvolledig: Ze vinden vaak geen fouten omdat ze niet weten waar ze moeten zoeken.

Het resultaat? Fouten die geld kosten en vertrouwen ondermijnen. In het paper wordt een voorbeeld gegeven van een website (Etherscan) die een transactie van 0,01 ETH per ongeluk als 0,1 ETH liet zien. Dat is een factor 10 fout! Dat komt omdat de software die de website gebruikte, de "taal" van de blockchain verkeerd had vertaald.

De Oplossing: APIDiffer (De Super-Inspecteur)

De auteurs hebben een nieuwe tool bedacht die APIDiffer heet. Je kunt het zien als een super-automatische inspecteur die alle verschillende Ethereum-software tegelijkertijd test.

Hoe werkt het? Ze gebruiken drie slimme trucs:

  1. De Blauwdruk als Gids (Specificatie-gestuurd):
    In plaats van dat mensen handmatig testcases schrijven, pakt APIDiffer de officiële blauwdruk (de specificatie) en bouwt daar automatisch duizenden vragen op. Het is alsof je een robot stuurt die de handleiding van de auto leest en vervolgens elke knop, hendel en lampje op de auto duwt om te zien of het werkt. Het maakt zelfs vragen die niet zouden moeten werken, om te zien hoe de software reageert.

  2. De Realiteitstest (Semantische Validatie):
    Een robot die alleen naar de handleiding kijkt, kan vragen stellen die in theorie kloppen, maar in de praktijk onmogelijk zijn (bijvoorbeeld: "Wat is het saldo van een adres dat niet bestaat?"). APIDiffer is slimmer: het kijkt even naar de echte blockchain, pakt daar echte adressen en echte transacties, en gebruikt die in zijn vragen. Zo zorgt het ervoor dat de tests echt zinvol zijn.

  3. De Slimme Filter (LLM als Rechter):
    Dit is misschien wel het coolste deel. Als de verschillende softwareprogramma's een ander antwoord geven, is dat altijd een fout? Nee, niet altijd. Soms geven ze gewoon een antwoord in een andere taal (bijvoorbeeld: "Fout!" in plaats van "Error!"), maar betekenen ze hetzelfde.
    APIDiffer gebruikt een AI (Large Language Model) als een slimme rechter. Deze AI leest de blauwdruk en de antwoorden, en beslist: "Is dit een echte fout, of is het gewoon een andere manier om hetzelfde te zeggen?" Hierdoor worden er veel minder valse alarmen gegeven.

Wat Vonden Ze?

Toen ze deze tool lieten draaien op alle grote Ethereum-software, was het resultaat schokkend maar ook hoopgevend:

  • 72 echte bugs werden gevonden.
  • 90% daarvan werd al bevestigd of zelfs al door de ontwikkelaars opgelost.
  • Ze vonden zelfs fouten in de blauwdruk zelf! De officiële handleiding was soms onduidelijk of gewoon verkeerd.
  • De tool vond veel meer fouten en dekte veel meer van de code af dan de oude methoden.

Waarom is dit belangrijk voor jou?

Voor de gemiddelde gebruiker betekent dit dat je wallet-app, je crypto-beurs of je NFT-spel veiliger wordt. Als de "vertalers" (de software) consistent zijn, kun je erop vertrouwen dat je saldo klopt en dat je transacties correct worden verwerkt.

De auteurs hebben hun tool gratis en open-source gemaakt. Ze hopen dat andere ontwikkelaars het ook gaan gebruiken, zodat de Ethereum-wereld niet meer afhankelijk is van handmatige controle, maar continu wordt gecheckt door een slimme, onuitputtelijke robot.

Kortom: Ze hebben een tool gebouwd die de "taal" van Ethereum perfect laat vertalen, zodat niemand meer per ongeluk 10 keer meer geld verliest dan hij bedoelde.