Taproot y Firmas Schnorr - Crypto Academy / S5W6 - Homework post for pelon53

in hive-108451 •  3 years ago 

image.png

Fuente,Imagen editada en Power Point

image.png

1.- Explique en detalle el P2SH y el P2PKH, muestre las diferencias entre ambas direcciones.

P2SH

El P2SH o Pay-to-ScriptHash son un nuevo tipo de dirección en Bitcoin, están estructuradas de forma muy parecida al P2PKH. Una de sus características principales es que siempre comienza con el número "3" en lugar de "1".

Ejemplo: 3TSjUn26YkReQejgFHhgu3qGjlsxb2nK

Con P2SH se pueden bloquear bitcoins en el hash de un script, proporcionando nuevamente el script original cuando se realiza el desbloqueo de los bitcoins. El destinatario puede crear sus propio scripts de canje personalizado, logrando con esto hacer mucho sencillo el procesos de envío de criptomonedas entre direcciones de monederos, ya que no es necesario tener que enviar o compartir la clave pública de tu dirección, tan solo se debe enviar la comunicación en un hash con las indicaciones en forma de script.

Los activos que se envían a través del Hash el cual contiene las indicaciones en forma de script, es decir que en él se encuentra toda la información y los parámetros de cómo el usuario receptor puede hacer uso de los fondos, esto requiere una validación para poder recibirlos, esta validación se produce a través del sistema booleano (verdadera o falso, siendo 1 verdadero y 0 falso) si al recibirlos coinciden con la información dentro es decir hay un 1, se procede a liberar los fondos de forma segura.

Otra característica importante de P2SH es que la tarifa promedio de transacción es menor en comparación con P2PKH.

P2PKH

P2PKH o Pay to Public Key Hashson un tipo de ScriptPubKey que realiza el bloqueo de bitcoins al hash de una clave pública. Este es uno de los script más comúnes, funcionan de forma muy similar a las transacciones P2PK, con la diferencia que en este el bitcoin está bloqueado en el hash de la clave pública en lugar de la clave pública en sí, estas direciones siempre comienza con un numero 1, por ejemplo:

1MvBCSETstWehqTFg5Au4s4GFg5xJaNVN2

Para realizar un envió de criptoactivos utilizando este tipo de direcciones, se debe hacer uso de hash creados por claves públicas y privadas, los cuales deben ser compartidos para verificar que es la dirección del usuario receptor, para que los fondos enviados sean desbloqueados, se debe utilizar un script de firma, conocido como ScriptSig, este es usado para completar las transacciones de forma segura.

image.png
Fuente,

Diferencias entre las direcciones P2SH y P2PKH

  • Las principal diferencia que existe entre ambas direcciones es el numero con el que comienzan, las P2PKH siempre comienzan el número 1, mientras que las P2SH con un numero 3.

  • El proceso de creación de las direcciones P2PKH es un poco más complejo en comparación con los scripts P2PK.

  • El pago de las comisiones en P2SH es más bajo en comparación con las P2PKH que son mas costosas debido a la compatibilidad con las nuevas direcciones de envío.

  • Las direcciones P2SH tienen mayor compatibilidad con las diferentes direcciones y monederos P2SH que la PSPKH.

  • Las direcciones P2PKH no son compatibles con segwit, en cambio las P2SH si.

image.png

2.- Se requiere transferir 10 BTC que pertenecen a una cartera multifirma 3 de 5, a la empresa MTC, por la compra de unos equipos.

Use el ScriptSig y el ScriptPubKey para explicar los pasos que se siguen.

Para realizar la transferencia de 10 BTC a una cartera multifima 3 de 5, es decir que se requieren 3 firmas de los participantes en la transacción para autorizar dicha transacción.

Para ello se utilizan dos formas de scripts, el scriptsig y scriptPubKey.

El scriptsig el cual se encarga del desbloqueo de la transacción haciendo uso del OP_CHECKMULTISIG, a través de este se realiza la verificación de las 3 firmas, si estas cumplen con todas normas establecidas, si esta es realiza de forma exitosa ya se tendrá el script de desbloqueo de los bitcoin, sin embargo faltaría el siguiente paso, que es el ScriptPubKey, en dado caso que no se logre hacer la verificación se cancela el proceso de transferencia.

image.png
Imagen Editada en Power Point

El criptPubKey permanece bloqueado hasta que se realice un proceso de validación de la información y para realizar el desbloqueo de los fondos, comienzando un proceso en el cual el OP-CODE genera un código Hash SHA-256 y RIPEMD-160, el desbloqueo del scriptPubKey se realizara solo cuando el hash generado (SHA-256) corresponda con el scriptSig. Esto se logra al script generado previamente en la scriptSig, se le aplica el código SHA-256 seguidamente del RIPEMD-160 (OP_HASH160), luego estos resultado son comparados con el hash Script, dentro del ScriptPubKey (OP_EQUAL). Si estos arrojan el mismo resultado se realizara el desbloqueado de los fondos, en este caso de 10 BTC.

image.png
Imagen Editada en Power Point

Explique ¿Qué sucede si la transacción se realiza usando las firmas Schnorr?

Si utilizamos las firmas Schnorr para realizar la transferencia de 10 BTC pertenecientes a una cartera multifirma 3 de 5, anteriormente explique que para la realización de dicha transacción se requerían una cantidad de 3 firmas para autorizar la transacción, sin embargo en este caso el proceso es mucho mas sencillo.

En este caso solo se necesita que los cinco firmantes presenten sus claves públicas las cuales se unificaran en una nueva clave de transacción, manteniendo la privacidad de sus cuentas ya que nadie puede saber quién creó la nueva clave de transacción. Esto hace que este tipo de transacciones sean más escalables ya que se disminuye el tamaño de las transacciones, haciendo que sean más rápido el proceso de verificación de las transacciones. La nueva clave de transacción ahora será utilizada para pasar por el proceso de ejecución normal de una transacción.

image.png

Imagen Editada en Power Point

image.png

3.- ¿Por qué cree usted que Taproot y las firmas Schnorr ayudarán a la privacidad de la red Bitcoin? Explique.

Taproot Es una actualización tecnológica diseñada con el objetivo de mejorar los scripts de Bitcoin para así aumentar el nivel de privacidad, ya sabemos que las transacciones de bitcoin se basan en una serie de scripts o parámetros para el pago, esto lo hablamos al comienzo explicando las direcciones, vimos que todo ese conjunto de condiciones muestran cómo serán gastadas las monedas en la siguiente transacción. En el proceso mientras se autoriza una transacción, estas condiciones pueden ser vistas por cualquiera que lo desee, esto es un problema de privacidad en la red de Bitcoin ya que están expuestos todos estos datos en la red.

Con la integración de Taproot y las firmas schnorr permite aumentar la privacidad de la red, esto lo logran al ocultar todas estas condiciones y haciendo ilegibles las transacciones de múltiples firmas, revelando solo la condición final activada en la transacción, haciendo que una transacción convencional con una enriquecida sean imposibles de distinguir.

Taproot logra que en las operaciones complejas se unifique toda la información bajo un mismo identificador, lo que hace que esta sea más privacidad ya que no releva tanta información, sin eliminar la característica pública natural de una blockchain, además de reducir la cantidad de datos que se transferirán y almacenarán en la cadena de bloques.

Por ejemplo, al gastar Bitcoin haciendo uso dela tecnología Taproot se puede lograr que una transacción peer-to-peer, o un smart contract mas complejo resulten indistinguibles, es decir no estarían expuesto los detalles y condiciones de duchas transacciones, de manera que si alguien desea monitorizar dichas transacciones solo puedan ver unas simples transacciones peer-to peer. Igual se mantiene de forma pública la información de los monederos del emisor y receptor.

image.png

4.- Usando la Demo de Blockchain, escriba exactamente el siguiente mensaje: Schnorr Signatures, genere la firma del mensaje y verifique el mensaje. Luego borre el primer carácter de la firma del mensaje y verifique nuevamente ¿Qué sucedió? Explique. Se requieren capturas de pantalla.

Para cumplir con esta tarea es necesario el uso de una Demo de Blockchain, asi que ingrese al siguiente Link

Ya estando en la sección Signatures, debemos escribir la frase Schnorr Signatures en la caja de texto y presionamos el botón firmar (sign) como se muestra en la siguiente captura de pantalla.

image.png

Captura de pantalla tomada de Demo Blockchain

De esta manera se generara en cuestión de segundos la firma del mensaje.

image.png

Captura de pantalla tomada de Demo Blockchain

Para realizar la verificación el mensaje debemos ubicarnos en la sección Verify, escribismos el nombre del mensaje que deseamos verificar en este caso es Schnorr Signatures y luego presionamos el boton Verify.

image.png

Captura de pantalla tomada de Demo Blockchain

Como podemos observar en la captura de pantalla, al realizar la verificación la pagina muestra un color verde, lo que hace referencia a que se realizo de manera correcta la verificación y la firma coincide con el mensaje de entrada.

Ahora bien, si le eliminamos el primer carácter de la firma del mensaje y realizamos el mismo proceso de verificación anterior, podemos observar que la pantalla se pone en un color rojo, que indica que ha ocurrido un error en la firma del mensaje y no se ha podido realizar la verificación. Esto sucede cuando la firma no coincide con el mensaje de entrada.

image.png

Captura de pantalla tomada de Demo Blockchain

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  
Loading...