Blockchain-handtekeningen: EIP-712, Permits en Gasloos

Home Blockchain & Web3 Ontwikkelaar Blockchain-handtekeningen: EIP-712, Permits en Gasloos

Niet alles op een blockchain vraagt om een transactie. Gebruikers kunnen ook een bericht ondertekenen: een tokenuitgave goedkeuren, een trade autoriseren of inloggen. De handtekening wordt off-chain en gratis gemaakt, en on-chain gecontroleerd door een contract of off-chain door uw backend. Goed gedaan maakt dit toepassingen sneller, goedkoper en gasloos voor gebruikers. Slecht gedaan is het een van de meest voorkomende manieren waarop gebruikers geld verliezen: ze tekenen iets wat ze niet begrepen, of een handtekening wordt hergebruikt waar die niet geldig had mogen zijn.

SemBricks bouwt ondertekeningsflows voor wallets, dapps en backends. In onze cross-chain trading app in USDC vormen EIP-712-handtekeningen bijvoorbeeld de kern van de uitvoeringslaag.

Ondertekeningsoplossingen die wij bouwen

  • EIP-712 typed signing: gestructureerde, leesbare handtekeningverzoeken in plaats van onleesbare hex-strings.
  • Permit-handtekeningen: token-approvals met een handtekening (EIP-2612) in plaats van een aparte transactie.
  • Meta-transacties: gebruikers tekenen, een relayer verstuurt en betaalt het gas (ERC-2771).
  • Gasloze ondertekeningsflows: complete gebruikersreizen zonder dat de gebruiker ooit gas nodig heeft, door handtekeningen te combineren met relayers of paymasters.
  • Multisig: meerdere handtekeningen verzamelen voor één actie, van treasurybetalingen tot contractupgrades.
  • Blind signing voorkomen: gebruikers laten zien wat ze werkelijk ondertekenen voordat ze tekenen.

Handtekeningen goed regelen

  • Bescherming tegen replay: elke handtekening is gebonden aan een chain-ID, een contract (het EIP-712-domein), een nonce en een deadline, zodat hij niet elders of later opnieuw te gebruiken is.
  • Veilige verificatie: goed geteste ECDSA-bibliotheken die vervormbare handtekeningen weigeren, en ondersteuning voor EIP-1271 zodat ook smart contract wallets kunnen tekenen.
  • Duidelijke intentie: handtekeningverzoeken die wallets in gewone taal kunnen tonen, want gebruikers horen nooit iets goed te keuren wat ze niet kunnen lezen.
  • Intrekken: een manier om openstaande handtekeningen ongeldig te maken, bijvoorbeeld door een nonce te verhogen, als er iets misgaat.

Veelgestelde vragen over blockchain-handtekeningen

Is een bericht ondertekenen gratis?

Ja, een handtekening maken kost niets. Er wordt pas gas betaald als iemand een transactie verstuurt die de handtekening gebruikt; dat kan de gebruiker zijn, een relayer of een paymaster.

Waarom worden permit-handtekeningen gebruikt bij phishing?

Omdat één handtekening iemand kan machtigen uw tokens uit te geven, zonder dat er eerst een transactie in de wallet verschijnt. Daarom zijn duidelijk ondertekenen en phishingwaarschuwingen belangrijk, en ontwerpen wij flows die precies laten zien wat er wordt goedgekeurd.

Kunnen smart contract wallets berichten ondertekenen?

Ja, via EIP-1271: de contract wallet bevestigt on-chain of een handtekening voor hem geldig is. Toepassingen moeten dit expliciet ondersteunen, anders worden gebruikers van smart accounts en multisigs buitengesloten.

Wie is eigenaar van de code?

Het eigendom van de broncode wordt contractueel vastgelegd, en de code kan volledig van u zijn, inclusief documentatie en tests.

Zie ook crypto wallet ontwikkeling en account abstraction.

Ontwerp uw ondertekeningsflow

Vertel ons wat uw gebruikers moeten ondertekenen en waar het wordt gecontroleerd. Wij ontwerpen een flow die soepel is voor gebruikers en veilig tegen replay en phishing.

Plan een vrijblijvend gesprek over ondertekeningsflows