SOLIDITY - Creación de smarts contracts - [CURSO][CONCEPTOS][PARTE-2]


destapeman

FUCK PUSSYS, YES BADASS
Moderador
Paladín de Nodo
Jinete de Nodo
Burgués de Nodo
Noderador
Nodero
Noder
Buenas noches Noders,

Vamos con la parte 2 del tutorial de Solidity. En esta entrega vamos a ver conceptos fundamentales sobre el mundo cripto para que cuando escuchemos cosas como redes P2P, Blockchain, bloque o transacción no nos suene a chino. Al final dejaré una pequeña reflexión personal sobre esta tecnología.

BLOCKCHAIN

Empecemos con entender que es una blockchain, a mi parecer el eje central en la que se sustenta esta tecnología. Para resumirlo podríamos decir que la blockchain es una base de datos transaccional compartida globalmente. Esto significa que todos pueden leer las entradas en la base de datos simplemente participando en la red. Si quieres modificar algo en la base de datos, tienes que crear una transacción que tiene que ser aceptada por todos los demás. Esta es la parte más interesante, actualmente hay 2 protocolos de consenso para poder validar transacciones en la blockchain, el PoW o Proof of Work (Prueba de Trabajo) y el PoS o Proof of Stake (Prueba de Participación).

TRANSACCIÓN

Hemos hablado antes de transacciones, pero ¿qué son? La transacción implica que el cambio que queremos hacer (supongamos que queremos cambiar dos valores al mismo tiempo) no se realiza en absoluto o se aplica completamente. Además, mientras se aplica tu transacción a la base de datos, ninguna otra transacción puede alterarla. Imaginemos una tabla que enumera los saldos de todas las wallets en una criptodivisa. Si se solicita una transferencia de una wallet a otra, la naturaleza transaccional de la blockchain garantiza que si el importe se resta de una wallet, siempre se añade a la otra. Si por cualquier motivo no es posible añadir el importe a la wallet de destino, tampoco se modifica la wallet de origen.

Además, una transacción siempre está firmada criptográficamente por el remitente (creador). Esto hace que sea seguro proteger el acceso a modificaciones específicas de la blockchain . En el ejemplo de la criptodivisa, una simple comprobación garantiza que sólo la persona que posee las claves de la wallet puede transferir dinero desde ella.

PROTOCOLOS DE CONSENSO

Es la forma que tenemos de validar transacciones en la blockchain haciéndolas efectivas y lícitas. Veamos en qué consiste cada una de ellas:
  • PoW: de las siglas en inglés Proof of Work o Prueba de Trabajo en castellano. Este protocolo funciona bajo el concepto de requerir un trabajo al cliente, que luego es verificado por la red. Normalmente el trabajo solicitado, consiste en realizar complejas operaciones de cómputo. De ahí que hayáis visto noticias de subidas de precio en las gráficas debido a la cantidad de operaciones complejas por segundo que pueden realizar, a más potente sea la tarjeta gráfica, más capacidad de trabajo tiene y mayores recompensas reciben los mineros.
    La Prueba de Trabajo, funciona de una forma bastante sencilla. De hecho, el proceso que se lleva a cabo, se puede dividir en las siguientes etapas:
    1. Etapa #1: El cliente o nodo establece una conexión con la red. En este punto, la red le asigna una tarea computacionalmente difícil. Esta tarea debe ser resuelta a los fines de recibir un incentivo económico, las llamadas recompensas.
    2. Etapa #2: Comienza la resolución del acertijo. Esto conlleva el uso de mucha potencia de computación hasta resolver el enigma entregado. Este proceso es el que recibe el nombre de minería.
    3. Etapa #3: Una vez resuelta la tarea computacional, el cliente comparte esta con la red para su verificación. En este punto, se verifica rápidamente que la tarea cumpla con los requisitos exigidos. Si lo hace, se brinda acceso a los recursos de la red. En caso contrario, se rechaza el acceso y la solución presentada del problema. Es en este punto, donde se realizan las verificaciones de protección contra el doble gasto. Una protección que evita, que se presente más de una vez, una tarea ya asignada y verificada por la red.
    4. Etapa #4: Con la confirmación que la tarea ha sido cumplida, el cliente accede a los recursos de la red. Gracias a esto, recibe una ganancia por el trabajo computacional realizado.

  • PoS: de las siglas en inglés Proof of Stake o Prueba de Participación en castellano. A los nodos que minan en PoS se les llama validadores. La decisión sobre qué nodo ha de validar un bloque se hace de forma aleatoria pero dando mayor probabilidad a quienes cumplan una serie de criterios. Entre estos criterios podemos mencionar la cantidad de moneda reservada o el tiempo de participación en la red, por ejemplo. Una vez establecidos, se inicia el proceso de selección de nodos de forma aleatoria. Una vez terminado el proceso de selección, los nodos elegidos podrán validar transacciones o crear nuevos bloques. PoW, a diferencia de PoS, necesita de grandes cantidades de energía y equipo especializado para realizar sus operaciones. En PoS, por el contrario, esto no es necesario. En PoS el proceso es mucho más sencillo y energéticamente amigable. Son estas razones por la que muchos proyectos blockchain en la actualidad se interesan por este nuevo protocolo.
La mayor tenencia, no garantiza la selección como nodo, pero brinda mayores oportunidades. Con esto se busca que todos los que están dentro de la red se beneficien sin sufrir detrimentos. Adicionalmente, cualquiera de los inversores en los Grupos A y B, pueden invertir más para incrementar su nivel de participación. Una vez seleccionados, los inversores tienen la capacidad de realizar las tareas que se les permite. Los inversores realizan dichas tareas con el fin de recibir incentivos y ganancias proporcionales a su participación dentro del sistema. Terminada la ronda, se reinicia el proceso de selección para que otros inversores puedan participar.​

Además de esto, los fondos usados como tenencia no se pueden usar y deben ser bloqueados dentro de la blockchain. Lo que se conoce como Stake Bloqueado, no es algo indefinido, normalmente suelen ir de 1 mes, a varios años, eso depende del tiempo que quiera dejarlo en Stake el dueño, aunque hay proyectos en los que si se piden un mínimo, por ejemplo 12 meses como es el ejemplo de mi caso con CAKE, en los que tengo una cierta cantidad de tokens en Stake que he dejado 12 meses. De esta forma se garantiza que los fondos siempre estarán disponibles como garantía del nodo validador. Sin embargo, el nodo puede agregar nuevos fondos en cualquier momento, con el fin de aumentar aún más su nivel de participación.​
WALLET

Es el programa donde vamos a guardar nuestros smarts contracts, criptodivisas, NFTs... Nosotros somos custodios de nuestros tokens y eso nos da la libertad, como ya comenté antes, de poder hacer con ellos lo que queramos sin que entidades gubernamentales puedan meter sus narices en nuestros bolsillos. Las wallets son direcciones en la blockchain desde las que vamos a poder enviar o recibir tokens. La libertad que nos ofrecen también tiene que ser cuidada, puesto que si compartimos nuestra semilla o contraseña o la publicamos, lo más normal es que nos vacíen la cartera y nos quedemos con los bolsillos vacíos. Esto es muy simple, ¿a qué nunca dejarías a un desconocido tu cartera llena de billetes y te irías pensando que mañana cuando regreses, ese desconocido va a volver a estar ahí CON TODO EL DINERO y va a estar dispuesto a devolvértela? pues lo mismo con esto.
TENED CUIDADO Y NO PUBLIQUÉIS VUESTRA INFORMACIÓN SENSIBLE.
Parece una tontería pero conozco a más de uno que le ha pasado eso.

BLOQUES

Un obstáculo importante que hay que superar es lo que (en términos de Bitcoin) se denomina ataque de doble gasto: ¿Qué ocurre si existen dos transacciones en la red que quieren vaciar ambas una wallet? Sólo una de las transacciones puede ser válida, normalmente la que se acepta primero. El problema es que "primero" no es un término objetivo en una red P2P.

La respuesta abstracta a esto es que no tiene por qué importarte. Un orden globalmente aceptado de las transacciones será "elegido" por ti, resolviendo el conflicto. Las transacciones se agruparán en lo que se denomina un bloque y luego se ejecutarán y distribuirán entre todos los nodos participantes. Si dos transacciones se contradicen, la que quede en segundo lugar será rechazada y no pasará a formar parte del bloque.

Estos bloques forman una secuencia lineal en el tiempo y de ahí deriva la palabra blockchain (cadena de bloques). Los bloques se añaden a la cadena a intervalos bastante regulares: en el caso de Ethereum es aproximadamente cada 17 segundos.

Como parte del mecanismo de selección de orden (que se denomina minería) puede ocurrir que los bloques se reviertan de vez en cuando, pero sólo en la punta de la cadena. Cuantos más bloques se añadan encima de un determinado bloque, menos probable será que éste se revierta. Así que puede ocurrir que tus transacciones se reviertan e incluso se eliminen de la blockchain , pero cuanto más esperes, menos probable será.

Por lo tanto, en resumen, se podría decir que un bloque es un grupo de transacciones registradas y validadas en la blockchain, de ahí que éste último término se denomine también así.

REDES P2P

Una red P2P, o peer-to-peer, es una red donde un grupo de personas o máquinas participan de forma completamente descentralizada. Es decir, es una red donde no hay un punto central de conexión o control, y donde las partes actúan de forma autónoma respondiendo a un protocolo de comunicaciones y consenso común. De esta forma, los integrantes de la red pueden intercambiar información de forma directa y sin intermediarios.


Bueno Noders, hasta aquí los términos fundamentes que creo que necesitáis conocer, por no hacerlo más extenso en este post desarrollaré alguno más en la siguiente entrega y también os dejaré las fuentes en donde he sacado parte de la información por si queréis seguir investigando más fondo sobre ello.

FUENTES

https://docs.soliditylang.org/en/latest/introduction-to-smart-contracts.html#blocks
https://academy.bit2me.com/que-es-proof-of-stake-pos/
https://academy.bit2me.com/que-es-proof-of-work-pow/
https://academy.bit2me.com/que-son-cold-wallets/
https://academy.bit2me.com/que-son-hot-wallets/
https://academy.bit2me.com/que-es-una-red-p2p/

REFLEXIÓN PERSONAL

Bien Noders, como dije, voy a dar mi punto de vista sobre este tema. Me parece necesario que la gente contribuya a esta serie de proyectos en la blockchain por una sencilla razón, SER LOS CUSTODIOS DE NUESTRO PROPIO DINERO. ¿Por qué? hoy más que nunca es necesario concienciarse de esto, ahora estamos leyendo noticias a diario sobre la creación de un Euro Digital. Pues bien esto es una herramienta gubernamental para poder tomar acciones directas sobre nuestra riqueza, nuestro patrimonio y nuestra vida. ¿Cómo? si dejamos que los Estados tengan la potestad de controlar y ver nuestro dinero, perderemos la libertad de decisión sobre él, y por consiguiente nuestra libertad. Esto NO hay que tomarlo a la ligera, porque si mañana aceptamos todos esta medida, puede ser que si no eres un ciudadano ejemplar, por ejemplo, te hayan pillado en varias ocasiones consumiendo algún tipo de estupefaciente en vía pública como puede ser un porrete, o seas una persona reincidente en delitos de tráfico como multas por saltarte semáforos, no llevar el cinturón de seguridad puedan coger y congelarte la cuenta. Ya no solo eso, simplemente aunque seas un ciudadano ejemplar a ojos del estado, pueden anular las transacciones hacia proyectos descentralizados y fuera de su alcance como puede ser Bitcoin, por lo que se te haría imposible poder invertir en un futuro en él. Dejar al estado el control de nuestra riqueza es sinónimo a abrirles nuestra billetera y dejar que cojan a manos abiertas lo que quieran de ello. Por eso es importante involucrarse en este tipo de proyectos. No es ya por una forma de inversión y pretender hacerse rico, NO, es una forma de tener nuestra riqueza SEGURA Y DISPONIBLE. Imaginaos que llega el caso en el que se implementa el Euro Digital, la gente empieza a ver las tropelías que se hacen con dicha moneda como comenté anteriormente y empiezan a abandonar el país para irse a otros en los que se sigue usando una divisa en efectivo como es el caso actual con el Euro. Podrían denegar las compras hacia aerolíneas, permisos de residencia en países extranjeros y un sin fin más de argucias para mantenerte dentro del sistema y seguir produciendo para ellos.

A ojos del Estado no somos nada más que un número, le importa un pimiento tus ambiciones, tus aspiraciones y tu vida, te ven con los mismos ojos que un granjero ve una vaca. Eres un número al que se le puede extraer su renta para seguir alimentando un sistema que en realidad solo beneficia a quien lo maneja. Políticos, banqueros, grandes empresarios mercantilistas (que no capitalistas)... y todo ello gracias a que son los dueños del monopolio de la violencia, de forma legal. Si tú te niegas a cooperar, se presentan unos señores de uniforme azul, te encarcelan, te quitan todo lo que tienes y te anulan como persona.

Recapacitad sobre ello, nos la llevan colando desde que los estados modernos nacieron. No seáis unos ignorantes, investigas, documentaros y estudiar sobre el tema.


Un saludo.
 
Última edición: