Saltar al contenido
ecdsa.com

BIP-340 (firmas Schnorr para secp256k1)

La especificación de Bitcoin de firmas Schnorr de 64 bytes en secp256k1 con claves públicas x-only de 32 bytes y hashes etiquetados, usada por Taproot y Nostr.
También se escribeBIP-340BIP340Schnorr signatures secp256k1x-only public key

Las claves se codifican solo con la coordenada x, con el punto implícito de y par, lo que ahorra un byte. El desafío es e = tagged_hash("BIP0340/challenge", R.x ‖ P.x ‖ m) y la firma es R.x ‖ s; los hashes etiquetados SHA256(SHA256(tag) ‖ SHA256(tag) ‖ data) separan los distintos usos del hash. El procedimiento de firma recomendado mezcla 32 bytes de aleatoriedad auxiliar en la derivación del nonce, y la verificación es estricta, así que las firmas no son maleables.

La linealidad permite la agregación de claves (MuSig2, BIP-327) y los esquemas de umbral (FROST), y la verificación por lotes acelera la validación de bloques. Los mensajes de BIP-340 son de 32 bytes; los mensajes de longitud arbitraria los cubren la revisión posterior de BIP-340 y los protocolos que calculan antes el hash (Nostr firma el ID del evento, de 32 bytes).

Estándares y referencias

Todos los términos