Protocolo Mina AMA

From Mina Wiki
Revision as of 17:56, 17 April 2020 by Dan (talk | contribs) (1 revision imported)
Jump to navigation Jump to search

Originalmente publicado aquí


Staking Hub

Gavin Birch

3 de Octubre de 2019


El 23 de septiembre de 2019, Evan Shapiro, Pranay Mohan y Emre Tekisalp se reunieron con nosotros para desvelar el ansiado mecanismo de staking que utilizará el Protocolo Coda.


Nociones básicas

  • Lanzamiento de la red mainnet: Primer trimestre de 2020.
  • Coda no se lanzará con soporte para contratos inteligentes (smart contracts).
  • Probablemente sin penalizaciones ni periodos de bloqueo en staking.
  • El tiempo de disponibilidad del nodo es clave a la hora de seleccionar productores de bloques en los que delegar.
  • Coda utilizará gobernanza externa (off-chain).


Lo que no sabemos

  • desconocemos la distribución inicial de tokens CODA.
  • desconocemos la tasa de inflación y su parametrización en la red.
  • desconocemos cómo se aplicarán las decisiones en materia de gobernanza.


¿Qué es el protocolo Coda?

El Protocolo Coda será una blockchain única y ligera. Esta será importante debido a dos aspectos: Por un lado, no se basará en sharding (fragmentación de la blockchain en varias cadenas o shards), lo que es complejo y difícil de implementar; Y por otro, Coda evitará el problema de saturación del estado de la cadena: no se tratará de una blockchain en continua expansión, facilitando que cualquiera pueda sincronizar y mantener un nodo completo.


Sin embargo, no hay planes inmediatos para la implementación de contratos inteligentes (smart contracts), por lo que inicialmente Coda solamente admitirá ciertas características computacionales (pendientes de determinar) además de la funcionalidad transaccional estándar.


El proyecto arrancó a mediados de 2017, en palabras de Evan:

  “Izaak (nuestro actual CTO) y yo queríamos crear un protocolo que fuera más descentralizado y más escalable. Izaak estaba en ese momento estudiando su Doctorado en Criptografía en Berkeley y estaba aprendiendo acerca de los zkSNARKs ".


En un momento dado se dieron cuenta de la conexión que existe entre los zk-SNARKs y la descentralización. Mientras que los protocolos existentes parecían estar rehaciendo y duplicando mucho trabajo descargando y verificando las cadenas, se dieron cuenta de que Coda podría evitar este problema utilizando los SNARKs. ¿Cómo? Los participantes podrían simplemente verificar una demostración SNARK para sincronizar de forma instantánea con la cadena, permitiendo así la existencia de bloques de gran tamaño y más nodos. Estos avances dieron lugar a Coda.


Nodos completos para todos

Según Emre, a día de hoy es difícil para el usuario final promedio acceder a Bitcoin sin tener que confiar en un tercero, que es quien opera un nodo completo. Los desarrolladores de Ethereum tienden a utilizar servicios como Infura o Alchemy para el desarrollo de aplicaciones. O(1) Labs considera que estas prácticas suponen ciertos riesgos de centralización y hacen que 1) la blockchain subyacente sea menos confiable y 2) se genere una interfaz de usuario y una experiencia de desarrollo insatisfactorias. Coda debería facilitar a cualquiera la operación de un nodo completo.


El equipo cree que Coda tiene posibilidades de éxito donde otras blockchain hasta el momento no lo han tenido: siendo utilizada como medio de pagos. Están haciendo que Coda sea más accesible para los desarrolladores: se puede ejecutar un nodo completo dentro de una aplicación web o en un dispositivo IoT, por lo que esperan que además se pueda utilizar para otros muchos usos.


¿Qué tipo de ancho de banda de red pueden esperar los desarrolladores? Evan nos comenta que parámetros tales como el número de transacciones por bloque o el tiempo de creación de un bloque serán probados en la próxima testnet. Él predice que estos parámetros serán bastante rápidos, ya que Coda solamente debería estar limitada por la red y la potencia de cómputo local.


Token CODA

El token del protocolo Coda, CODA, no es diferente del token nativo de otras blockchains ya que representa titularidad de la red. El token se utilizará para pagar por la realización de transacciones y se emitirán nuevos CODA para incentivar a los operadores por la generación de nuevos bloques. Este sistema de incentivos será determinante para que los diversos participantes trabajen de manera coordinada y descentralizada.


Además de ser el token nativo de la red, los CODA se pueden utilizar para transferir valor, para actuar como garantía o para cualquier cosa de la que sea capaz un depósito de valor nativo digital. O(1) Labs prevé que el token podrá utilizarse de diversas formas novedosas, aunque aún por imaginar, por aplicaciones desarrolladas sobre el protocolo.


Todavía no sabemos cómo será la distribución inicial (que será anunciada por el equipo), ni la política de inflación, todavía por determinar. O(1) Labs está considerando diferentes modelos inflacionistas que podrían vincular la tasa de inflación de Coda con la tasa de participación en staking. Consulte nuestro artículo reciente para obtener más información sobre esta relación, ilustrada en el caso de Cosmos.


Staking

A pesar de que el protocolo Ouroboros, que es el mecanismo de consenso que el equipo ha seleccionado, no requiere de penalizaciones, O(1) Labs todavía está considerando si aplicar alguna penalización en Coda. Así que podemos decir que este punto todavía está pendiente: se espera que las futuras testnets nos den una indicación de si la aplicación de penalizaciones será necesaria o no en Coda.


Cuando se hace staking con Ouroboros tu disponibilidad puede ir y venir, por lo que el tiempo de disponibilidad puede considerarse como el tiempo en el que estás disponible para aceptar un trabajo, tal y como ocurre con Uber o Lyft. Cuando tu productor de bloques (tu nodo validador) está fuera de servicio no trabajas ni te retribuyen por ello, y cuando vuelve a estar en línea, vuelves al juego.


Sin embargo, estar desconectado desincentivara que deleguen en ti. Aquellos que no produzcan bloques probablemente delegarán en otros y querrán seleccionar para ello a los creadores de bloques más productivos. Los incentivos de aquellos que opten por delegar su stake se distribuirán sin necesidad de ceder la custodia de los mismos y estarán disponibles para ser retirados en cualquier momento.


De igual forma a lo que ocurre con las penalizaciones, es posible que Coda no requiera de bloqueos de parte del stake. En las próximas testnets veremos finalmente cómo se desarrolla este tema; sin embargo Evan espera que no sea necesario bloquear tokens CODA para hacer staking.


La inflación se utilizará para financiar los incentivos para los productores de bloques de Coda, así como para aquellos que han delegado en ellos. Hablaré más adelante de los computadores de snarks (también conocidos como "snarkers"), pero debes saber que los snarkers no participarán en el staking.


Productores de bloques (también conocidos como Validadores)

Aunque los productores de bloques que operan actualmente en la red testnet requieren de 8 Gb de RAM, procesador de 4 núcleos y 1 Mbps de ancho de banda, las GPU serán capaces de crear bloques más rápido. El objetivo del equipo Coda es tener muchos nodos de consenso, por lo que tienen como objetivo las GPUs de gaming comunes, sin requerimientos de stake mínimos ni máximos.


Se pretende que la producción de bloques en Coda sea accesible, sin barreras de entrada, para que cualquiera sea capaz de operar un nodo de staking desde su propia casa con acceso a los mismos incentivos que los que el protocolo ofrece a los profesionales. ¿Quieres probar el consenso y el staking? O(1) Labs tiene una testnet de staking funcionando en este momento, que se supone que es muy fácil de poner en marcha.


El productor de bloques, seleccionado al azar según su peso en el sistema de staking, recibirá la totalidad del incentivo por la creación del bloque y las comisiones de las transacciones contenidas en él, de esta cantidad (tras deducir las comisiones) los que han delegado en él recibirán una parte proporcional. Aparentemente no hay ningún incentivo para que una entidad opere múltiples productores de bloques, más allá de cuestiones relativas a la optimización de la infraestructura asociada.


Los productores de bloques corruptos desperdiciarán su gasto computacional generando bloques inválidos que serán rechazados por la red. Si un nodo transmite o filtra datos incorrectos a la red, verá que la puntuación relativa a su confianza disminuye y esto puede resultar en una prohibición o en un veto temporal.


Decidir cómo delegar

Coda tiene como objetivo evitar las penalizaciones, por ello tanto los productores de bloques como los que delegan en ellos sólo necesitan centrarse en minimizar el coste de oportunidad. Puedes delegar en un solo productor de bloques por cuenta, así que elige con sabiduría.


Tengo la impresión de que para maximizar los retornos por hacer staking, aquellos que deleguen deberían elegir productores de bloques con 1) el mayor tiempo de disponibilidad (uptime) y 2) una latencia que no exceda el intervalo de la ventana temporal.


En la testnet actual la ventana de tiempo es de seis (6) minutos. Pero está previsto que disminuya, posiblemente a 30 segundos, gracias al desafío snark y a su solución ganadora. Según los datos disponibles, ¡el tester SNARK Groth16 ha conseguido acelerar el proceso en un factor 3,6x! Cuanto menor sea la ventana temporal, más potencia de cálculo necesitará un productor de bloques.


Para poder participar, los productores de bloques necesitarán snarks. Podrán adquirirlos de los trabajadores de snarks o "snarkers".


Snarkers (Trabajadores de Snarks)

Aunque los trabajadores de snarks no participan directamente en el consenso, son fundamentales para hacer avanzar la red. Según Pranay, un trabajador de snark (o snarker) es un nodo que genera SNARKs para transacciones. Tal y como se ha dicho, los productores de bloques deben adquirir SNARKs de los trabajadores de Snark (en lo que el equipo llama el "snarketplace") antes de poder transmitir su bloque.


No será necesario un permiso para ser Snarker, y tampoco se les requerirá que hagan staking, pero como mínimo necesitarán 8 Gb de RAM, un procesador de 4 núcleos y 1 Mbps de ancho de banda. Para escalar las operaciones, existe un incentivo para ejecutar más nodos snark. En este caso, Pranay sugirió operar un coordinador snark en forma de nodo maestro distribuyendo las solicitudes a los nodos “hijos”. El rendimiento de las CPU frente a las GPU aún no se ha estudiado y el trabajo snark tendrá que tener en cuenta principalmente la velocidad y la eficiencia de la producción.


Un sistema de confianza similar al de los productores de bloques se aplicará también a los trabajadores snark: aquéllos que produzcan datos incorrectos serán vetados de forma temporal. Los Snarkers deben establecer un precio justo para vender con éxito sus SNARK a los productores de bloques. Tengo curiosidad por saber qué sucedería si aparecieran snarkers de tarifa cero rompiendo así el mercado.


Gobernanza

Los cambios en la red de Coda implicarán inicialmente la señalización en la red para alcanzar consensos, seguido a continuación de la ejecución de hardforks. Estamos deseando conocer más detalles sobre cómo O(1) Labs piensa desarrollar la gobernanza, detalles pendientes de conocer en el momento de publicación de este artículo.


Tampoco hemos recibido ningún detalle acerca de una posible fundación Coda, solamente sabemos que el equipo está estudiando su necesidad de cara a alcanzar todas sus aspiraciones.


Futuro

O(1) Labs ha finalizado la Fase 1 de la testnet Coda, y la Fase 2 con el desafío para el desarrollo del protocolo de staking acaba de comenzar. El objetivo de la Fase 2 será probar la durabilidad de cada red y del conjunto de características que probaron inicialmente en la Fase 1.


El desafío en la Fase 2 incorpora los "puntos de testnet", que no tendrán ningún valor monetario, pero que en una fase futura podrían incluir incentivos de testnet (los detalles estarían aún por anunciar). El equipo tiene como objetivo el lanzamiento del Protocolo Coda en mainnet durante el primer trimestre de 2020.


¿Buscas nuevas formas de involucrarte?

Coda está basado en código abierto y O(1) Labs está lanzando su programa de becas (todavía en desarrollo). El equipo tiene una API GraphQL y mucho trabajo pendiente de desarrollo. Echa un vistazo, profundiza, y contacta con Pranay si tienes una idea que no ha sido tratada. Únete a la comunidad Coda en Discord, donde he comprobado que el equipo es receptivo y servicial.


Agradecimientos especiales

Un agradecimiento especial para Evan Shapiro, Pranay y Emre por pasar una hora con Staking Hub respondiendo a muchas de nuestras preguntas, y a Claire Kart por ayudarnos con la organización. Gracias a Andrew Cronk como co-anfitrión del evento.


Gracias a nuestra comunidad de Staking Hub por las preguntas reflexivas e impactantes que inspiraron respuestas de alta calidad. Si has leído hasta aquí, es mejor que te unas a nosotros en el canal Staking Hub de Telegram :-)