Steemit Crypto Academy Season 5 Week 6 [Intermediate Course] - Taproot y firmas Schnorr.

in SteemitCryptoAcademy2 years ago (edited)

Captura de pantalla (1548).png

Taproot y firmas Schnorr

El tiempo pasa muy rápido, ya estamos en la sexta semana de esta 5ta temporada, un saludo muy especial a toda la comunidad de Steemit y espero que a todos les vaya muy bien. Es necesario que se esfuercen para hacer tareas de alta calidad.

Esta semana estaremos hablando de las nuevas actualizaciones que llegaron a Bitcoin y que pueden ofrecer grandes soluciones a probelmas presente en esta red, como es el caso de la privacidad, escalabilidad y manejo de los Smart Contracts. Así que, estaremos estudiando la tecnología Taproot y las firmas Schnorr. Empecemos

Separador de papáseason 5.png

¿Qué es Taproot?

Es una actualización tecnológica que busca resolver problemas que se han presentado en la red de Bitcoin, y su objetivo principal se basa en mejorar la privacidad de las transacciones, escalabilidad, seguridad y mejorar la capacidad para poder elaborar complejos smart contracts, todo esto con la finalidad que su ecosistema sea más atractivo y atraiga nuevos usuarios.

Siendo Bitcoin una red pública, cualquier persona puede monitorear las transacciones que se ejecutan en la blockchain. Incluso, es posible ver las transacciones de una cuenta en particular, esto es un problema importante de privacidad para algunos usuarios. Esta actualización se prevé como el primer paso importante para la solución de la falta de privacidad.

Separador de papáseason 5.png

Función de Taproot.

Esta actualización tecnológica busca mejorar los scripts de Bitcoin, eliminando la necesidad de mostrar datos e información que están contenidos en los scripts completos y de esta manera incrementar la privacidad, ya que, la información contenidas en los scripts no serán reveladas. En el momento de realizar una transacción, solo se mostrará la condición de activada.

Pero ¿Qué son los Bitcoin Scripts? Para cada transacción que se realiza en la red se registran con una serie de instrucciones programadas, que permiten que se ejecute dicha transacción. Adicional las instrucciones programadas describen como cada usuario tiene acceso a sus Bitcoin en la red y como puede hacer uso de ellos. En resumen, podemos decir que los scripts de Bitcoin son el lenguaje de programación que permite el bloqueo y desbloqueo de las transacciones en la red de Bitcoin.

Para poder entender la importancia de esta actualización, veamos un poco como funcionan las scripts en la blockchain de Bitcoin.

En la blockchain de Bitcoin, los Scripts se dividen en dos tipos que son:

  • ScriptSig: Se conoce como el script de desbloqueo, y para su uso se requiere de una clave pública y una firma digital. Inicialmente no se incluir la verificación de la firma, para realizar las transacciones es necesario que la verificación de la firma cumple con ciertas normas establecida.

  • ScriptPubKey: Se conoce como la script de bloqueo, este script contiene un hash de clave pública. En muchos casos, el hash de clave pública se le llama dirección de Bitcoin. Contiene las accionrs a realizarse.

En los casos que se requiera más de una firma para la autorización de una transacción, el script es mucho más complejo, y se realizan por medio del P2SH que en la red Bitcoin es un tipo de direcciones especiales, que veremos a continuación.

P2SH: (Pay-toScript-Hash) El remitente bloquea los fondos con el Hash de un script, el detinatario debe proporcional el script que se usó para generar el Hash y debe cumplir con la verificación.

Las transacciones que se realizan en la red Bitcoin están definidas por una serie de instrucciones o script, que se conocen como P2SH, y estas instrucciones van a determinar como cada usuario gasta sus criptomonedas en la transacción siguiente. Por ejemplo, cada usuario tiene su clave pública, y para gastar esas criptomonedas que pertenecen a la clave pública determinada, debe demostrarlo por medio de una firma (proporciona la clave pública y la firma para desbloquear el gasto). Al demostrar que es propietario de esas monedas puede gastarlas.

Separador de papáseason 5.png

Veamos un ejemplo visual de una transacción P2SH, usando ScriptSig y ScriptPubKey; para el bloqueo y desbloqueo de una transacción multifirma:

Screenshot_9.png

Realizado en PowerPoint, ScriptSig.


Gráficamente podemos observar que es una transacción multifirma. El ScriptSig hace mención a una Musig o multifirma de (2 de 3). Observamos 3 claves que son las llaves de la imagen. Y se requieren de 2 firmas de los particpantes en la transacción para autorizar dicha transacción. Por último, vemos un código de operación, que es el siguiente.

OP_CHECKMULTISIG: Este código es el encargado de verificar que las 2 firmas corresponden con las 3 llaves dentro de la transacción, y que son las necesarias para desbloquear la operación. De esta manera tenemos el script de desbloqueo de los bitcoin, si la operación es exitosa. Pero falta el siguiente paso, que es el ScriptPubKey.

Screenshot_10.png

Realizado en PowerPoint, ScriptPubKey.


Donde:

OP_HASH160: Es el OP-CODE para generar el Hash SHA-256 y RIPEMD-160. Y este código nos va a indicar que el scriptPubKey se desbloqueará si el hash generado (SHA-256) corresponde con el scriptSig. Es decir, el script generado en la scriptSig, le aplicamos el SHA-256 y luego el RIPEMD-160 (OP_HASH160) y el resultado será comparado con el hash Script, dentro del ScriptPubKey (OP_EQUAL). Si el resultado es el mismo, hemos desbloqueado con éxito los Bitcoin.

También es importante resaltar que los scripts P2SH tienen funciones que se pueden ejecutar, como por ejemplo se puede colocar el momento (fecha) en que esa transacción se haga efectiva o que los Bitcoins sean gastados. Otra condición que puede incluir es la multifirma, para aquellos usuarios que son propietarios de un solo monedero, y requieren de varias firmas para autorizar y/o realizar una transacción.

Cuando se ejecuta una transacción toda la información es revelada en la red, incluidas las condiciones de Script. Quedan expuestas y es de dominio público, por ser una blockchain pública. Esto siempre ha presentado un problema para la privacidad de esta red. Es aquí donde juega un papel importante esta actualización de Trapoot, ya que impide que se revelen todas las condiciones establecidas en una transacción determinada, y solo se revelarán las condiciones activadas finales de dicha transacción. Cuando se ejecute una script en Bitcoin, esta actualización de Trapoot permite que se oculte este script.

Separador de papáseason 5.png

¿Qué son firmas Schnorr?

El algoritmo de firmas que utilizó Satoshi Nakamoto para el Bitcoin en sus inicios fue ECDSA y sigue usándose para firmas en las transacciones que se ejecutan en la red Bitcoin.

Veamos el siguiente ejemplo: Si Tú decides transferir 1 BTC a Pedro por la compra de un activo, especificas los datos o dirección de Pedro y confirmas la transacción por medio de tu clave privada que va a funcionar como tu firma digital. Con esta información, los mineros pueden acceder para verificar y aprobar la transacción por medio de la clave pública que se genera.

El problema se presenta si 1 BTC no es solo tuyo, sino que tiene una cartera multifirma con otras personas. Para realizar esa transacción se van a requerir una cantidad de firmas (m) que puedan autorizar esa transacción y en este caso se sigue el patrón m-of-n. Donde n es la cantidad total de firmas y m el número de firmas que autorizan en gasto.

Si se requieren la autorización de 2 o más firmas para el gasto, esto puede causar demora en el momento de hacer la transacción y adicionalmente el tamaño de la transacción aumentará en función de las firmas que se requieran. Esto es un problema para la red, porque aumenta el tamaño de las transacciones, puede causar retrasos y colapsos en la verificación de las transacciones.

Captura de pantalla (1546).png

Realizado en PowerPoint, firmas ECDSA.


Lo ideal sería un algoritmo que con una sola firma sustituya a todas las restantes y adicionalmente sea totalmente seguro, esto lo puede hacer las firmas Schnorr.

Captura de pantalla (1547).png

Realizado en PowerPoint, Firmas Schnorr.

Las firmas criptográficas Schnorr, es un algoritmo que desarrolló el alemán y matemático Claus Schnorr y lo patentó para que no fuesen de uso público, hasta el 2008 donde la patente expiró oficialmente. Las firmas de Schnorr son muy simples de usar y eficiente en el momento de generar firmas cortas.

Este algoritmo de firmas Schnorr permite sustituir el grupo de firmas en una sola, siempre y cuando procedan de la misma entrada.

Separador de papáseason 5.png

Ventajas de las firmas Schnorr.

  • Con las firmas Snchnorr se puede mejorar la privacidad de la red, no se puede distinguir una transacción normal de una sola firma y una multifirma.

  • Las transaccones con firmas Schnorr se validarán y confirmarán más rápido. Porque no se requiere de verificar múltiples firmas. Por lo tanto, el tiempo de espera en la confirmación de una transacción disminuye.

  • Las transacciones multifirmas, con firmas de Schnorr reducen el espacio de almacenamiento hasta un 25 %. Al haber una reducción de espacio en el bloque, las comisiones disminuyes (costos por transacción).

  • Las firmas de Schnorr pueden ayudar a mejorar la escalabilidad dentro de la red, ya que se disminuye el espacio de almacenamiento.

  • Junto la tecnología Taproot, son las encargadas de mejorar la escalabilidad, privacidad y mejoras para los Smart Contracts dentro de la red de Bitcoin.

  • Las firmas de Schnorr son muy seguras, no se puede alterar la firma para generar un doble gasto.

Separador de papáseason 5.png

Veamos un ejemplo en la demo de Blockchain para verificar la firma de un mensaje, igualmente ocurre con una transacción. Entramos a la demo en firmas, como indica la siguiente capture de pantalla.

Screenshot_11.png

Demo Blockchain.


Luego colocamos el mensaje Taproot and Schnorr (1) y le doy clic a sign (2), e inmeditamente aparece la firma del mensaje.

Screenshot_15.png

Demo Blockchain. Generando la firma del mensaje


Para verificar el mensaje con su firma se le da clic a verify (1), y nuevamente en la parte inferior verify (2). Inmediatamente en color de la transacción se coloca en un tono azul y verde las letras.

Screenshot_16.png

Demo Blockchain.Verificando la firma del mensaje con el mensaje.


Si ocurre un error en la firma del mensaje el color cambia a rojo.

Quería mostrar como se genera de manera inmediata las firmas y/o hash en una transacción. Internamente existen instrucciones y códigos, en algunos casos complejos; pero para el usuario que hace las transacciones eso es transparente. Por hoy hemos terminado esta clase.

Separador de papáseason 5.png

Conclusiones.

  • Estas nuevas actualizaciones en la red Bictoin se espera que traiga como consecuencia que más usuarios se unan a la red, ya que ofrece mejoras que estaban esperando.

  • La privacidad es muy importante para algunas personas y serán beneficiadas al tener una mejor privacidad con la implementación de la tecnología Taproot y la implementación de las firmas de Schnorr.

  • Si se resuelve parte de los problemas de escalabilidad en la blockchain Bitcoin, será un atractivo para nuevos inversores.

Separador de papáseason 5.png

Tarea.

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

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.

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

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

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 caracter de la firma del mensaje y verifique nuevamente ¿Qué sucedió? Explique. Se requiere captures de pantalla.

Separador de papáseason 5.png

REGLAS

  • Asegúrese de publicar en la comunidad de Steemit Crypto Academy .

  • Agregue las etiquetas #pelon53-s5week6, #cryptoacademy y #club5050 entre las cinco primeras etiquetas en este orden. También puede utilizar otras etiquetas relevantes como la etiqueta de su país. Además, etiquétame como @pelon53 en cualquier parte de tu publicación. Verifique con atención las etiquetas, un error puede perder la revisión de la tarea.

  • El título de su tarea debe ser: Taproot y Firmas Schnorr - Crypto Academy / S5W6 - Homework post for pelon53.

  • Su artículo debe tener al menos 500 palabras. Sea creativo y presente su tarea de una forma única.

  • Está prohibido el plagio. Por lo tanto, no se tolerará el plagio de ningún tipo.

  • Esta tarea requiere capturas de pantalla de su propia experiencia, agregue una marca de agua con su nombre de usuario. Además, use imágenes de fuentes libres de derechos de autor y muestre la fuente, si corresponde.

  • Esta tarea se ejecutará hasta las 23:59 del 25 de diciembre, hora UTC. (7:59 pm hora de Venezuela)

  • Son elegibles los usuarios que tengan una reputación de 60 o más y que tengan un SP de 600 o más (excluyendo cualquier SP delegado). Tampoco debe estar apagado.

  • Sólo los usuarios que cumplen los requisitos del #club5050 pueden participar. El límite mínimo para el Club5050 es de 150 SP encendidos en el último mes, independientemente de los pagos y las ganancias. Esto se aplica tanto a los usuarios activos como a los inactivos. El limite superior está sujeto a sus pagos y ganancias durante el periodo especificado (es decir, el último mes).

  • Los usuarios que utilicen herramientas de upvote para ganar SP o construir su reputación no son elegibles para esta tarea.

  • No dejes el enlace de tu tarea en la sección de comentarios a menos que tu publicación no haya sido calificada dentro de las 48 horas.

  • Si tiene alguna duda sobre la tarea de tarea, no dude en unirse a la sección de comentarios.

  • Notas Importantes:

"Si no has tenido ninguna ganancia en el último mes, tendrás que hacer un power up de al menos 150 STEEM para participar en la Academia.

Esto puede ser de cualquier STEEM líquido o SBDs que tengas, o puedes comprar STEEM de un exchange".

"También puedes hacer posts fuera de la Academia y esperar hasta que tengas ganancias de esos posts para hacer power up"

Separador de papáseason 5.png

Cc:-

@stemitblog
@steemcurator01
@steemcurator02

NOTA: Toda la información suministrada en esta publicación es solo con fines educativos, nunca es información para inversión. Cada persona debe realizar su propia investigación y con su asesor financiero tomar sus propias decisiones de inversión.

Final pelon53 la mejor propia.png

Sort:  

image.png

Yo mean s5w6, right, Professor @pelon53?

Muchas gracias, corregido

very complete explanation, thank you for providing us with information. @pelon53

please give support for my post sir.

 2 years ago 

Dear professor @pelon53,

My total SP size is 2409. I've delegated 2255 SP of them for communities. So can I do this homework?

Saludos @nishadi89, si puedes hacerla. Pero ten en cuenta que debes haber encendido 150 SP o más en el último mes y tu encendido mayor a tus salidas, es decir, debes cumplir con el club5050.

Gracias por tu pregunta.

 2 years ago 

Ok. Thank you professor.

 2 years ago 

Beautiful lecture, I look forward to submitting my post

Gracias. Espero su entrada

 2 years ago 

Saludos profesor buenas noches bendiciones en relación a la pregunta (2) son 10$ en BTC?,o una suposición de 10BTC

Buenas noches es una suposición de 10 BTC. Saludos y feliz noche

Buenas profesor tengo una duda, quisiera delegar Steempower a una comunidad , eso afecta mi participación en la academia , el steempower sigue siendo mío pero no lo tengo muy claro.

gracias y que Dios lo bendiga por su respuesta

Saludos amigo, puedes delegar, pero que no sea un bot. Para una comunidad que quieras apoyar, lo puedes hacer.

Dios te guarde

 2 years ago 

Prof @pelon53 please, i want ask. Are we required to actually spend 10 btc OR it just an assumption

 2 years ago 

Es una suposición líder

Saludos, es una suposición. No hay inversión.

 2 years ago 

Ok thanks, i was scared 😅

 2 years ago 

hahah.... I tell bro, i got afraid as well until when i read the question over and over before i was able capture it.

 2 years ago 

😂😂😂
If i had such amount of BTC i would becomemy own steemcurator01 oo

 2 years ago 

Na tru talk oohh

Hello prof, please I encountered a problem during the creation of my post. I finished creating the post and posted it. It only appeared immediately I posted but disappeared afterwards.

I tried posting again because I copy my content before posting. For the second time, it showed up immediately I posted but disappeared afterwards. The post is not available on my page neither is it available on cryptoacademy although I posted it there.

Here's an image after I tried reposting for the third time.
Screenshot_20211225-173853.png

This post doesn't appear on my page or the cryptoacademy community although I posted it there.

I visited https://steemworld.org/@uchescrib to check if it shows proof that it was posted, and it does.

Everytime I try reposting, I shows up as an edit on steemworld.org.

Screenshot_20211225-174148.png

Screenshot_20211225-174133.png

Please do you know how this problem can be rectified?

Listo amigo, ya se restauró la plataforma.

I just noticed. Thanks for the feedback

Por favor borra una publicación, tienes activas 2.

I have. Thanks for replying

Coin Marketplace

STEEM 0.26
TRX 0.11
JST 0.033
BTC 64266.94
ETH 3077.24
USDT 1.00
SBD 3.87