Tecnología Blockchain, ¿Por qué?


#1

Buenas tardes caballeros,

Voy a intentar plasmar en unas líneas por qué la tecnología Blockchain podría cambiar la forma que tenemos de interactuar con internet, ¿es una buena inversión? eso tendrán que juzgarlo ustedes.

Disclaimer: No se me da muy bien expresarme por escrito y espero animar el debate con este post, por tanto espero comentarios y preguntas al final :rofl:

Quiero empezar con esta pregunta, ¿Por qué Blockchain?

Blockchain es una tecnología que promete que podamos realizar actividades diarias de forma:

  1. Segura (Safe)
  2. “Verdadera” (True es el termino que se usa en inglés, lo he traducido por verdadera)
  3. Confiables (Trust)

Por tanto en un futuro cualquier tecnología que implemente el Blockchain frente a aquella que no lo implemente será más segura, más confiable y más “verdadera”.
Ej:
Aviones – Un avión dentro de una red Blockchain de aviones, sería igual que cualquier avión normal, pero mucho más difícil de hackear, por tanto un avión en la Blockchain podríamos confiar (Trust) que su software es correcto (true) quiero decir que no ha sido hackeado, y eso le da su seguridad.

Entonces ¿cuál es la diferencia entre cualquier software utilizado hoy día y otro que esté en Blockchain? A nivel de ejecución ambos realizan la misma tarea, pero el Blockchain además tiene sus tres carácterísticas clave, Safe, True and Trust.

Y bueno como este es un foro muy intelectual, y somos curiosos, queremos saber, ¿cómo?, para ello voy a explicar qué es el Blockchain y su funcionamiento.

El Blockchain es una base de datos distribuida, por tanto cualquiera que sepa como funciona un poco internet (cada página web está alojada en un servidor, al escribir la URL te redirige a ese Servidor, ese Servidor por lo general tiene una base de datos con la que interactua, por lo general las webs “gordas” tienen servidores backup y réplicas etc, no soy experto tampoco), puede ver la diferencia.
Ahora mismo internet es una red Descentralizada, varios nodos/servidores repartidos, si por ejemplo atacas al servidor de amazon o Facebook con ataque de denegación de servicios, probablemente tires uno de sus servidores, pero luego están los backups y los de replica y esas cosas, entonces es difícil pero no imposible acabar con las grandes páginas webs.
El Blockchain es distribuida, esto significa que la Base de datos no están concentrada en 2 o 3 servidores, sino que está replicada en toda la red.
image

Si atacas a un nodo de la Blockchain, siempre hay otro nodo y la única forma de tomar control de la red es con suficiente “potencia” para atacar a más de la mitad de los nodos.
Por tanto la carácterística de ser distribuida te da la confianza (Trust) de que la red va a estar ahí soportando los ataques, disponibilidad del 100%, no recuerdo la última vez que el Bitcoin se “cayó”, cuando el hecho de que se “caiga” Facebook puede salir directamente en las noticias.

Luego lo de los “Bloques”, los bloques simplemente es que antes de escribir en la Base de datos, la información se agrupa en “Bloques” pero no deja de ser una Base de datos normal, donde la diferencia es la forma de almacenar la información, porque los Bloques primero han sido revisado por los “Mineros” (nodos/servidores que se ocupan de mantener la red), para que un Bloque sea válido debe cumplir las reglas de “Consensus”, y si tenemos un minero que se salta las reglas de Consensus e intenta hacer trampas, su bloque será invalidado por el resto de los Mineros y será simplemente desechado.

Entonces ¿qué permite introducir la información en forma de bloques? pues muy sencillo, al estar la información verificada por los mineros, sabemos que lo que haya en los Bloques de la Blockchain va a ser verdad.
Ej:
BTC, si yo tengo 0 BTC y creo una transacción de enviar 1 BTC a otra cuenta, los mineros van a ver que mi transacción es imposible, y la van a desechar, por tanto mi “mentira” no va a entrar en la Blockchain.
Si un Minero “malo” por su tarea de minar intenta añadirse 100 BTC en su Bloque, los demás mineros detectan que no sigue la regla del Consensus que dice que la recompensa por minar son 12.5 BTC y desechan ese Bloque, y el Minero “malo” se habrá gastado su energía para nada.

Por último la parte Cadena/Chain, esto es lo que da en mi opinión la seguridad/safe, una vez que la información está en un Bloque, ese bloque se “encadena” mediante funciones Hash únicas, esto permite que un Bloque esté relacionado con el anterior, que está relacionado con el anterior, etc, etc… ad infinitum.
¿Qué significa esto? que si tenemos un hacker que toma el control de la Blockchain porque tiene más potencia que todos los demás nodos de la Blockchain, e intenta cambiar un dato de la Blockchain, puede cambiar un dato del último bloque sin problemas (siempre que cumpla las reglas de Consensus), puede cambiar el dato de los dos ultimos bloques, si tras cambiarlo vuelve a minar, puede cambiar los datos de 5 bloques y después vuelve a minar, pero para cambiar un dato bien enterrado en la cadena el proceso tiene un consumo de energía y tiempo que es prácticamente imposible de cambiar.
Por ejemplo para el BTC una transacción que esté “enterrada” 6 bloques ya se da por buena para siempre, esa transacción es verdad.
Sobre este tema hay mucho más que se puede hablar pero se va a hacer muy largo, lo vemos en las preguntas.

Otros detalles, son las llaves públicas y privadas, y el “anonimato”.

Sobre el papel, una llave privada (un numero aleatorio entre 0 y 2^256) es lo que permite hacer transacciones asociadas a una cuenta pública, esto significa que solo el que conozca la contraseña/llave privada puede sacar “cryptos” de la cuenta pública asociada.

Lo genial de esto es que, las transacciones se verifican automáticamente si han sido “firmadas” por la llave privada, pero nadie nunca sabe cuál es la llave privada, por tanto no es como el banco que tu metes el PIN y ahora el cajero verifica que tu PIN está asociado a tu tarjeta en su Base de datos (con su criptografía detrás etc).

Esto de las llaves permite eliminar a la tercera parte, al middle man que está ahí verificando que eres tú el que firma la transacción.

No me quiero extender mucho, por tanto voy a saltar a lo que yo creo que es la revolución de esta tecnología, los Smart Contracts.
Si hemos dicho que la Blockchain son Bases de datos distribuidas, algunas Blockchains como Etherum, NEO y otras van un paso más allá y tienen una Máquina Virtual distribuida que ejecuta el código de esa Base de Datos distribuida, esto significa que si tu metes un código en esa Base de datos ese código acaba de ganar todas carácterísticas de la Blockchain.
Ej:
Código para comprar fondos de inversión con aportaciones automáticas, el código dice coge 100€ de la cuenta de Carlos y se la envías al fondo X cada mes, un hacker puede venir y cambiar el código para que se escriba los euros que quiera a la cuenta que quiera, y nadie se da cuenta hasta que vea mi cuenta bancaria.
En Etherum una vez que el Smart Contract de, por ejemplo, enviar 100 CarlosCoin de la cuenta A a la cuenta B todos los meses, salvo que Carlos cancele, esté la Blockchain de Etherum:

  1. Nunca se podrá editar/hackear
  2. Se ejecuta solo en los servidores distribuidos de la red, por tanto disponibilidad del contrato 100% mientras siga habiendo mineros.
  3. No hace falta Third Party.

Entonces para ir cerrando, un poco resumen:
Internet vs Blockchain:
Blockchain es seguro, verdad, confiable. te quitas a la Third Party, tú eres dueño de tus datos (ej: Facebook te puede censurar o usar tus datos, un Facebook en la Blockchain solo tú con la private key puede ver o modificar tus datos o publicaciones), también el Blockchain está naciendo, es lento pero seguro, y no tiene ni de cerca mass adoption del internet actual.
Tecnologías con Blockchain vs sin Blockchain:
Este es el siguiente paso, pasar de los Exchanges a usos reales, un airbnb o un uber sin airbnb o sin uber, hacer microtransacciones sin bancos ni VISA, ni TPVs, un ahorro de comisiones enorme, en el que ahora mismo simplemente por ser el intermediario te llevas una comisión enorme, un alquiler de piso sin que el de la inmobiliaria se lleve x%.

BTC y criptomonedas contra Smart Contracts:
BTC y otras monedas como Monero, su Blockchain es una Base de Datos que consiste en un “Ledger”, libro de cuentas, libro de transacciones, donde están resumidas todas las transacciones de esa criptomoneda, quien tiene y a quien se envía.
Sin embargo los Smart Contracts te permiten ejecutar cualquier código que se te ocurra, el universo es infinito, Etherum requiere que aprendas Solidity, pero creo que NEO utiliza Java (no soy programador pero Java creo que era de los fáciles), esto permite que cualquier programador normal en unas horas sea programador Blockchain.

Y por acabar el último gran uso de los Smart Contracts que es uno de los que he probado yo, es que te permite crear cualquier otra criptomoneda, el código más utilizado en Etherum es como crear tu propia criptomoneda, el código crea un smart contract que lleva la cuenta de cuantas +DividendoTokens hay y quien las tiene, te permite enviar y recibir y además intereactuar desde cualquier “Wallet” de Etherum.
Lo mejor es que para crear tu criptomoneda y otros Smart Contracts típicos ya hay plantillas e incluso Webs que te lo compilan y cargan en la Blockchain (por un precio claro) por lo que no necesitas descargarte nada.

Mi opinión:
La tecnología ha venido para quedarse, cada vez hay más movimiento y más proyectos y más empresas, y las empresas que no lo adopten probablemente tendrán problemas contra la competencia que sí lo haga.
Leyendo los 4 pilares de la inversión, se comenta que la tecnología no hace rico a los creadores sino que los beneficios repercuten en los usuarios, yo llevo unas cuantas criptos y espero llevarme los beneficios de la tecnología y de los usuarios.

Cordial saludo, espero preguntas y debate, y podemos hablar en profundidad de temas que se han tocado o no en el Post.

PD: Su opinión del tema me interesa mucho.

PD2: Fuente --> Web de mi profesor Henry donde tiene toooooda la información que usa para sus clases muy bien recopilada.


#2

lo que yo creo que es la revolución de esta tecnología, los Smart Contracts.

Los Smart Contracts no tendrían sentido sin una manera de distribuir valor descentralizada, no dependiente de confianza y abierta. Son un producto de todo lo anterior, y esa es la revolución. Es cierto que tienen muchas posibilidades, pero ya teníamos cosas parecidas a un smart contract, como puede ser los pagos domiciliados, pero para eso tiene que intermediar un banco u otra entidad. La magia de Bitcoin es conseguir hacerlo sin depender de un tercero de confianza e incluso poderlo hacerlo entre máquinas o entidades autónomas.

Solo puntualizar que los bitcoins no se sacan, no salen de la cadena de bloques. Solo cambian de dueño al asociarse a otra clave, gracias a firmar una transacción con la clave privada correspondiente a la antigua clave.

Tanto bancos como Bitcoin utilizan criptografía, que básicamente es compartir información que puede ser vista por cualquiera, pero de manera que solo los indicados (los que conocen la clave) pueden interpretar. A lo que voy es a que Bitcoin es utilizar tecnologías que ya existían (prueba de trabajo, criptografía, resumentes hash)
para desarrollar un protocolo que sirve para algo nuevo, que es la generación de certidumbre entre partes desconocidas y no confiables entre sí.

Sobre diferenciar entre ETH y BTC para la ejecución de Smart Contracts, la diferencia entre BTC y ETH es que en su capa principal, ETH permite programar con lenguaje turing completo (muy complejo) y BTC no. Los smart contracts de BTC son menos inteligentes por motivos de seguridad, pero existen. De hecho, existen desde 1995, antes de inventarse BTC. Y ya se están desarrollando segundas capas de BTC capaces de ejecutar Turing completo.