Cómo Ejecutar Un Blockchain En Una Isla Desierta Con Papel Y Bolígrafo

Alex Berloffe
CoinYou
Published in
10 min readJul 15, 2018

por Tal Kol

Artículo original: https://hackernoon.com/how-to-run-a-blockchain-on-a-deserted-island-with-pen-and-paper-899949ec555b

Si usted estuviera atrapado en una isla desierta, saber cómo ejecutar el proceso de consenso descentralizado — o en otras palabras, operar un Blockchain muy simple a mano — podría ser muy útil. Todo lo que necesitas son algunos colegas sobrevivientes, este post, un bolígrafo y algunas hojas de papel.

Si no está seguro de que esta habilidad es útil para su supervivencia, lea el mi último post acerca de cómo un Blockchain puede mejorar enormemente la vida en la isla.

Volvamos a la historia original y pasemos por el proceso con nuestros intrépidos héroes, que acaban de caer en una isla desierta en algún lugar del Pacífico Sur — Hugo, Sawyer, Kate y Jack.

Un breve resumen: la pandilla está tratando de implementar el IslandCoin, una nueva moneda revolucionaria que pondrá fin a la economía lisiada de la isla. La clase está de acuerdo en que es justo si cada uno de ellos comienze con 100 monedas. Dado que no tienen metal para acuñar monedas reales, tendrán que conformarse con algunas hojas de papel. Plagado de problemas de confianza, la clase no ha llegado a un acuerdo sobre la persona encargada del control de los saldos. Su única opción es mantener los balances juntos.

Comencemos con lo que es probablemente la implementación más simple de Blockchain para nuestro caso de uso en la isla. En futuros posts, podemos explorar otras implementaciones y enlaces a conceptos como Prueba de Trabajo y Prueba de Estaca — esto nos ayudará a ver sus beneficios y desventajas. Pero por ahora, empecemos con la forma más simple posible.

Qué estamos tratando de lograr?

Es muy simple, en realidad — todo que estamos tratando de hacer es mantener una simple tabla de saldos en una hoja de papel. La siguiente tabla mostrará cuántas monedas cada uno de nuestros héroes tiene. El truco es que como no podemos tener sólo un pedazo de papel que contenga la única fuente de la verdad — vamos a mantener las cosas iguales y dejar que cada miembro de la banda mantenga su propia versión — esa es la parte descentralizada. Y, natu-ralmente, también esperamos que los 4 pedazos de papel eventualmente muestren lo mismo-esa es la parte del consenso.

Entonces, cómo sería ese pedazo de papel?

Este documento es el primero en el que están todos de acuerdo — por eso está marcado como el día 1.

De dónde provienen estos saldos?

Hemos acordado previamente que es justo que cada uno comience con 100 monedas.

También vamos a necesitar a uno de los supervivientes para escribir este artículo. En realidad no importa quién, así que tomemos a Hugo. Él será el que publicará este artículo para cada uno y guardará consigo una copia (la isla tiene una máquina de fotocopia increíble, me olvidé de mencionar).

A medida que los saldos monetarios cambien, crearemos una nueva hoja de papel actualizada al final de cada día. puede que no siempre sea Hugo quien publique los balances, pués queremos mantener las cosas lo más justas posible después de todo.

Otra parte importante, debido a la falta de confianza mutua en el grupo, es que cada una de las pandillas confirme la actualización de estatus individualmente. Una manera fácil de conseguir eso es hacer que cada uno de los supervivientes firme cada uno de los documentos — pero sólo si están de acuerdo con lo que está escrito en él.

Entonces, cuánta gente tendrá que firmar un documento para que se lo consideren definitivo y aprobado? Necesitan llegar a un consenso, entonces la mayoría lo hará. Ya que tenemos 4 personas en total, la mayoría son al menos 3 personas. El documento anterior fue firmado por los cuatro, así que es definitivo. Alcanzarán consenso. Y por qué no queremos exigir que todos firmen los documentos? Porque eso permitirá que un individuo comprometa todo el proceso. Si Sawyer va a pescar por unos días, la pandilla no puede actualizar los columpios hasta que regrese — eso le da a una persona mucho poder. Por qué necesitamos incluso de una mayoría? Por qué no son ya suficientes las firmas de 2 personas ? Porque si sólo tengamos 2 personas, podemos terminar con 2 personas (como Hugo y Sawyer) firmando una versión del balance, y las otras 2 personas (Kate y Jack) firmando una versión diferente que no coincide. No podemos tener dos versiones contradictorias de la realidad consideradas definitivas.

En la mañana del segundo día, Kate quiere comprar un tomate. Hugo vende tomates por dos monedas cada uno. Quiere transferir dos monedas a Hugo. Kate toma un nuevo trozo de papel y escribe la transferencia:

Es la primera acción de Kate, así que la firma como tal. Además, Kate firma este posteo. Necesitamos tener su firma para asegurar que nadie más puede falsificar una solicitud de transferencia desde su cuenta.

Se acerca el final del segundo día y la clase quiere publicar un conjunto actualizado de balances. Hugo publicó el balance para el primer día y recogió las firmas de todos. Tiene sentido turnarse para hacer eso. La pandilla está de acuerdo en hacer una orden que rota simple: Hugo, Sawyer, Kate, Jack, Hugo, Sawyer y así sucesivamente.

Eso significa que la publicación del documento de status en el día 2 es responsabilidad de Sawyer. El artículo que publica refleja la transferencia de Kate:

Ese papel que hizo Sawyer no es definitivo, porque está firmado sólo por Sawyer. Él necesita recoger más firmas. Sawyer pasa la clase y le pide a cada uno que verifique y firme. Este documento es muy fácil de verificar.
En primer lugar, el revisor debe buscar en su propia colección de documentos y encontrar el documento de estado que muestra los saldos del día anterior (día 1 en este caso). Entonces el revisor necesita actualizar los saldos de todos de acuerdo a la nueva lista de Transferencias. En este caso, sólo tenemos una transferencia por Kate. Esta transferencia es fácil de comprobar, podemos estar seguros de que él es de hecho firmado por Kate y podemos estar seguros de que Kate realmente tiene suficientes monedas para dar este valor a Hugo.

Una vez que cada habitante de la isla complete su proceso de verificación y firme el papel, Sawyer ahora tiene un documento de estado final para el día 2 para publicarlo para todos. Todo el mundo hace una copia y se van a dormir felices y contentos.

El tercer día se acerca. El sistema está funcionando bien y todo el mundo está emocionado de gastar sus monedas. Hugo quiere comprar madera de Sawyer por 10 monedas. Sawyer quiere tomar pastillas por 25 monedas. Jack tiene hambre de un tomate y quiere darle a Hugo 2 monedas para comprar uno.

Cada uno de ellos crea una hoja de papel que detalla su transferencia:

A medida que la noche se acerca, la persona que publica los saldos actuales es Kate. Para asegurar que Kate incluya estas transferencias en su propuesta de trabajo, cada uno de los supervivientes tendrá que proporcionar, a cada uno de los otros en el grupo, una copia de la solicitud de transferencia.

Sólo que Jack toma un rato para entregar la copia de su pedido de transferencia a Kate y cuando finalmente la lleva a ella, su estado de balance del día ya está escrito:

Jack está frustrado porque este estado de cuentas no incluyó su propia transferencia. Eso significa que Hugo no recibirá la paga de Jack por el tomate y no le dará el tomate para la cena. Jack va a dormir hambriento esta noche. Sale a buscar algo para comer y no firma la propuesta de papel de Kate para el día. Afortunadamente, Kate sigue obteniendo suficientes firmas del resto de la clase:

Kate consiguió 3 firmas en el papel, comprobando que los saldos corresponden realmente a las transferencias y a los saldos de ayer.

Como tenemos una mayoría, entonces esta hoja es final para el 3er día.

Es el cuarto dia y nadie sabe dónde está Jack. Fue a pescar la noche anterior, quedó atrapado en una tormenta y no regresó al campamento. Puede ser problemático porque hoy es el turno de Jack para publicar la actualización de saldo.

Kate quiere hacer algunas transferencias hoy, ella los escribe en un pedazo de papel y da un copia a todos:

La noche se acerca y Jack no ha vuelto todavía. La pandilla ya había acordado que es su turno de publicar los saldos, pero no está en ninguna parte, por lo que la actualización de la hoja de balance de este día se omite.

Es el día 5 y Hugo es responsable de publicar la actualización del status. Ha estado lloviendo por unos días y Hugo quiere un lugar más cálido para dormir. Le pide a Sawyer que construya una pequeña cabaña de madera. Sawyer quiere 200 monedas para el trabajo. Es un problema, porque Hugo sólo tiene 98 monedas. Hugo hace un posteo chiflado, y es él quien lo va a publicar el status de hoy, así que por qué no agregar una “loca transferencia” de esa cantidad a Sawyer?

No hay otras transferencias hoy. Hugo tiene las transferencias de Kate de ayer, y la transferencia de Jack del día anterior no ha terminado. Él añade todo esto, junto con su nueva “loca transferencia”:

Hugo firma esta actualización, aunque su transferencia no haga sentido. Para hacer esta actualización de estado final, necesita reunir dos firmas más. A la medida que se acerca a Sawyer y Kate, ellos se dan cuenta de que en el anterior status final (del Día #3), Hugo tenía 92 monedas. Cómo puedes enviar 200 a Sawyer? Se niegan a firmar este balance hasta que se corrija este error y se elimine la transferencia no válida. De mala gana está de acuerdo y publica un nuevo balance, ahora correcto, que terminan firmando:

Esta actualización de saldo es final porque tiene 3 firmas.

Es la mañana del 6. Jack finalmente regresa al campamento. Ha tenido un par de días duros con la tormenta y todo. No ha participado en los debates de los últimos dos días y ha perdido anuncios de nuevas transferencias y publicaciones de nuevas actualizaciones de saldos. No está seguro de cuántas monedas tiene. Encuentra al primer superviviente que ve y le pide las últimas actualizaciones que ha perdido. Recibe la actualización final del día 5 y la actualización aprobada de Kate, publicada el día 3.

Es fácil para Jack sincronizarse de nuevo con el resto de la clase. Puede ver que estas actualizaciones de saldo han sido firmadas al menos 3 veces, por lo que puede estar relativamente seguro de que están bien. También puede realizar cálculos basados en los posteos y la última actualización (desde el día 2). Esto permitirá a Jack participar en las transferencias de hoy, ya que no ha perdido nada.

El sistema parece estar funcionando bien. Es cierto que es un poco simplista, pero es suficiente para la necesidad de los habitantes de la isla. Bueno, no podemos tener un Blockchain funcional sin un libro de cuentas ! La pandilla se sienta y celebra la realización editorial de este magnífico documento:

Por qué se considera esto un Blockchain? Para empezar, cada hoja de papel publicada diariamente representa un bloque. Cada bloque está numerado y apunta al anterior — formando una cadena de Blockchain. Para comprobar el estado actual de las escalas, cualquier observador debe comenzar desde el principio de la cadena (día 1 — el bloque génesis) y comprobar cada uno de los bloques a uno tras otro en sucesión. Los saldos se construyen de forma incremental.

Es esta una implementación ideal de Blockchain? Probablemente no. Se puede mejorar de muchas maneras. Por ejemplo, sólo apoya a estos 4 habitantes. Qué pasa si hubiera un nuevo sobreviviente llegando a la isla por el água? será este protocolo capaz de acomodarlos? Este protocolo también está permitido actualmente, cómo podemos hacerlo sin permiso? y si quisiéramos modificarlo para usar prueba de trabajo o tal vez prueba de estaca?

Bueno, seguiremos llevando estas ideas en los próximos posts de esta serie.

Tal es uno de los fundadores de ORBS.com, una infraestructura pública de Blockchain para aplicaciones de gran escala enfocadas al consumidor, con millones de usuarios. Para saber más, y para tener acceso a Orbes white papers Haga clic aquí. [Síguenos en Telegram, Twitter, Reddit]

Tal Kol

Blockchain disponible para el consumidor. Fundador de ORBS.com. Fan de React. Ex ingeniero jefe de Kin by Kik, ex jefe de ingeniería móvil de Wix.com.

--

--

Alex Berloffe
CoinYou
Editor for

To be curious is a self-given right that sets the pace and points the way to anywhere out of this ordinary place we live in.