paint-brush
WTF es la cadena de bloques?por@mohitmamoria
384,005 lecturas
384,005 lecturas

WTF es la cadena de bloques?

por Mohit Mamoria2017/06/28
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

<strong>A menos que esté escondido debajo de la roca,</strong> estoy seguro de que habrá oído hablar de <span>Bitcoins</span> y Blockchain. Después de todo, son las tendencias y los temas favoritos de los medios en estos días: las palabras de moda del año. Incluso las personas que nunca han minado una criptomoneda o entienden cómo funciona, están hablando de ello. Tengo más amigos no técnicos que técnicos. Me han estado molestando durante semanas para que les explique esta nueva palabra de moda. Supongo que hay miles por ahí que sienten lo mismo. Y cuando eso sucede, llega el momento de escribir algo que todos puedan señalar a las otras almas perdidas, ese es el propósito de esta publicación, escrito en un lenguaje sencillo que cualquier usuario normal de Internet entienda.

People Mentioned

Mention Thumbnail
Mention Thumbnail

Company Mentioned

Mention Thumbnail

Coin Mentioned

Mention Thumbnail
featured image - WTF es la cadena de bloques?
Mohit Mamoria HackerNoon profile picture

La guía definitiva de 3500 palabras en un lenguaje sencillo para entender Blockchain.

A menos que esté escondido debajo de la roca, estoy seguro de que habrá oído hablar de Bitcoins y Blockchain. Después de todo, son las tendencias y los temas favoritos de los medios en estos días: las palabras de moda del año. Incluso las personas que nunca han minado una criptomoneda o entienden cómo funciona, están hablando de ello. Tengo más amigos no técnicos que técnicos. Me han estado molestando durante semanas para que les explique esta nueva palabra de moda. Supongo que hay miles por ahí que sienten lo mismo. Y cuando eso sucede, llega el momento de escribir algo que todos puedan señalar a las otras almas perdidas, ese es el propósito de esta publicación, escrito en un lenguaje sencillo que cualquier usuario normal de Internet entienda.

Por cierto, soy el curador de un boletín semanal, Unmade , que entrega una idea del futuro a sus bandejas de entrada.

Blockchain: ¿por qué necesitamos algo tan complejo?

“Para cada problema complejo hay una respuesta que es clara, simple y equivocada”. — HL Mencken

A diferencia de cualquier otra publicación en Internet, en lugar de definir primero Blockchain, entenderemos el problema que resuelve.

Imagínate, Joe es tu mejor amigo. Él está de viaje en el extranjero, y en el quinto día de sus vacaciones, te llama y te dice: “Amigo, necesito algo de dinero. Me he quedado sin él.

Usted responde: "Enviando algunos de inmediato", y cuelga.

Luego llama a su gerente de cuenta en su banco y le dice: "Transfiera $ 1000 de mi cuenta a la cuenta de Joe".

Su administrador de cuenta responde: "Sí, señor".

Abre el registro, verifica el saldo de su cuenta para ver si tiene saldo suficiente para transferir $ 1000 a Joe. Porque eres un hombre rico, tienes mucho; por lo tanto, hace una entrada en el registro como la siguiente:

El registro de transacciones

Nota: No estamos hablando de computadoras solo para simplificar las cosas.

Llamas a Joe y le dices: “He transferido el dinero. La próxima vez, iría a su banco, puede retirar los $1000 que acabo de transferir”.

¿Lo que acaba de suceder? Tanto usted como Joe confiaron en el banco para administrar su dinero. No hubo un movimiento real de billetes físicos para transferir el dinero. Todo lo que se necesitaba era una entrada en el registro. O más precisamente, una entrada en el registro que ni usted ni Joe controlan ni poseen.

Y ese es el problema de los sistemas actuales.

Para establecer la confianza entre nosotros, dependemos de terceros individuales.

Durante años, hemos dependido de estos intermediarios para confiar el uno en el otro. Podría preguntar, "¿cuál es el problema dependiendo de ellos?"

El problema es que son singulares en número. Si se tiene que inyectar un caos en la sociedad, todo lo que se requiere es que una persona/organización se corrompa, intencionalmente o no.

  • ¿Qué pasa si ese registro en el que se registró la transacción se quema en un incendio?
  • ¿Qué pasaría si, por error, su gerente de cuenta hubiera escrito $1500 en lugar de $1000?
  • ¿Y si lo hizo a propósito?

Durante años, hemos estado poniendo todos nuestros huevos en una canasta y eso también en la de otra persona.

¿Podría haber un sistema en el que aún podamos transferir dinero sin necesidad del banco?

Para responder a esta pregunta, debemos profundizar más y hacernos una mejor pregunta (después de todo, solo las mejores preguntas conducen a mejores respuestas).

Piénsalo por un segundo, ¿qué significa transferir dinero? Sólo una entrada en el registro. La mejor pregunta sería entonces:

¿Hay alguna manera de mantener el registro entre nosotros en lugar de que alguien más lo haga por nosotros?

Ahora, esa es una pregunta que vale la pena explorar. Y la respuesta es lo que ya habrás adivinado. La cadena de bloques es la respuesta a la pregunta profunda.

Es un método para mantener ese registro entre nosotros en lugar de depender de que alguien más lo haga por nosotros.

¿Sigues conmigo? Bien. Porque ahora, cuando varias preguntas hayan comenzado a surgir en su mente, aprenderemos cómo funciona este registro distribuido.

Sí, pero dime, ¿cómo funciona?

El requisito de este método es que debe haber suficientes personas que deseen no depender de un tercero. Solo entonces este grupo puede mantener el registro por su cuenta.

“Podría tener sentido obtener algo de Bitcoin en caso de que se dé cuenta. Si suficientes personas piensan de la misma manera, eso se convierte en una profecía autocumplida”. —Satoshi Nakamoto en 2009

¿Cuántos son suficientes? Al menos tres . Para nuestro ejemplo, supondremos que diez personas quieren renunciar a los bancos o a cualquier tercero. Por mutuo acuerdo, tienen detalles de las cuentas de los demás todo el tiempo, sin conocer la identidad del otro.

1. Una carpeta vacía

Todo el mundo contiene una carpeta vacía con ellos mismos para empezar. A medida que avancemos, estas diez personas seguirán agregando páginas a sus carpetas actualmente vacías. Y esta colección de páginas formará el registro que rastrea las transacciones.

2. Cuando ocurre una transacción

A continuación, todos los miembros de la red se sientan con una página en blanco y un bolígrafo en la mano. Todos están listos para escribir cualquier transacción que ocurra dentro del sistema.

Ahora, si #2 quiere enviar $10 a #9.

Para hacer la transacción, el #2 grita y les dice a todos: “Quiero transferir $10 al #9. Entonces, todos, tomen nota de ello en sus páginas”.

Todos verifican si #2 tiene suficiente saldo para transferir $10 a #9. Si tiene suficiente saldo, todos toman nota de la transacción en sus páginas en blanco.

Primera transacción en la página

Entonces se considera que la transacción está completa.

3. Las transacciones continúan ocurriendo

A medida que pasa el tiempo, más personas en la red sienten la necesidad de transferir dinero a otros. Cada vez que quieren hacer una transacción, la anuncian a todos los demás. Tan pronto como una persona escucha el anuncio, lo escribe en su página.

Este ejercicio continúa hasta que todos se quedan sin espacio en la página actual. Suponiendo que una página tiene espacio para registrar diez transacciones, tan pronto como se realiza la décima transacción, todos se quedan sin espacio.

Cuando la página se llena

Es hora de guardar la página en la carpeta y sacar una nueva página y repetir el proceso desde el paso 2 anterior.

4. Guardar la página

Antes de guardar la página en nuestras carpetas, debemos sellarla con una clave única con la que todos en la red estén de acuerdo. Al sellarlo, nos aseguraremos de que nadie pueda modificarlo una vez que sus copias se hayan guardado en la carpeta de todos, ni hoy, ni mañana, ni siquiera después de un año. Una vez en la carpeta, siempre permanecerá en la carpeta, sellada. Además, si todos confían en el sello, todos confían en el contenido de la página. Y este sellado de la página es el quid de este método.

[Jargon Box] Se llama 'minería' en la página para asegurarlo, pero por su simplicidad, seguiremos llamándolo 'sellado'.

Anteriormente, el tercero/intermediario nos dio la confianza de que lo que haya escrito en el registro nunca será alterado. En un sistema distribuido y descentralizado como el nuestro, este sello proporcionará la confianza en su lugar.

¡Interesante! ¿Cómo sellamos la página entonces?

Antes de aprender cómo podemos sellar la página, sabremos cómo funciona el sello, en general. Y como prerrequisito es aprender sobre algo que me gusta llamar…

La máquina mágica

Imagina una máquina rodeada de gruesos muros. Si envía una caja con algo dentro desde la izquierda, escupirá una caja que contiene algo más.

[Jargon Box] Esta máquina se llama 'Función hash', pero no estamos de humor para ser demasiado técnicos. Entonces, por hoy, estas son 'Las máquinas mágicas'.

La máquina mágica (también conocida como función hash)

Supongamos que envía el número 4 dentro de él desde la izquierda, encontraríamos que escupió la siguiente palabra a su derecha: 'dcbea'.

¿Cómo convirtió el número 4 en esta palabra? Nadie sabe. Además, es un proceso irreversible. Dada la palabra, 'dcbea', es imposible decir qué se alimentó la máquina a la izquierda. Pero cada vez que alimentas el número 4 a la máquina, siempre escupirá la misma palabra, 'dcbea'.

hash(4) == dcbea

Dada la palabra, 'dcbea', es imposible decir qué se alimentó la máquina a la izquierda. Pero cada vez que alimentas el número 4 a la máquina, siempre escupirá la misma palabra, 'dcbea'.

Intentemos enviar un número diferente. ¿Qué tal 26?

hash(26) == 94c8e

Tenemos '94c8e' esta vez. ¡Interesante! Entonces, las palabras también pueden contener los números.

¿Y si te hago la siguiente pregunta ahora?

“¿Puede decirme qué debo enviar desde el lado izquierdo de la máquina para obtener una palabra que comience con tres ceros a la izquierda del lado derecho? Por ejemplo, 000ab o 00098 o 000fa o cualquier otro.”

Predecir la entrada

Piensa en la pregunta por un momento.

Te he dicho que la máquina tiene la propiedad de que no podemos calcular lo que debemos enviar desde la izquierda después de recibir la salida esperada a la derecha. Con tal máquina que se nos ha dado, ¿cómo podemos responder a la pregunta que hice?

Puedo pensar en un método. ¿Por qué no probar todos los números del universo uno por uno hasta obtener una palabra que comience con tres ceros a la izquierda?

Prueba todo para calcular la entrada.

Siendo optimistas, después de varios miles de intentos, terminaremos con un número que producirá el resultado requerido a la derecha.

Era extremadamente difícil calcular la entrada dada la salida. Pero al mismo tiempo, siempre será increíblemente fácil verificar si la entrada predicha produce la salida requerida. Recuerde que la máquina escupe la misma palabra para un número cada vez.

¿Qué tan difícil cree que es la respuesta si le doy un número, digamos 72533, y le hago la pregunta: "¿Este número, cuando se introduce en la máquina, produce una palabra que comienza con tres ceros a la izquierda?"

Todo lo que necesita hacer es ingresar el número en la máquina y ver qué obtuvo en el lado derecho. Eso es todo.

La propiedad más importante de tales máquinas es que: "Dada una salida, es extremadamente difícil calcular la entrada, pero dada la entrada y la salida, es bastante fácil verificar si la entrada conduce a la salida".

Recordaremos esta propiedad de las máquinas mágicas (o funciones hash) a lo largo del resto de la publicación:

Dada una salida, es extremadamente difícil calcular la entrada, pero dada una entrada y una salida, es bastante fácil verificar si la entrada conduce a la salida.

¿Cómo utilizar estas máquinas para sellar una página?

Usaremos esta máquina mágica para generar un sello para nuestra página. Como siempre, comenzaremos con una situación imaginaria.

Imagina que te doy dos cajas. El primer cuadro contiene el número 20893. Entonces, le pregunto: "¿Puede averiguar un número que, cuando se suma al número del primer cuadro y se alimenta a la máquina, nos dará una palabra que comienza con tres ceros a la izquierda?"

Esta es una situación similar a la que vimos anteriormente y hemos aprendido que la única forma de calcular dicho número es probando todos los números disponibles en todo el universo.

Después de varios miles de intentos, nos topamos con un número, digamos 21191, que cuando se suma a 20893 (es decir, 21191 + 20893 = 42084) y se alimenta a la máquina, producirá una palabra que satisfaga nuestros requisitos.

En tal caso, este número, 21191, se convierte en el sello del número 20893. Supongamos que hay una página que lleva escrito el número 20893. Para sellar esa página (es decir, nadie puede cambiar el contenido de la misma), colocaremos una placa con la etiqueta '21191' encima. Tan pronto como el número de sellado (es decir, 21191) se pega en la página, la página se sella.

el numero sellado

[Jargon Box] El número de sellado se llama 'Prueba de trabajo', lo que significa que este número es la prueba de que se han hecho esfuerzos para calcularlo. Somos buenos llamándolo 'número de sellado' para nuestros propósitos.

Si alguien quiere verificar si la página fue alterada, todo lo que tendría que hacer es agregar el contenido de la página con el número de sellado y alimentar a la máquina mágica. Si la máquina da una palabra con tres ceros a la izquierda, el contenido no se tocó. Si la palabra que sale no cumple con nuestros requisitos, podemos tirar la página porque su contenido está comprometido y no sirve para nada.

Usaremos un mecanismo de sellado similar para sellar todas nuestras páginas y eventualmente organizarlas en nuestras respectivas carpetas.

Finalmente, sellando nuestra página…

Para sellar nuestra página que contiene las transacciones de la red, necesitaremos averiguar un número que, cuando se agrega a la lista de transacciones y se alimenta a la máquina, obtenemos una palabra que comienza con tres ceros a la derecha.

Nota: he estado usando la frase 'palabra que comienza con tres ceros' solo como ejemplo. Ilustra cómo funcionan las funciones hash. Los verdaderos desafíos son mucho más complicados que esto.

Una vez que se calcula ese número después de gastar tiempo y electricidad en la máquina, la página se sella con ese número. Si alguna vez alguien intenta cambiar el contenido de la página, el número de sellado permitirá que cualquier persona verifique la integridad de la página.

Ahora que sabemos cómo sellar la página, volveremos al momento en que habíamos terminado de escribir la décima transacción en la página y nos quedamos sin espacio para escribir más.

Tan pronto como todos salen de la página para escribir más transacciones, se dan el gusto de calcular el número de sellado de la página para que pueda guardarse en la carpeta. Todos en la red hacen el cálculo. El primero en la red en averiguar el número de sellado lo anuncia a todos los demás.

Inmediatamente después de escuchar el número de sellado, todos verifican si produce la salida requerida o no. Si es así, todos etiquetan sus páginas con este número y lo guardan en sus carpetas.

Pero, ¿qué pasa si para alguien, digamos #7, el número de sellado que se anunció no produce el resultado requerido? Tales casos no son inusuales. Las posibles razones de esto podrían ser:

  • Es posible que haya oído mal las transacciones que se anunciaron en la red.
  • Pudo haber escrito mal las transacciones que se anunciaron en la red.
  • Es posible que haya intentado hacer trampa o ser deshonesto al escribir transacciones, ya sea para favorecerse a sí mismo o a alguien más en la red.

No importa cuál sea el motivo, el #7 solo tiene una opción: descartar su página y copiarla de otra persona para que él también pueda ponerla en la carpeta. A menos que no coloque su página en la carpeta, no puede continuar escribiendo más transacciones, por lo que se le prohíbe ser parte de la red.

Cualquiera que sea el número de sellado en el que la mayoría esté de acuerdo, se convierte en el número de sellado honesto.

Entonces, ¿por qué todos gastan recursos haciendo el cálculo cuando saben que alguien más lo calculará y se lo anunciará? ¿Por qué no quedarse inactivo y esperar el anuncio?

Gran pregunta. Aquí es donde los incentivos entran en escena. Todos los que forman parte de Blockchain son elegibles para recibir recompensas. El primero en calcular el número de sellado es recompensado con dinero gratis por sus esfuerzos (es decir, consumo de energía y electricidad de la CPU).

Simplemente imagine, si #5 calcula el número de sellado de una página, él es recompensado con algo de dinero gratis, digamos $1, que se acuña de la nada. En otras palabras, el saldo de la cuenta del #5 se incrementa en $1 sin disminuir el saldo de la cuenta de nadie más.

Así es como comenzó a existir Bitcoin. Fue la primera moneda en ser negociada en una cadena de bloques (es decir, registros distribuidos). Y a cambio, para continuar con los esfuerzos en la red, las personas recibieron Bitcoins.

Cuando suficientes personas poseen Bitcoins, su valor crece, haciendo que otras personas quieran Bitcoins; hacer que el valor de Bitcoin crezca aún más; hacer que aún más personas quieran Bitcoins; haciéndolos crecer en valor aún más; y así.

Las recompensas hacen que todos sigan trabajando en la red.

Y una vez que todos guardan la página en sus carpetas, sacan una nueva página en blanco y repiten todo el proceso nuevamente, haciéndolo para siempre.

[Jargon Box] Piense en una sola página como un Bloque de transacciones y la carpeta como la Cadena de páginas (Bloques), por lo tanto, conviértala en una Blockchain.

Y así, mis amigos, es como funciona Blockchain.

Excepto que hay una pequeña cosa que no te dije. Aún.

Imagine que ya hay cinco páginas en la carpeta, todas selladas con un número de sellado. ¿Qué pasa si vuelvo a la segunda página y modifico una transacción para favorecerme? El número de sellado permitirá que cualquiera detecte la inconsistencia en las transacciones, ¿verdad? ¿Qué pasa si sigo adelante y calculo un nuevo número de sellado también para las transacciones modificadas y etiquete la página con eso en su lugar?

Para evitar este problema de que alguien retroceda y modifique una página (Bloque) así como el número de sellado, hay un pequeño giro en la forma en que se calcula un número de sellado.

Proteger las modificaciones de los números de precinto

¿Recuerdas que te dije que te había dado dos cajas, una con el número 20893 y otra vacía para que la calcularas? En realidad, para calcular el número de sellado en Blockchain, en lugar de dos casillas, hay tres, dos precargadas y una para calcular.

Y cuando los contenidos de esos tres cuadros se agregan y alimentan a la máquina, la respuesta que sale del lado derecho debe satisfacer las condiciones requeridas.

Ya sabemos que un cuadro contiene la lista de transacciones y un cuadro contendrá el número de sellado. El tercer cuadro contiene la salida de la máquina mágica de la página anterior.

Con este pequeño truco ingenioso, nos hemos asegurado de que cada página dependa de su página anterior. Por lo tanto, si alguien tiene que modificar una página histórica, también tendrá que cambiar el contenido y el número de sellado de todas las páginas posteriores, para mantener la coherencia de la cadena.

Si un individuo, de los diez que imaginamos al principio, intenta engañar y modificar el contenido de Blockchain (la carpeta que contiene las páginas con la lista de transacciones), tendría que ajustar varias páginas y calcular también el nuevo sellado. números para todas esas páginas. Sabemos lo difícil que es calcular los números de sellado. Por lo tanto, un tipo deshonesto en la red no puede vencer a los nueve tipos honestos.

Lo que sucederá es que, desde la página en la que el tipo deshonesto trata de hacer trampa, crearía otra cadena en la red, pero esa cadena nunca podría alcanzar a la cadena honesta, simplemente porque los esfuerzos y la velocidad de un tipo no pueden superar la acumulación. esfuerzos y velocidad de nueve. Por lo tanto, garantizar que la cadena más larga de una red sea la cadena honesta.

La cadena más larga es la cadena honesta.

La cadena más larga es la cadena honesta.

Cuando te dije que un tipo deshonesto no puede vencer a nueve tipos honestos, ¿te sonó algo en la cabeza?

¿Qué pasa si, en lugar de uno, seis tipos se vuelven deshonestos?

En ese caso, el protocolo caerá de bruces. Y es conocido como “51% Attack”. Si la mayoría de las personas en la red deciden volverse deshonestas y engañar al resto de la red, el protocolo fallará en su propósito.

Y esa es la única razón vulnerable por la que Blockchains podría colapsar si alguna vez lo hace. Sepa eso, es poco probable que suceda, pero todos debemos conocer los puntos vulnerables del sistema. Se basa en la suposición de que la mayoría de la multitud siempre es honesta .

Y eso, mis amigos, es todo lo que hay sobre Blockchains. Si alguna vez encuentra a alguien que se siente abandonado y se pregunta: "¿WTF es Blockchain?" usted sabe dónde puede señalarlos. Marque el enlace.

¿Puede pensar en alguien en este momento que debería leer esto? El botón 'Compartir' es todo tuyo.

Sobre el Autor

Mohit Mamoria es el curador de un boletín semanal, Unmade , que entrega una idea del futuro a sus bandejas de entrada.

También podría gustarte


¿Quién es dueño de la cadena de bloques? _¿Qué tan democrática es la descentralización?_medium.com


Blockchain y El Gran Juego de la Atención _Todo lo que quería saber sobre Blockchain, Tokens y sus principales casos de uso_keepingstock.net

¡Gracias por leer! :) Si te gustó, apoya presionando el botón de corazón a continuación. 💚