Bitcoin usa la función Proof of Work de hashcash como núcleo de minería de Bitcoin. Todos los mineros bitcoin, ya sea U, GPU, FPGA o ASIC, están gastando su esfuerzo creando pruebas de trabajo hashcash que actúan como un voto en la evolución de blockchain y validan el registro de transacciones blockchain.
Al igual que muchos algoritmos criptográficos, hashcash usa una función hash como elemento básico, del mismo modo que las firmas HMAC o RSA se definen en una función hash conectable (comúnmente indicada por la convención de nomenclatura de algoritmo-hash: HMAC-SHA1, HMAC- MD5, HMAC-SHA256, RSA-SHA1, etc.), hashcash se puede instanciar con diferentes funciones, hashcash-SHA1 (original), hashcash-SHA256 ^ 2 (bitcoin), hashcash-Scrypt (iter = 1) (litecoin).
Historia
La función de prueba de trabajo de hashcash fue inventada en 1997 por el Dr. Adam Back , y se propuso para usos anti-DoS, incluida la prevención: uso indebido anónimo de puerta de enlace y mail2news, nombre de nym en cuclillas en nymservers (servidores de remansos pseudónimos replicables), así como regulación general contra el correo no deseado y abuso de la red general.
Antes de bitcoin, SpamAssasin usaba hashcash y (con un formato incompatible) de Microsoft (con el nombre de "matasellos de correo electrónico") en hotmail, exchange, outlook, etc. y por la red de anonimato i2p, mixmaster anonymous remailer components y otros sistemas.
Hashcash también fue utilizado por el precursor de bitcoin RPW de Hal Finney como una forma de extraer monedas. La propuesta de dinero B de Wei Dai y los precursores de bitcoin de la propuesta BitGold de Nick Szabo también se propusieron en el contexto de la minería de hashcash.
Opciones de función hash
En el algoritmo original de 1997, hashcash usó SHA1 porque en ese momento, este era el hash de facto y recomendado por el NIST, y el hash defacto MD5 anterior había comenzado recientemente a mostrar signos de debilidad. Bitcoin que se especifica / lanza en 2008/2009 usa SHA256. En realidad, no existe una razón fuerte por la que SHA1 no haya funcionado, hashcash depende solo de la propiedad de resistencia de preimagen parcial (seguridad hasta el tamaño del hachís, 160 bits con SHA1) y no la dureza por colisión del cumpleaños (seguridad de hasta 80 bits) , por lo que el hash SHA1 es lo suficientemente grande.
Bitcoin está construido de todos modos con seguridad de 128 bits porque se usa ECDSA de 256 bits, que también ofrece seguridad de 128 bits. Sin embargo, SHA256 es la elección correcta y más conservadora porque incluso SHA1 ha comenzado a mostrar algunas debilitaciones, aunque solo en la colisión de cumpleaños, no en la segunda preimagen.
Comentarios