Libro Blanco
Resumen
Una red descentralizada de propósito general basada en blockchain que permite aplicaciones gratuitas a través de un mecanismo "Mana" que fija el precio de los recursos de la red en costo de oportunidad (no en tokens) y permite aplicaciones descentralizadas gratuitas a través de la "delegación" de Mana.
Se implementa Proof-of-burn como algoritmo de consenso para maximizar la eficiencia, descentralización e igualitarismo comprobable mientras se contrarresta el ataque de exchanges y se mitiga el spam. Los bloques se producen al hacer hash de una clave privada y la salida de número aleatorio de una función aleatoria verificable (VRF) y luego dividir por la cantidad de tokens quemados. Como en proof-of-work, la cadena más larga sirve como un registro inmutable de transacciones respaldado por el mayor grupo de capital sacrificado.
El framework de blockchain Koinos se utiliza para actualizaciones sin bifurcaciones como resultado de su capacidad de actualización modular. Esto crea una blockchain de propósito general gratuita y verdaderamente descentralizada con una experiencia de usuario convencional que maximiza la accesibilidad para usuarios finales, desarrolladores y operadores de nodos.
Trabajo Previo
Satoshi Nakamoto creó la primera moneda digital descentralizada peer-to-peer en Bitcoin al diseñar una nueva arquitectura de base de datos (la blockchain) que aprovechaba las comisiones para regular el uso de la red y proof-of-work para regular las transiciones de estado. Ethereum mantuvo estos primitivos y la base de datos blockchain pero creó una utilidad más general al permitir a los usuarios incluir código Turing completo en sus transacciones. Ese código se ejecutaría luego en una máquina virtual, permitiendo así aplicaciones descentralizadas (dApps).
Antes de desarrollar Koinos, fuimos los desarrolladores principales de Steem (la primera blockchain social y sin comisiones) hasta una toma de control hostil y ataque de exchange. Después de dejar ese proyecto, nuestro objetivo era construir una empresa que permitiera a los desarrolladores construir dApps como Steem y Hive, pero en una blockchain verdaderamente descentralizada y sin comisiones que resistiera el ataque de exchanges. Desafortunadamente, ninguna de las blockchains existentes tenía las propiedades que necesitábamos. Las blockchains "sin comisiones" no eran verdaderamente sin comisiones, requiriendo que los usuarios pagaran por RAM y/o cuentas, ni eran verdaderamente descentralizadas como resultado de su lanzamiento (ICOs) o su algoritmo de consenso, y a menudo ambos.
Queríamos llevar la accesibilidad de la blockchain al extremo al permitir, por primera vez, dApps gratuitas que requerirían no solo transacciones sin comisiones, sino cuentas gratuitas, ejecución gratuita de contratos inteligentes y delegación de recursos de red. Entregar estas capacidades requería construir una blockchain completamente nueva desde cero y ejecutar un lanzamiento descentralizado comprobablemente justo. El resultado final sería una blockchain de propósito general que no era solo otro competidor de Ethereum, sino la primera alternativa genuina a Ethereum.
$KOIN
Antes de KOIN, la mayoría de las criptomonedas tenían diseños económicos relativamente simples; eran el token utilizado para pagar las comisiones necesarias para mantener las operaciones de la red descentralizada. Contraintuitivamente, eliminar las comisiones es lo que permite la creación de un sistema más dinámico, flexible y eficiente que respalda una moneda digital que finalmente cumple con la visión futurista de una moneda digital igualitaria y descentralizada que comenzó con Bitcoin.
Suministro y Distribución de Tokens
Para maximizar la descentralización y la equidad comprobable desde el principio, el token KOIN se lanzó de la misma manera que Bitcoin; a través de minería proof-of-work (en Ethereum). El suministro máximo de tokens minables era de 100 millones de KOIN. Cuando la red principal de Koinos se active, los saldos de tokens se inicializarán usando una instantánea del KOIN ERC-20 y la tasa objetivo inicial de creación de nuevos tokens será del 2%, pero esto puede ser alterado en banda por la gobernanza (ver las secciones de Actualización sin Bifurcaciones y Gobernanza Descentralizada). El componente de quema del algoritmo de consenso podría resultar en una tasa de inflación real mucho más baja e incluso períodos temporales de deflación.
Como resultado del novedoso sistema "Mana" (ver la sección Mana), los tokens de la red principal se pueden transferir sin pagar ninguna comisión porque el Mana contenido dentro de ellos permite al titular usar la red sin gastar ningún KOIN. El sistema Mana hace que Koinos sea la primera blockchain verdaderamente gratuita ya que los usuarios no tienen que comprar cuentas, pagar para ejecutar contratos inteligentes, o incluso adquirir tokens KOIN para usar la blockchain.
Inflacionario y Deflacionario
Como la primera blockchain de propósito general en implementar proof-of-burn como algoritmo de consenso, el suministro de tokens KOIN se expandirá y contraerá según las condiciones del mercado, proporcionando así el tipo de "palancas" económicas presentes en las monedas globales más avanzadas, pero administradas de manera totalmente descentralizada y algorítmica (ver la sección proof-of-burn).
Rápido y Gratuito
Dado que proof-of-burn elimina la necesidad de trabajo computacional sin sentido, los bloques de Koinos pueden producirse rápidamente permitiendo que el token KOIN sea tanto gratuito como rápido. La increíble capacidad de actualización de Koinos permite que los tiempos de bloque se reduzcan continuamente con el tiempo, disminuyendo así la latencia, limitada solo por consideraciones de estabilidad de la red y crecimiento del estado. Con estas características implementadas, el token KOIN puede permitir a las personas intercambiar valor ilimitado en segundos sin perder nada en comisiones, abriendo así modelos de negocio completamente nuevos y actualmente inimaginables para emprendedores y desarrolladores.
Actualizaciones sin Bifurcaciones
La mayoría de las blockchains requieren bifurcaciones duras para implementar actualizaciones, lo que significa que todos los nodos deben actualizar su software al mismo tiempo o la cadena se bifurcará. Esto crea una barrera significativa para la evolución de la blockchain y un punto único de fallo que puede ser explotado por actores maliciosos. Koinos es la primera blockchain que puede actualizarse sin bifurcaciones porque todo el comportamiento del sistema está contenido en contratos inteligentes que pueden ser actualizados como cualquier otro contrato inteligente.
Esto significa que los operadores de nodos pueden actualizar su software cuando les resulte conveniente, y los usuarios pueden continuar usando la blockchain sin interrupciones. Esta capacidad de actualización sin precedentes permite que Koinos evolucione rápidamente y se adapte a las necesidades cambiantes de sus usuarios sin sacrificar la descentralización o la seguridad.
Soporte Universal de Lenguajes
La mayoría de las blockchains requieren que los desarrolladores aprendan un nuevo lenguaje de programación específico de la plataforma para escribir contratos inteligentes. Esto crea una barrera de entrada innecesaria y limita la capacidad de los desarrolladores para aprovechar las bibliotecas y herramientas existentes. Koinos está diseñado para soportar cualquier lenguaje de programación que pueda compilarse a WebAssembly (WASM).
El soporte universal de lenguajes de Koinos permite a los desarrolladores escribir contratos inteligentes en los lenguajes que ya conocen y aman, como TypeScript y C++, con más lenguajes por venir. Esto no solo hace que sea más fácil para los desarrolladores comenzar a construir en Koinos, sino que también permite que la plataforma aproveche el vasto ecosistema de herramientas y bibliotecas que ya existen para estos lenguajes.
Mana
Nuestro objetivo con Koinos es soportar aplicaciones descentralizadas ("Web3") que tengan una experiencia de usuario Web2. En resumen, las dApps deben tener una experiencia de usuario agradable y las personas deben poder comenzar a usarlas sin tener que adquirir tokens primero, lo cual es una barrera de entrada importante. El sistema Mana es cómo logramos esos objetivos. Lo llamamos "Mana" porque la experiencia del usuario replica la de los videojuegos RPG con los que muchas personas ya están familiarizadas.
La premisa básica del sistema Mana es que cada token KOIN "nace" con 1 Mana que puede ser consumido cuando un usuario consume recursos de la red. Mana es una propiedad del token KOIN, no es un token en sí mismo. Por lo tanto, no puede ser comprado o vendido y no puede adquirir su propio precio distinto del token KOIN. Los usuarios pueden, sin embargo, delegar su Mana a otros usuarios, permitiendo así que los no poseedores de tokens comiencen a usar la blockchain mientras se mitiga efectivamente el spam. Ese Mana sigue vinculado al KOIN del delegador para asegurar la sostenibilidad económica del sistema y maximizar la liquidez para el delegador, quien puede cancelar la delegación a voluntad.
Detalles de Implementación
Como el gas de Ethereum, cada instrucción de la VM tendrá un costo específico en Mana. Dado que solo se puede incluir una cantidad limitada de instrucciones en un bloque, Mana está estrechamente acoplado a los recursos de red disponibles para los usuarios. Mientras que Ethereum requiere que el usuario compre gas de los mineros que luego es consumido por la transacción, el sistema Mana consume autónomamente la cantidad apropiada de Mana del saldo de un usuario basado en los recursos consumidos por su transacción.
"Pagando" en Tiempo
Una vez que se consume cualquier Mana en un token dado, ese token se bloquea durante 5 días, para que puedan desarrollar un "ritmo" semanal en su uso de blockchain (y dApp). Esto crea un costo de oportunidad en lugar de un costo monetario en tiempo real que sirve para desincentivar el envío de transacciones sin valor. Este período fijo de tiempo funciona como un "tiempo de regeneración" que crea la experiencia de usuario de Mana "regenerándose con el tiempo", creando una experiencia de usuario divertida, casi como un juego.
El tiempo de regeneración se basa en cuánto tiempo tarda en regenerarse un satoshi de Mana, con la regeneración ocurriendo en todos los tokens de un usuario al mismo tiempo. Dado que este mecanismo es distributivo, el tiempo de regeneración aparece dinámico para el usuario. En otras palabras, el Mana de un usuario se estará regenerando constantemente por lo que no tendrán que esperar los 5 días completos para reanudar su uso de la blockchain.
Gratuito para Usar
Para resolver el problema de permitir que las personas usen dApps sin tener que adquirir tokens primero, Koinos permite a los desarrolladores de contratos inteligentes especificar quién "pagará" el Mana cuando se ejecute el contrato inteligente ("Semántica de Pagador/Beneficiario"). Cada transacción debe especificar explícitamente una dirección de un pagador para la transacción, y opcionalmente un beneficiario. El Mana del pagador se gasta y el nonce de la cuenta del beneficiario se actualiza. Si no se establece un beneficiario, el pagador se usa para ambos. La combinación de estas características permite que un contrato inteligente especifique un pagador para sus costos de Mana.
Estas semánticas engañosamente simples no solo permitirán que las personas comiencen a usar la blockchain sin tener que comprar ningún KOIN, sino que también dan a los grandes poseedores de KOIN una herramienta poderosa para apoyar dApps valiosas sin sacrificar ninguno de sus tokens.
Multi-Dimensionalidad
Como Vitalik Buterin ha explicado, los cálculos de gas de Ethereum son unidimensionales, valorando recursos muy diferentes (por ejemplo, almacenamiento y cómputo) como si fueran lo mismo, lo cual es ineficiente. Con el modelo de recursos Mana, los recursos se rastrean por separado para maximizar la eficiencia, pero al usuario solo se le cobra en Mana. Los recursos se agrupan en cada bloque, con un límite de cuántos de esos recursos se pueden consumir por bloque y se utiliza un creador de mercado XYK para establecer un precio para cada uno de los recursos en un bloque dado.
Esta multi-dimensionalidad permite a los desarrolladores optimizar sus contratos para apuntar a recursos de red subutilizados. Los usuarios finales preferirán aquellas dApps que realicen tales optimizaciones porque obtendrán más "valor por su Mana", creando un ciclo de retroalimentación positiva de autorregulación descentralizada. Este sistema cobraría gradual y continuamente más Mana a los usuarios a medida que consumen recursos más disputados y menos Mana por consumir recursos subutilizados. El resultado final es un sistema simple, eficiente y dinámico para determinar los costos de recursos basado en el comportamiento del usuario que garantiza el menor costo posible, mientras asegura que la red esté protegida. El Mana cobrado es simplemente la combinación lineal de cada recurso y costo (por ejemplo, `costo_ancho_banda * ancho_banda_usado + costo_almacenamiento * almacenamiento_usado + costo_computo * computo_usado`).
Proof-of-Burn
Además de ser rápido y sin comisiones, el token KOIN está destinado a cumplir con la visión original de Satoshi de un efectivo electrónico verdaderamente peer-to-peer que utiliza recursos computacionales de repuesto y no requiere hardware dedicado. En otras palabras, es comprobablemente igualitario. Iain Stewart propuso proof-of-burn en 2012, un año después de que se propusiera proof-of-stake, y creemos que esto representa la siguiente etapa de evolución en algoritmos de consenso. Proof-of-burn nos permite lograr un igualitarismo comprobable al entregar la economía de proof-of-work con una eficiencia incluso mayor que proof-of-stake. El resultado final de nuestra implementación es un sistema de consenso que debería ser más descentralizado que proof-of-work y más eficiente que proof-of-stake.
El Ataque de Exchange
Whitepaper.exchangeAttack.p1
Minería Virtual
Un usuario que quiere ganar recompensas de bloque quema sus KOIN, disminuyendo el suministro total de KOIN. La blockchain distribuye tokens fungibles de "poder hash virtual" (VHP) al productor de bloques que pueden usarse para minar un bloque sin necesidad de ejecutar hardware costoso. A medida que el productor de bloques mina bloques, su poder hash virtual (VHP) disminuye con el tiempo, requiriendo que quemen más para continuar produciendo. De esta manera, quemar tokens es equivalente a comprar hardware de minería que se degrada con el tiempo y la electricidad necesaria para realizar proof-of-work.
Inflación
VHP siempre se trata en una base 1:1 con KOIN. Por cada unidad de KOIN quemada, una cuenta específica recibirá esa misma cantidad de unidades de VHP. Cuando una cuenta con VHP recibe unidades de KOIN como recompensa de bloque, su saldo de VHP se reduce en esa cantidad de unidades. De esta manera, VHP actúa como un proxy para KOIN y el suministro total de VHP y KOIN se puede sumar para establecer el "suministro virtual de tokens" con el propósito de establecer una tasa máxima de creación de nuevos tokens. Para asegurar que siempre haya incentivo para producir bloques, debe haber una tasa neta positiva de creación de nuevos tokens. Inicialmente, la tasa objetivo de creación de nuevos tokens en la red principal será del 2%.
Deflación
Como resultado del componente de quema, el suministro total de tokens puede estar aumentando (inflación) o disminuyendo (deflación) dependiendo del nivel de competencia por la producción de bloques. Si la demanda de recompensas de bloque está aumentando linealmente, entonces en cierto punto la tasa a la que se está quemando KOIN superará la tasa a la que se está produciendo nuevo KOIN. El resultado sería un suministro de tokens decreciente a pesar de la creación de nuevos tokens (es decir, "deflación").
Aleatoriedad
Proof-of-burn mantiene el mecanismo de consenso central de proof-of-work, pero intercambia energía por tiempo mediante el uso de una función aleatoria verificable (VRF). Cada bloque contendrá quanta (a veces llamados "slots"), de longitud en milisegundos, en los que los productores de bloques competirán para producir. Para recuperar su quema, el productor de bloques debe intentar producir en cada quantum. Este intento involucrará que el productor de bloques use su clave privada, una marca de tiempo y la salida aleatoria anterior del VRF para generar un hash que luego se divide por su VHP (es decir, su quema). Si el hash es lo suficientemente bajo, entonces producen (similar a proof-of-work), de lo contrario tienen que intentarlo de nuevo en el siguiente quantum.
Eficiencia y Consistencia
El incentivo del productor de bloques no es realizar la mayor cantidad de trabajo posible, sino realizar el mínimo trabajo necesario para intentar producir en cada quantum. A partir de aquí, proof-of-burn se comporta igual que proof-of-work excepto que el productor de bloques solo tiene que hacer hash una vez por quantum. Debido a que los productores de bloques están compitiendo para producir en uno de los muchos quantum dentro de un bloque, el resultado final es una producción continua de bloques. Dividir el hash por el tamaño de la quema del productor garantiza que el factor dominante en la selección de un productor de bloques sea el tamaño de su quema y no la cantidad de trabajo computacional que han realizado (que será prácticamente nada), cumpliendo así con la promesa de alta eficiencia.
Pools de Minería
A diferencia de las cadenas proof-of-work, los pools de minería en Koinos pueden aumentar la descentralización y la participación en la gobernanza, ya que podrían permitir a los usuarios no técnicos asignar su capital a usuarios más técnicos que pueden garantizar más tiempo de actividad y votar de acuerdo con los deseos de sus contribuyentes. Los usuarios participarían en un pool de minería simplemente transfiriendo su VHP a otra cuenta de Koinos que ya ha sido actualizada con un contrato de minería que distribuye automáticamente las recompensas a sus contribuyentes.
Mayor Liquidez
Si en cualquier momento el productor de bloques o participante del pool de minería quiere salir de la producción de bloques, solo necesita retirar su VHP de la dirección y venderlo como lo haría con cualquier token fungible. Esto maximiza la liquidez y permite a los usuarios salir de la producción de bloques a voluntad con un mínimo impacto económico negativo.
Resistente a la Centralización y Comprobablemente Igualitario
Con proof-of-burn, no hay equipos de minería, solo cuentas que mantienen tokens VHP, por lo que la tasa a la que se pagan las recompensas de bloque es completamente algorítmica. Esto no solo lo hace infinitamente personalizable, sino también totalmente resistente a la centralización del hardware. Todo esto hace que proof-of-burn sea el primer algoritmo de consenso que entrega la economía de proof-of-work y es comprobablemente igualitario; finalmente cumpliendo con la visión original de Satoshi de un efectivo electrónico verdaderamente peer-to-peer que utiliza recursos computacionales de repuesto y no requiere hardware dedicado.
Gobernanza Descentralizada
El alto grado de capacidad de actualización habilitado por el framework de blockchain Koinos hace que la gobernanza sea el cuello de botella en lugar del proceso de bifurcación dura. Como cualquier comportamiento del sistema, la gobernanza es "solo" otro contrato inteligente en Koinos, aunque uno con privilegios a nivel de sistema y especial importancia en el proceso de actualización. El contrato de gobernanza está modelado según cómo la red Bitcoin gestiona las actualizaciones (por ejemplo, SegWit) y puede considerarse como la Organización Autónoma Descentralizada (DAO) más simple del mundo. Permite a las personas: (1) Proponer actualizaciones, (2) Revisar actualizaciones durante un "período de revisión", (3) Emitir votos sobre actualizaciones durante un "período de votación" y (4) al final del período de votación, la propuesta debe pasar o fallar. Los votos se emiten al producir un bloque, por lo que la influencia sobre la gobernanza se basa en cuántos tokens ha quemado un usuario, no en cuántos posee (stake).
La aplicación de la actualización se retrasa 1 semana para asegurar que los desarrolladores y negocios tengan tiempo de adaptar sus sistemas a la actualización. Para prevenir el spam de propuestas, los usuarios deben quemar KOIN cuando envían una propuesta. Para asegurar que esta comisión pueda calcularse de manera descentralizada y autónoma, la comisión de quema es igual al suministro total dividido por 1,000,000. Dado que todas las acciones en la blockchain también deben pagar una comisión en Mana, el "límite de crédito de recursos" para enviar una propuesta es 1/10 de la comisión de quema, o 10 Mana en el ejemplo anterior.
Actualizando la Gobernanza
Dado que el sistema de gobernanza es en sí mismo un contrato inteligente de Koinos, todos estos parámetros pueden cambiarse sin una bifurcación dura. De hecho, esto es lo que finalmente distingue a Koinos como la única blockchain verdaderamente capaz de evolución; ¡la gobernanza puede actualizarse a sí misma! Pero como el componente más importante del sistema, debería ser mucho más difícil cambiar la gobernanza que cualquier otra parte del sistema. Por esa razón, se requiere un voto de supermayoría del 75% para las actualizaciones de gobernanza, mientras que solo se requiere una mayoría del 60% para las actualizaciones del sistema que no son de gobernanza (anulaciones de llamadas del sistema y promociones de contratos del sistema). Pero nuevamente, incluso estos números pueden ser modificados por la gobernanza (con una mayoría del 75%).
Conclusión
En este documento hemos descrito la lógica de negocio innovadora agregada al framework de blockchain Koinos para hacer de Koinos mainnet la blockchain más accesible del mundo. El sistema Mana permite un uso más eficiente de los recursos de la red mientras crea experiencias de usuario sin fricción (incluso divertidas) a las que las personas se han acostumbrado. Las delegaciones de Mana permiten a los no poseedores de tokens usar dApps sin tener que adquirir tokens, completando la experiencia de usuario Web2 en una plataforma descentralizada. El token KOIN permite que la red principal se lance completamente descentralizada como resultado de su lanzamiento abierto y justo de proof-of-work en Ethereum. En la red principal, el token KOIN regulará el uso gratuito de todo el ecosistema Koinos, inflando y deflactando apropiadamente a través del algoritmo de consenso proof-of-burn, mientras que la gobernanza descentralizada impulsa mejoras continuas a través de actualizaciones sin bifurcaciones desarrolladas usando el Soporte de Lenguaje Universal.