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
Blind Signing Voorkomen: Clear Signing voor Wallets en dApps
Wat is blind signing en hoe voorkomt u het: leesbare EIP-712-handtekeningen, transactiesimulatie, waarschuwingen bij approvals en clear signing.
EIP-712 Typed Data Signing: Uitleg en Implementatie
Wat is EIP-712? Ondertekenen van getypeerde data uitgelegd: domain separator, typed hashes, permits, replay-risico's en veilige implementatie.
Meta-transacties (ERC-2771): Gasloos via Relayers
Meta-transacties met ERC-2771: gebruikers tekenen, een relayer verstuurt en betaalt het gas. Trusted forwarders, relayer-infrastructuur en de valkuilen.
Permit-handtekeningen: EIP-2612 en Permit2 Uitgelegd
Permit-handtekeningen uitgelegd en geïmplementeerd: EIP-2612 token-permits en Permit2 van Uniswap, approvals in één transactie en valkuilen.