BLOCKCHAIN "Cadena de bloques"

Actualización 07/12/2019 sobre cadena de bloques "Blockchain"

En la web de Fun On The Ride tenéis un curso sencillo, gratis, pero muy bueno

 


Según voy estudiando las criptomonedas, me doy cuenta que sin tener un buen conocimiento del funcionamiento interno de su sistema, no llegare a su verdadera comprensión.

Tras leer varios artículos, estudiar el curso de Fun on the Ride y ver algunos vídeos en youtube, encontré este de Taylor PearsonAutor, ensayista y emprendedor. 
El articulo de julio de 2018, es un estudio muy completo sobre las cadenas de bloques, a partir de ahora BLOCKCHAIN

Yo tan solo aportó la traducción, con la inestimable ayuda del Sr. Google, por desgracia este Señor no sabe traducir las fotos 

😡😡😡

"Adelanto esta parte del articulo por ser muy aclaratoria"


Las Blockchains son como libros ... 


 Una de las maneras más sencillas que he encontrado para pensar en blockchains es como las páginas de un libro. Un libro es una cadena de páginas con:


1.- Datos - (también conocido como el texto) en cada página.

2.- Metadatos: los metadatos son información sobre sí mismo. En la parte superior o inferior de cada página, hay información sobre el libro, como el título del libro, el título del capítulo y un número de página.


Un blockchain es una cadena de bloques con
  •      Datos: el contenido del bloque
  •      Metadatos: datos sobre el bloque, incluida una referencia al bloque anterior y un hash de los datos contenidos en este bloque.

Si eliminaste todas las páginas de un libro, puedes ponerlas en orden cuando la historia tenga sentido usando el número de página.

Del mismo modo, en una cadena de bloques, cada bloque hace referencia al hash del bloque anterior, lo que permite validar en qué orden tuvieron lugar las transacciones. Sabría si alguien los revuelve como lo haría si alguien revolviera la página de un libro.

El hash es en realidad mejor que un número de página porque contiene un hash de todos los datos en la página. En teoría, alguien podría arrancar las páginas de un libro, borrar el blanco y cambiar los números de página y usted no lo sabría.

Si alguien intentara hacer el equivalente en nuestro "libro" de blockchain, sería transparente porque cambiar una letra en una página cambiaría el hash. Esto se reduce al hecho de que una cadena de bloques es una secuencia de datos transitados aleatoriamente. Cambiar cualquier bit en cualquier lugar en el pasado cambiaría todo después de eso de una manera caótica y fácil de detectar.

¿Cómo funciona la tecnología Blockchain?

 "El primer blockchain fue conceptualizado por un individuo (o grupo de individuos) conocido como Satoshi Nakamoto en 2008".
Fue lanzado al año siguiente en enero de 2009 por Nakamoto como un componente central de la criptomoneda Bitcoin, donde sirve como libro público para todas las transacciones en la red.

Mediante el uso de una cadena de bloques, Bitcoin se convirtió en la primera moneda digital para resolver el problema del doble gasto sin requerir una autoridad de confianza y ha sido la inspiración para muchas aplicaciones adicionales.

Creo que en cien años, las cadenas de bloques serán tan comunes y necesarias como la electricidad hoy en día. Serán piezas fundamentales de la economía con las que casi todos interactuarán a diario. Serán tan normales que olvidaremos que existen.


Deberíamos esperar que, en las próximas dos décadas, veamos una explosión cámbrica de aplicaciones y organizaciones de blockchain muy similar a lo que sucedió con Internet en las últimas décadas o la electrificación a principios del siglo XX.

Si eso es cierto, vale la pena desarrollar un entendimiento básico para blockchains, incluyendo por qué son importantes y cómo funcionan.


  Por qué el blockchain importa

"Es una perogrullada profundamente errónea, repetida por todos los libros de copias 
y por personas eminentes cuando están pronunciando discursos, que debemos 
cultivar el hábito de pensar [sobre] lo que estamos haciendo. 
El caso contrario es el exacto. 
La civilización avanza al extender el número de operaciones importantes que 
podemos realizar sin pensar en ellas."
Alfred North Whitehead



En una cadena de bloques, cada vez que se lleva a cabo una transacción, como una parte que envía bitcoin directamente a otra, los detalles de esa oferta, incluidos su fuente, destino y fecha / marca de tiempo, se agregan a lo que se conoce como un bloque.


Usando la criptografía, blockchains aumenta drásticamente la escalabilidad social, la capacidad de los humanos para colaborar con un número cada vez mayor de otros humanos, una característica necesaria de la civilización.


Históricamente, los humanos solo hacían transacciones con miembros de una tribu pequeña, a menudo basados ​​solo en el parentesco, porque no había forma de que confiaran en personas ajenas a ese grupo.


Una amplia variedad de innovaciones en los últimos milenios ha aumentado la escalabilidad social al permitir que los humanos cooperen en grupos más grandes.


El sistema legal moderno que reduce la vulnerabilidad a la violencia, el robo y el fraude permite que las partes o individuos que no tienen relaciones preexistentes interactúen.


Internet, en particular a través de sistemas de calificación, facilitó las transacciones entre personas con poca o ninguna relación social.


Las Blockchains tienen el potencial de aumentar la escalabilidad social a un nivel que ninguna tecnología anterior tiene. Por primera vez, tenemos un medio para que un usuario de Internet transfiera una pieza única de propiedad digital a otro usuario de Internet de forma segura sin depender de un tercero. Es difícil exagerar cuán grande es esto.


Piense en contratos digitales, claves digitales (para bloqueos físicos o bloqueos en línea) y propiedad digital de activos físicos, incluidos automóviles, casas, acciones, bonos y, por supuesto, dinero digital.


Nota: Hay mucho más que decir acerca de por qué importan los Blockchains. Con el objetivo de no hacer que este artículo sea increíblemente largo, enfocaré este artículo principalmente en el "cómo" en lugar del "por qué". Si desea leer más acerca de por qué la tecnología blockchain es importante, consulte:

¿Por qué es valiosa la tecnología Bitcoin y Cryptocurrency?
Money, blockchains y escalabilidad social
Una carta a Jamie Dimon
Más allá de la burbuja de Bitcoin
Por qué importa la descentralización


¿Cómo funciona la tecnología Blockchain?

Aquí está la breve versión de jerga-y:

Un blockchain es un ledger (libro Mayor) que usa criptografía e incentivos para registrar transacciones de una manera inviolable. Esto permite transacciones minimizadas de confianza entre partes seudónimas sin requerir un intermediario de confianza.


Ahora, vamos a descomprimir las piezas allí para que al final del artículo tenga sentido para ti.



Principios

Antes de sumergirnos en blockchains, necesitamos establecer algunos principios. Los principios son como material de construcción. Si quieres construir un cobertizo, vas a necesitar un poco de madera, algunos tornillos, un taladro y una sierra. Sería bueno tener una breve idea de cómo funcionan cada uno de ellos antes de comenzar a construir. Eso es todo lo que vamos a hacer aquí.

Los bloques de construcción de blockchains son sorpresa, sorpresa, principios criptográficos.


La criptografía es el estudio de técnicas para comunicarse de forma segura en presencia de terceros (adversarios de AKA).


Históricamente, una gran cantidad de investigación en criptografía hecho por los militares para asegurar que podían comunicarse de forma segura sin que sus enemigos sean capaces de leer sus mensajes de telegramas o de radio.


La criptografía moderna se usa en todos los sitios web populares, en los chips de tarjetas de crédito y en las contraseñas de las computadoras. En todos estos casos, intenta evitar que un tercero (léase: hacker, ladrón, etc.) robe datos confidenciales como la información de su tarjeta de crédito.


El primer bloque de construcción con el que comenzaremos son las funciones hash.

Funciones del hash 

Una función hash es una función matemática que le permite encriptar datos. [1]

Una función hash tiene tres propiedades:
  • Su entrada puede ser de cualquier tamaño.
P.ej. Podría usar la frase "Me gusta el helado" como entrada o podría usar todo el texto de Guerra y paz y ambos funcionarían.
  • Usando cualquier tamaño de entrada, se obtiene una salida de tamaño fijo determinada por el algoritmo de hashing particular que se está utilizando. Para mantenerlo simple, usaremos una salida de 256 bits ya que eso es lo que Bitcoin, la primera cadena de bloques, usa.

Si ingresa la frase "Me gusta el helado" como entrada o utilicé el texto completo de Guerra y paz como entrada, ambos producirían un resultado del mismo tamaño.


Usando el algoritmo SHA 256, el usado por Bitcoin, la frase "Me gusta el helado" (sin comillas) crea la salida:138F4504A873C01D0864343FAD3027F03CA9BEA2F0109005FA4FC8C7DCC12634


La totalidad de War and Peace (todas las 587,287 palabras) copiadas del proyecto Gutenberg produce el resultado:57027F5B3877ABBE43ACB101D59E963BC2CC0E86A6EBCCC34DFD035BBF83B096


Aunque la entrada es 146,821 veces más larga, se obtiene el mismo tamaño de salida. Genial y, resulta, útil. Más sobre eso más tarde.

  • Es eficientemente computable. Para cualquier cadena de entrada dada, puede calcular la salida en un tiempo razonable.


Incluso si quiero utilizar todo el texto de War and Peace como mi entrada, aún puede convertir eso en una salida en un tiempo razonable.


Las propiedades anteriores son para una función hash general. Las funciones hash generales le permiten mapear un gran espacio de cosas en un espacio pequeño que puede ser útil para almacenar y trabajar con diferentes tipos de datos.


Sin embargo, vamos a centrarnos en las funciones hash criptográficas, ya que esas son las que se usan en blockchains.


Una función hash criptográfica requiere tres propiedades adicionales:

1.-   
Resistencia a colisión
2.-   
Detección determinista
3.-   
Puzzle Amabilidad

Funciones hash criptográficas

Resistencia a colisión

Una colisión ocurre cuando dos entradas diferentes producen la misma salida. Si bien el tamaño de salida será el mismo, la salida en sí misma no será idéntica a otras salidas. "Me gusta el helado" y todo el texto de Guerra y Paz produce productos del mismo tamaño, pero los personajes son diferentes.

Si produjeran el mismo resultado y te enviara ese texto encriptado y lo descifraste, no sabrías si te estaba diciendo que me gustaba el helado o que deberías leer Guerra y Paz.

También es notable que dos entradas "cercanas" no dan como resultado salidas cercanas. El hash de Guerra y Paz es completamente diferente al hash de Guerra y Paz con 1 personaje cambiado.

Usando SHA256, la totalidad de Guerra y Paz produce el hash:

57027F5B3877ABBE43ACB101D59E963BC2CC0E86A6EBCCC34DFD035BBF83B096

Si elimino el período final, pero dejo todo lo demás igual, produce el hash:

E2E2E4FFD582E20474F0310C2132EAE5F2D766C6A253C1BC4AF57861095B30FA

Esto es muy similar a cómo dos puntos de partida "cercanos" en un sistema caótico conducen rápidamente a dos trayectorias futuras completamente diferentes. Es esta propiedad de "codificación caótica" de las funciones hash la que crea resistencia a la colisión. Las salidas son aparentemente aleatorias y, por lo tanto, es poco probable que colisionen, pero pueden mapear infinito a espacio finito, lo que nos permite comprimir datos.

Esto es particularmente importante si está enviando dinero. La clave pública para su billetera se produce a partir de la clave privada mediante una función de cifrado hash. No desea que otra persona pueda aplicar ingeniería inversa para obtener su clave pública para descubrir su clave privada (ya que podrían robarle todos sus fondos).

Se considera que una función hash es resistente a colisiones si nadie puede encontrar una colisión. En teoría, sabemos que existen porque el número de entradas es infinito, pero el número de salidas es finito: solo hay muchas formas de organizar 64 caracteres.

En la práctica, sin embargo, la función hash criptográfica SHA 256 es resistente a colisiones porque nadie ha encontrado una colisión y las probabilidades de que suceda son astronómicas. Si cada computadora alguna vez hecha por la humanidad ha estado tratando de encontrar una colisión desde el comienzo del universo, las probabilidades de que suceda son menores que las probabilidades de que la Tierra sea destruida por un meteoro gigante en los próximos dos segundos.

Entonces, es posible, pero hay muchos otros problemas más grandes de los que deberíamos preocuparnos primero.


Detección determinista

Los hashes parecen aleatorios, pero en realidad son deterministas. Por lo tanto, sus resultados son reproducibles, de modo que siempre que use la misma entrada, siempre obtendrá el mismo resultado. Esto significa que dos partes diferentes que conocen la entrada pueden verificar que la otra persona también conozca la entrada al mostrar su hash a la otra parte.

La segunda propiedad que queremos para una función hash criptográfica está escondida. Ocultar significa que si le dan el resultado, no hay una forma factible de averiguar cuál fue la entrada.


Es decir, no hay forma de que un tercer observador sepa que 138F4504A873C01D0864343FAD3027F03CA9BEA2F0109005FA4FC8C7DCC12634 significa "Me gusta el helado".


Sin embargo, si sé que la entrada es "Me gusta el helado", entonces puedo verificar fácilmente si lo sabes o no al verificar tu hash.


Sin embargo, si alguien más ve el hash, no puede usarlo para descubrir la entrada. Esto permite que aquellos que conocen la entrada se comuniquen de forma segura al respecto en un canal público utilizando la salida hash sin preocuparse de que un tercero observador pueda resolverlo.


Puzzle Amabilidad

La tercera propiedad que necesitamos es que sean amigables con los rompecabezas. Esto significa que si alguien quería generar un hash que obtuviera el mismo resultado que "Me gusta el helado", es extremadamente difícil encontrar otro valor que llegue exactamente a este objetivo.

El algoritmo para generar el hash es probar cada cadena posible, ordenada por longitud y luego por orden alfabético, hasta que obtenga una que tenga el mismo valor. Hay un gran pajar para buscar una aguja muy pequeña, así que obtenemos probabilidades que sugieren que un asteroide que aniquila toda la vida en la Tierra es un problema más acuciante.

Otra forma de decir esto es que las funciones hash criptográficas son difíciles de revertir. Esto es lo principal que hace un hash criptográfico en comparación con un hash utilizado en estructuras de datos o un algoritmo de compresión.

Esta es también la carrera de armamentos que forma parte de las blockchains: los hackers siempre mejoran invirtiendo las funciones hash, de modo que los criptógrafos siempre tienen que encontrar mejores funciones hash.

Tener esta calidad es importante porque la cadena de bloques es un "libro mayor inviolable", un registro de transacciones a prueba de manipulaciones.

La propiedad de amabilidad del rompecabezas es lo que hace que sea evidente. Si quisiera reemplazar una entrada como "Me gusta el helado", me sería imposible hacerlo sin que otros participantes puedan saberlo.

Usando una buena función de cifrado hash, incluso cambios leves en la entrada darán lugar a salidas dramáticamente diferentes que harán que la entrada sea inviolable.
 Las funciones de hash criptográficas parecen aleatorias (y por lo tanto carecen de colisiones), no se pueden revertir y ocultan las entradas, pero, al mismo tiempo, son completamente deterministas. ¡Esto es lo que los hace útiles!

Esto cubre los conceptos básicos de las funciones hash criptográficas. En la siguiente sección, veremos cómo estas funciones hash se usan para construir blockchains.

Funciones transitorias hash dentro de Blockchain

La sección anterior sobre las funciones hash anteriores es en realidad una gran introducción a cómo hash una sola pieza de información como palabras en un libro o una contraseña.

¿Qué pasaría si quisiera almacenar colecciones de datos como un montón de documentos o una secuencia de transacciones?

Comencemos con una secuencia lineal de cosas que puede querer hash consecutivamente. Empiezas con algún dato, A, y lo haces para obtener A #.

Ahora quiere "mezclar" B. Entonces solo agrega B a él (A # + B) y tome el hash de todo. Ahora tiene un hash nuevo (B #) que tiene información sobre ambos A (del hash A # que usó) y B.

Lo que necesita es una función hash para la cual cambiar cualquier cosa sobre A o B resultaría en un hash final diferente. Esta es una función hash transitiva.


Un blockchain es una cadena de hashes.
 Cuando la gente habla de blockchains, una de las palabras que se usa mucho es "minimizada por la confianza".

Los hashes en general, y los punteros hash en particular, son un componente central de la propiedad minimizada de confianza de blockchains. Un puntero hash es solo un hash que apunta a alguna otra estructura de datos como un bloque anterior.


Esto es un gran problema porque hace que sea fácil ver si alguien manipula los datos.


Si tuviéramos un blockchain de 100 bloques y el décimo bloque contuviera el hash de todo el manuscrito para War and Peace y cambiara una letra en el manuscrito, cambiaría el puntero de hash en ese bloque y todos los bloques subsiguientes. [2]


Los punteros hash garantizan la integridad del ledger (es decir, que no se ha modificado). Las cadenas de bloques se han llamado contabilidad de entrada triple porque esta estructura de datos de punto de referencia es otra forma más difícil de forjar para asegurarse de que el libro de contabilidad refleje la realidad.


Por ejemplo, si hay dos personas que colaboran en un proyecto y una persona intenta retroceder y modificar algo para que gane más dinero, de inmediato le queda claro a su compañero que están tratando de hacer trampa: terminarán con un resultado hash eso es diferente.


Árboles Merkle

Ahora, ¿qué pasa si no quiere no solo una secuencia lineal, sino una secuencia de conjuntos como el conjunto de transacciones de Bitcoin en su secuencia de bloques? Lo nuevo que necesita es una regla sobre cómo atravesar cada conjunto de datos, reduciendo el problema nuevamente a encriptar una serie consecutiva de cosas (A #, B #, etc.)

Un árbol Merkle es exactamente esto. Le permite agrupar bloques de datos y agruparlos en una estructura que se parece, bueno, a una rama de árbol con hojas.

 

Al igual que con una cadena de bloques, siempre que sepamos el punto de dispersión en la "raíz" del árbol, podemos saber que ninguno de los datos en el árbol ha sido alterado.

Si se modifica un bit, en una transacción, cambia cada hash posterior y se revela la alteración.

El uso de un árbol de Merkle es preferible a solo un resumen de todas las transacciones porque permite una prueba mucho más rápida y sencilla de si una transacción en particular está incluida en el conjunto de todas las transacciones.

Blockchains

Comenzamos mirando funciones hash.

Luego vimos cómo podíamos agregar tres propiedades: resistencia a la colisión, ocultamiento determinista y facilidad de puzzle para convertir una función hash en una función hash criptográfica.

Luego, vimos cómo podíamos conectar las funciones hash criptográficas para crear una función hash criptográfica transitiva.

Cuando agregamos un árbol Merkle a una función hash criptográfica transitiva, obtenemos una cadena de bloques. Cada bloque contiene un conjunto de transacciones "merkleized" y los bloques están encadenados juntos.

Prueba de trabajo Blockchains

La innovación de Satoshi Nakomoto, el creador (es) anónimo (s) de Bitcoin, era hacer una regla más. Cuando agrega un nuevo conjunto de transacciones (también conocido como un bloque) en la cadena existente, debe resolver un problema difícil de resolver.

Esto es lo que hacen los llamados "mineros". Intentan resolver un problema matemático muy difícil y, cuando lo hacen, reciben una recompensa y clasifican la dificultad del problema en la cadena. Este hash de la dificultad es una "prueba de trabajo", que es una prueba de cuánta energía computacional entró en intentar resolver el problema.

Entre los criptógrafos, la invención de esta "cadena de prueba de trabajo" fue el mayor avance de Satoshi Nakamoto.

Como una prueba de trabajo blockchain como Bitcoin se vuelve más valioso, los mineros ganan más dinero lo que incentiva a más mineros a participar en la red lo que aumenta la dificultad del problema.

Cualquiera puede descargar blockchain en su computadora y:

  • Verifique consecutivamente que cada bloque se numera de manera transitiva correctamente sobre el bloque anterior.

Y

  • Pueden calcular la cantidad total de cálculos requeridos para producir estos datos leyendo la dificultad de cada bloque y verificando la solución de los mineros.

La cadena de bloques con la prueba de trabajo más acumulada (es decir, la más difícil y costosa de crear) se considera la verdadera cadena de bloques.

Si alguien le entregó la cadena de bloques de Bitcoin de hoy en un disco, podría estimar muy rápidamente la gran cantidad de energía que se invirtió para construir esta información.

El beneficio de esto es que nadie puede "falsificar" una cadena de bloques del tamaño de Bitcoin con las mismas dificultades introducidas en sus bloques sin gastar la misma cantidad de energía computacional.

A partir de mediados de 2018, costaría miles de millones de dólares comprar suficientes computadoras y electricidad para reescribir desde cero la cadena de bloques de Bitcoin.

Nota: (Minería, Prueba de trabajo, Prueba de apuesta y otros algoritmos de consenso merecen una publicación completamente diferente, pero al menos quería mencionarlos aquí en el contexto de blockchains).

Firmas digitales (también conocido como Criptografía de clave pública / privada)   


Una firma digital es el principio y final de blockchains. Un esquema de firma digital exitoso funciona más o menos igual que una firma manuscrita con dos propiedades principales.

El primero es la verificabilidad. Si firmo una transacción con mi clave privada, alguien más debe poder validarla usando mi clave pública. Del mismo modo, solo usted puede escribir su propia firma, pero cualquiera puede ver que es suya.

Una clave privada y una clave pública juntas forman un par de claves. La clave privada es algo que no compartes con nadie, pero utilizas para firmar transacciones que prueben que es tuya.

Es como el sello de cera que los personajes de Harry Potter solían poner en letras para demostrar que enviaron una carta y que no fue manipulada. No querría compartir el sello con nadie porque podrían enviar mensajes haciéndose pasar por usted.


La clave pública es algo que puede proporcionar a todos para que puedan verificar que sea su firma sin que puedan firmarla. Esto es como si el destinatario tuviera una pintura de su sello que pudiera confirmar que coincide correctamente sin poder realmente usarlo para sellar un mensaje.

Tu clave pública es un hash de tu clave privada. Su dirección, como en "¿Cuál es su dirección de bitcoin para que yo pueda pagarle?" Es un hash de su clave pública.

Clave privada == hash ==> Clave pública == hash ==> Dirección

Debido a las propiedades de las funciones hash criptográficas, esto significa que puede publicar su dirección en cualquier lugar para que las personas puedan enviarle bitcoin, ethereum o cualquier otra criptomoneda sin poder realizar una ingeniería inversa para descubrir sus claves privadas.


La segunda propiedad es inolvidable. Su firma está vinculada a un documento en particular. No desea que alguien pueda "recortar" su firma de un documento y pegarlo en la parte inferior de otro (¡como si dijera que les debe dinero!).

Bitcoin usa un esquema de firma digital llamado Algoritmo de firma digital de curva elíptica para lograr estas dos propiedades. Otros blockchains y cryptocurrencies usan diferentes esquemas de firma digital, pero todos tienen las mismas dos propiedades de verificabilidad e imposibilidad de forzar.


Las Blockchains son como libros ... 

 Una de las maneras más sencillas que he encontrado para pensar en blockchains es como las páginas de un libro. Un libro es una cadena de páginas con:

1.- Datos - (también conocido como el texto) en cada página.

2.- Metadatos: los metadatos son información sobre sí mismo. En la parte superior o inferior de cada página, hay información sobre el libro, como el título del libro, el título del capítulo y un número de página.

Un blockchain es una cadena de bloques con
  •      Datos: el contenido del bloque
  •      Metadatos: datos sobre el bloque, incluida una referencia al bloque anterior y un hash de los datos contenidos en este bloque.

Si eliminaste todas las páginas de un libro, puedes ponerlas en orden cuando la historia tenga sentido usando el número de página.

Del mismo modo, en una cadena de bloques, cada bloque hace referencia al hash del bloque anterior, lo que permite validar en qué orden tuvieron lugar las transacciones. Sabría si alguien los revuelve como lo haría si alguien revolviera la página de un libro.

El hash es en realidad mejor que un número de página porque contiene un hash de todos los datos en la página. En teoría, alguien podría arrancar las páginas de un libro, borrar el blanco y cambiar los números de página y usted no lo sabría.


Si alguien intentara hacer el equivalente en nuestro "libro" de blockchain, sería transparente porque cambiar una letra en una página cambiaría el hash. Esto se reduce al hecho de que una cadena de bloques es una secuencia de datos transitados aleatoriamente. Cambiar cualquier bit en cualquier lugar en el pasado cambiaría todo después de eso de una manera caótica y fácil de detectar.

Blockchain explicado: La evolución de la tecnología Blockchain     

 Ahora, tomemos estos principios y veamos cómo se pueden usar para construir una cadena de bloques simple.

Estos tipos de blockchains son la base de las criptomonedas como Bitcoin y Ethereum. Al comprender cómo funcionan, tendrás una base para entender todos los diferentes proyectos de cadena de bloques y criptomonedas.


Goofy Moneda

GoofyCoin es la cadena de bloques más simple que podemos imaginar.

Hay tres reglas de GoofyCoin.

  • Goofy puede crear nuevas monedas cuando quiera y estas monedas recién creadas le pertenecen. La moneda tiene una identificación de moneda única que Goofy luego firma con su clave para que cualquiera pueda usar la clave pública de Goofy para confirmar que la moneda es válida GoofyCoin.


"Firmado por pkGoofy" significa que Goofy firmó la transacción (en este caso, la creación de una nueva moneda) utilizando su par de llaves público / privado.

  • Quien posee una moneda puede transferirla a otra persona usando operaciones criptográficas. Si Goofy quiere transferir una moneda a Alicia, crea una transacción que dice "Pagar esta moneda a Alicia". Debido a que las monedas solo se pueden enviar usando operaciones criptográficas, "esto" es un puntero que apunta a la moneda en cuestión. Goofy luego firma esta transacción usando su clave secreta, convirtiéndola en una transacción válida. Cualquiera puede verificar que sea una transacción válida confirmando la firma de Goofy.



  • Cualquiera puede verificar la validez de una moneda y quién la posee siguiendo la cadena de punteros (la cadena de bloques) hasta su creación por Goofy, asegurándose de que todos los hash sean correctos en el camino. En el ejemplo anterior, cualquiera puede verificar que Goofy creó una moneda válida y que hizo una transferencia válida a Alice. Sin embargo, hay un problema de seguridad con GoofyCoin. Veamos un ejemplo. Con su nuevo GoofyCoin, Alice podría firmar una transacción pagando a Bob por un sándwich.



Se ve bien ¿verdad? Cualquiera puede entrar y ver que estas transacciones son todas válidas.

Pero, ¿y si Alice usa la misma moneda para pagar a Chuck por un batido?



Tanto Bob como Chuck creen que ahora tienen un GoofyCoin. Parece una transacción válida porque tanto Chuck como Bob pueden ver que Alice lo firmó y lo siguen en la cadena de bloques para ver que Goofy lo creó como una moneda válida.

Esto se llama un ataque de doble gasto. Alice está gastando la misma moneda dos veces, y no es así como queremos que el dinero funcione. No puede darle el mismo billete de $ 10 a una persona por un bocadillo y a otra persona por un batido.

Un ataque de doble gasto es uno de los principales problemas que protege una criptomoneda funcional.

Para resolver el problema del doble gasto, necesitaremos crear una nueva moneda llamada ScroogeCoin.


ScroogeCoin

 ScroogeCoin funciona igual que GoofyCoin con algunos ajustes diferentes.

A diferencia de Goofy Coin, Scrooge publica una cadena de bloques con un historial de todas las transacciones.

Scrooge firmará el puntero de hash de cada bloque en la cadena de bloques. Cualquiera puede verificar que una transacción sea válida revisando la firma de Scrooge en el bloque que registra la transacción.


Como Scrooge está revisando cada transacción, puede asegurarse de que nadie gasta doble. Si Alice usa una moneda para comprar un sándwich de Bob, Scrooge se asegurará de que ella no pueda usar esa misma moneda para comprar un batido de Chuck negándose a validar esa transacción.

Como todos los bloques están conectados por punteros hash en una cadena de bloques, Alice, Bob, Chuck y cualquier otra persona que use ScroogeCoin puede supervisar que Scrooge no vaya a volver a cambiar ningún dato. Aunque no pudieron evitar que Scrooge lo haga, ya que él es el que tiene el control de la cadena de bloques, al menos sabrían que lo hizo.


Si hace un año, Alice había pagado 1 ScroogeCoin a Bob por un emparedado y Scrooge regresó y lo cambió para decir que pagó 10 ScroogeCoins, cambiaría los punteros de cada bloque subsiguiente, lo que facilita saber que Scrooge había manipulado los datos. Esta es la propiedad amistosa que vimos antes.

Esto hace que sea más fácil confiar en que los datos son correctos, en lugar de ser solo registros guardados en una gran hoja de cálculo solo controlada por Scrooge, donde podría retroceder y cambiar una de las entradas anteriores para obtener más dinero. [3]

ScroogeCoin funciona en el sentido de que todos pueden ver qué monedas son válidas. Y, siempre que Scrooge supervise todas las transacciones y rechace los intentos de duplicar el gasto, no hay un problema de doble gasto. Todos los participantes pueden confirmar que Scrooge evita el gasto doble mirando el blockchain para confirmar que todas las transacciones son válidas y que ninguna moneda se ha gastado dos veces.


El problema potencial con ScroogeCoin es Scrooge. Si Scrooge lo quiere, puede hacerse rico al exigir que todos los que hacen una transacción le paguen una gran cantidad por hacer la transacción, o puede crear un montón de ScroogeCoins para sí mismo, o simplemente puede aburrirse y dejar de verificar las transacciones .

El problema, en resumen, es la centralización. Aunque Scrooge está contento con el sistema, los usuarios podrían no estarlo. Este sistema no es diferente al que tenemos hoy.


Podría reemplazar "Scrooge" por "Citibank" y esto no difiere del funcionamiento del sistema bancario existente. Confiamos en que los bancos u otros intermediarios financieros no mientan sobre las transacciones. En su mayor parte, esto funciona bastante bien. Estas instituciones están reguladas por las autoridades federales y están sujetas a cierto nivel de competencia de otras empresas, lo que las alienta a ser honestas y eficientes. Muchas personas, particularmente aquellas que han pasado toda su vida en países desarrollados, no ven mucho valor en blockchain porque el sistema existente funciona bastante bien.

Tenemos un sistema legal diseñado para enjuiciar a cualquier persona que viole sus contratos y las empresas se sienten incentivadas a proteger su reputación al comportarse honestamente.


Sin embargo, hay situaciones en las que esto se rompe. Hiperinflación, cuando un país imprime dinero nuevo devaluando su oferta de dinero existente ha sucedido muchas veces en la historia, incluyendo Alemania de Weimar en la década de 1930, Argentina y Zimbabwe a principios de los 2000, y Venezuela en la de 2010.

En todos estos casos, fue el equivalente a que Scrooge decidiera hacer más monedas Scrooge por sí mismo.

El mismo escenario puede ocurrir en otros tipos de escenarios de coordinación. Por ejemplo, su empresa está trabajando en un proyecto de construcción conjunta con otras cuatro compañías y una de ellas trata de mentir acerca de cuánto trabajo hicieron para obtener un porcentaje mayor del contrato.


Estos son todos los escenarios donde las blockchains descentralizadas tienen el potencial de ayudar.

Un blockchain descentralizado significa que, en lugar de que una sola parte lo controle, el ledger se distribuye entre diferentes partes. Cada una de estas partes mantiene su propia copia del libro mayor. Debido a las propiedades criptográficas de las que hablamos anteriormente, si una de las partes intenta manipular el libro mayor, inmediatamente quedará claro para todas las otras partes que alguien intentó ir a Scrooge y hacer trampa.


Cómo los Blockchains logran la descentralización: Public (AKA Permissionless) vs. Private (AKA Permissioned) Blockchains  

Hay dos formas principales en que una cadena de bloques puede pasar de centralizada (por ejemplo, ScroogeCoin) a descentralizada.


  1. Blockchains privadas (AKA cadenas de bloques autorizadas)
  2. Blockchains públicos (también conocidos como blockchains sin permiso)

La diferencia entre blockchain público y privado está relacionada con quién puede participar en la red.

Una red pública de blockchain está completamente abierta y cualquiera puede unirse y participar. Bitcoin y Ethereum son ejemplos de cadenas de bloques públicas.

Una red privada de blockchain requiere una invitación. Es una red autorizada que impone restricciones sobre quién puede participar en la red y en qué transacciones. Algunos ejemplos de blockchains privados son MultiChain, R3's Corda, Hyperledger Fabric y Chain Core.

La diferencia en quién se permite participar importa porque afecta cómo se logra la descentralización. En nuestro ejemplo de ScroogeCoin, sufre el mismo problema cuando un solo tercero de confianza controla las cosas.

Las cadenas de bloques públicas están protegidas por la criptoeconomía y la minería de criptomonedas. (La explicación jerga-y para esto es que usan una combinación de incentivos económicos, teoría de juegos, criptografía e informática para acordar el estado actual del libro mayor; estos son temas para un artículo futuro).

Una cadena de bloques autorizada o privada es una cadena de bloques donde el proceso de consenso (es decir, el trabajo de Scrooge) está controlado por un conjunto de actores preseleccionados (por ejemplo, individuos, empresas, miembros de un consorcio). Por ejemplo, podría tener 15 bancos, cada uno de los cuales tiene permiso para escribir en el libro mayor y cada uno de ellos debe firmar cada bloque para que el bloque sea válido.

Esto es más descentralizado que tener una sola parte a cargo de validar todas las transacciones, lo que tiene algunas ventajas.

Ventajas y ejemplos de Blockchains privados


La razón principal por la que las empresas pueden optar por utilizar un blockchain privado es aumentar la transparencia y la confianza de sus procesos con sus socios en la red. Debido a que blockchain funciona como un registro inviolable, cada empresa (por ejemplo, un grupo de 15 bancos) puede confiar en que nadie manipuló los datos preexistentes.

En comparación con sus contrapartes públicas, las blockchains privadas también son más escalables. Es posible que haya oído hablar de problemas de escalabilidad con blockchains públicas como Bitcoin y Ethereum. Estos son el resultado de intentar escalar la cadena de bloques a la vez que la mantienen descentralizada y segura en un entorno abierto donde cualquiera puede unirse.

Debido a que las cadenas de bloque privadas suceden en un entorno cerrado, pueden prevenir ataques al controlar quién se une a la red.

Como ejemplo de una cadena de bloques privada, echemos un vistazo a Everledger, que está trabajando con la industria del diamante para ayudar a reducir el fraude y mejorar el seguro.

La industria del diamante tiene altos niveles de robo porque los diamantes son pequeños. También hay una gran cantidad de fraudes debido a la manipulación de documentos (que mienten sobre la calidad o el tamaño de los diamantes) y los diamantes sintéticos que se utilizan en lugar de diamantes reales.

También existen problemas éticos con los llamados "diamantes de sangre", y los clientes quieren saber que están comprando una auténtica joya libre de conflictos.

Cada año se pierden unos $ 2 mil millones por fraude con joyas, por lo que hay un problema de tamaño significativo que resolver aquí.

Everledger trabaja con las casas certificadoras que certifican los diamantes. Cada diamante se mide con cuarenta criterios diferentes y luego se le asigna un identificador único.

Esa información se inserta en la cadena de bloques donde es evidente. [4] Cada vez que el diamante se vende o se transfiere a otro jugador en la cadena de suministro (por ejemplo, de la empresa minera a la empresa que lo corta y pule), esa transferencia también se registra en el blockchain.

Eso hace posible que un consumidor final sepa exactamente dónde se extrajo su diamante y cada empresa que lo tocó en toda la cadena de suministro.

Puede haber más de una docena de partes interesadas diferentes a lo largo de la vida de un diamante. Si desea más detalles, puede ver Leanne explicar el negocio de Everledger en detalle.
También hace posible que las aseguradoras sepan que están pagando reclamaciones legítimas.

Otro ejemplo de blockchain privado es Constructivo, una empresa brasileña de software que durante los últimos quince años ha manejado datos de proyectos para grandes proyectos de construcción de infraestructura. Ayudan a garantizar que todos los interesados tengan una visión coherente del estado y progreso de un proyecto.

Para satisfacer el deseo de sus clientes de una mayor transparencia y auditabilidad, Constructivo está utilizando una cadena de bloques privada con cada parte interesada manteniendo su propia copia del libro mayor, por lo que cada parte interesada puede estar segura de que ninguna de las otras compañías las está modificando.

El caso contra Blockchains privado

Una de las críticas más comunes de blockchains privados es que son "solo bases de datos compartidas".

Es decir, una blockchains privada es básicamente como tener una hoja de cálculo compartida de Google Docs en la que no confías en nadie más para volver y cambiar los datos ingresados.

Blockchains privados afirman proteger los datos al controlar quién se une a la red, pero siguen siendo vulnerables al mismo tipo de pirateo de redes que hemos visto con corporaciones privadas como Yahoo y Equifax.

Los blockchains públicos no tienen este problema porque todo es público, lo que significa que no hay una red para hackear. El consenso no está impulsado por la capacidad de ingresar a la red; es impulsado por quién gasta la energía del mundo real de una manera que es imposible de falsificar y que hace que la cadena de bloques sea mucho más cara de "hackear" (como se discutió en la sección Prueba de trabajo anterior).

Blockchains, tanto públicos como privados, sufren la necesidad de que los usuarios protejan sus claves privadas. Y los usuarios no lo hacen correctamente de manera constante, y es por eso que los piratas informáticos son pirateados: a muchas personas se les ha robado su bitcoin, incluso si el sistema no lo hace.

Entonces, el argumento en contra de blockchains privados es que confían en la seguridad de la red para evitar que los malos actores se unan a la red. Los detractores argumentan que esto reemplaza la mejor y más novedosa parte de la seguridad de blockchain (prueba de trabajo) con la peor parte (los usuarios protegen sus claves privadas).

Ventajas y ejemplos de Blockchains públicos

Los blockchains públicos son probablemente los que más has escuchado e incluyen redes como Bitcoin y Ethereum.

Una de las mayores ventajas de los blockchains públicos está relacionada con el valor de las redes abiertas (AKA private AKA permission) versus cerrado (AKA public AKA permissionaless).

La comparación más fácil es redes cerradas versus Internet en los años 90. Al principio, había varias compañías operando redes cerradas / autorizadas como Compuserve y Prodigy. Vinculó las computadoras a un servidor central, con noticias y otra información, pero no a Internet en general.

La idea era más atractiva para las grandes compañías porque parecía más segura. Las empresas no estarían expuestas a Internet en su totalidad, pero podrían retener el control sobre lo que se podría poner en la red.

Internet ganó en sistemas cerrados como Compuserve y Prodigy porque hay 100 veces más desarrolladores construyendo en Internet que en una sola intranet.

Hoy en día, hay tal vez 20 millones de buenos desarrolladores en el mundo y las empresas más grandes (Facebook, Google y Amazon) emplean, como máximo, unas pocas decenas de miles. Eso significa que el 99% de los mejores desarrolladores del mundo siempre trabajan para otra persona.

Es mejor crear un ecosistema que haga trabajar a todas las personas más inteligentes del mundo para alcanzar sus objetivos. Si confía únicamente en sus propios empleados, nunca resolverá todas las necesidades de sus clientes.

La otra ventaja principal de los blockchains públicos (al menos en teoría) es que están más descentralizados y, por lo tanto, son más resistentes a la censura.

ScroogeCoin es el sistema menos resistente a la censura que puedas imaginar. Si Scrooge decide que no quiere que uses la red, puede hacerlo.

Las blockchains privadas son más resistentes a la censura. Si tienes una cadena de bloques privada donde hay 5 validadores, entonces necesitas tres para coludir y mentir sobre algo que es más difícil que solo una persona.

Si tienes un blockchain público con 5000 validadores, entonces es mucho más difícil para ellos coludir. Tendría que sobornar, coaccionar o convencer a los actores de 2501 para que se confabulen, lo cual es mucho más desafiante que convencer a una sola persona o grupo pequeño de personas.

La naturaleza de blockchains públicos le permite a cualquiera unirse a la seguridad de la red, lo que ha resultado en la supercomputadora más grande del mundo.

Debido a que son públicos, muchas compañías diferentes están construyendo productos encima de ellos, lo que los hace más valiosos.

En 2017, hubo una ola de otras redes de cifrado lanzadas en la cadena de bloques de Ethereum. Estas redes no necesitan pedir permiso para lanzar en Ethereum del equipo de Ethereum. Simplemente tenían que construir su red y conectarla al protocolo abierto de Ethereum.

Esto aumentó el valor de la red Ethereum en más de 100x. Este tipo de innovación habría sido imposible si Ethereum fuera un blockchain privado que requiriera obtener permiso individual para cada proyecto.

Uno de estos proyectos se llama OmiseGO, que trata de ayudar a las personas a enviar pagos de remesas. Para las personas que trabajan en un país y envían dinero a sus familias en otro país, las soluciones actuales pueden ser extremadamente costosas.

Debido a que OmiseGO sabía que Ethereum era una cadena de bloques pública, pudieron invertir de manera segura en la construcción de Ethereum sabiendo que no había riesgo de que Ethereum fuera capaz de cerrarlos en el futuro. Esto no es lo mismo que construir sobre blockchain privado donde es más fácil ser censurado.

Conclusion

Comenzamos con por qué importan los blockchains en primer lugar: su capacidad para permitir que grandes grupos de personas se coordinen entre sí.

Luego exploramos los principios de cadena de bloques, o funciones hash criptográficas, que tienen tres propiedades importantes:


  1. Resistencia a colisiones: dos cadenas de texto similares producen salidas muy diferentes. Si cambia solo un carácter en el manuscrito de War and Peace, obtendrá resultados radicalmente diferentes
  2. Ocultamiento determinista: no hay forma de que un tercero observador sepa que 138F4504A873C01D0864343FAD3027F03CA9BEA2F0109005FA4FC8C7DCC12634 significa "Me gusta el helado".
  3. Amabilidad con los rompecabezas: si alguien quería generar un hash que obtuviera el mismo resultado que "Me gusta el helado", es extremadamente difícil encontrar otro valor que llegue exactamente a este objetivo.

Luego examinamos cómo las funciones hash se pueden unir en una función hash transitiva. Cuando agregamos un árbol Merkle a una función hash criptográfica transitiva, obtenemos una cadena de bloques. Cada bloque contiene un conjunto de transacciones "merkleized" y los bloques están encadenados juntos.



Luego vimos cómo bitcoin usa una tecnología llamada prueba de trabajo para asegurar el blockchain de una manera que es imposible de falsificar.

A continuación, investigamos Goofycoin y Scroogecoin para ver cómo la tecnología blockchain había evolucionado con el tiempo para resolver el problema del doble gasto.

Finalmente, vimos cómo los blockchains públicos y privados intentan lograr la descentralización.

Blockchains todavía es una tecnología muy joven. Solo han existido desde 2009 y deberíamos esperar que en las próximas décadas, veamos una explosión de diferentes aplicaciones y redes de blockchain.

Ya hay miles de proyectos diferentes trabajando en modificar la tecnología para ver si se puede mejorar y ajustar, y cómo se puede, para casos de uso específicos.

Ahora comprende los fundamentos de la tecnología blockchain y cómo funcionan las blockchains.

La mayoría, si no todas, de las mayores innovaciones en la próxima generación de tecnología blockchain aún no han sucedido. Nunca habrá un mejor momento en la historia para comenzar a aprender y participar.

Si estás interesado en obtener más información, suscríbete a mi boletín de noticias y te enviaré una lista de mis 10 recursos principales para aprender más sobre blockchain, un conjunto de herramientas de recursos de blockchain y notificaciones sobre futuros artículos que publico sobre tecnología blockchain.

Agradecimientos:
Muchas de las imágenes e ideas en este artículo son del curso Coursera Bitcoin y Cyrptocurrency Technologies desarrolladas por Arvind Narayanan y se ofrecen de forma gratuita. Lo recomiendo. También leí y recomendaría el libro de texto complementario. Todas las imágenes se acreditan a ellos a menos que se indique lo contrario. Gracias a Gary Basin, Dhruv Bansal, Joe Kelly y Juvoni Beckford por sus extensos comentarios sobre los primeros borradores.

Notas a pie de página

[1] Otra forma de decir esto es que es solo una forma de mapear un texto A a otro B de una manera que hace que sea difícil reordenar el A si todo lo que tienes es el B y también donde hay muy pocos textos diferentes C , D, E, etc. generarán la misma salida cuando pasen por la misma función (tendencia mínima a crear "colisiones")

[2] (debido a que el hash es resistente a colisiones, dos entradas diferentes nunca producen el mismo resultado)

[3] Por simplicidad de explicación, cada bloque en ScroogeCoin solo tiene una transacción, pero en la práctica pondría múltiples transacciones en un bloque y Scrooge simplemente rechazaría cualquier intento de doble gasto dentro del bloque.

[4] Cuando se trata de rastrear eventos o elementos del mundo real en lugar de los digitales, necesariamente se vuelve a introducir el problema del scrooge. En el caso de Everledger, dependemos de alguna entidad tipo Scrooge para ingresar datos en cada paso del camino (conocido como el problema del oráculo: necesitas confiar en algún "oráculo" para obtener los datos "en cadena"). Una vez que los datos están en cadena, se vuelve evidente.

Taylor Pearson es el autor de The End of Jobs y escribe sobre emprendimiento, historia, complejidad y tecnologías blockchain en TaylorPearson.me. Regístrese para recibir su boletín informativo popular y actualizaciones.


Enlace al articulo original


Comentarios

Entradas populares de este blog

Entrar al mundo de la Bolsa y Trading "Uff Uff Uff"

Criptomoneda ALGORAND "Algo"

Porque la Blockchain es la nueva revolución