¿Cómo funcionará realmente la cadena de bloques de Libra?

¿Cómo funcionará realmente la cadena de bloques de Libra?

La opinión experta de Jameson Lopp, un cifrado profesional, creador de satoshi.info y esos. Director Casa, sobre la interferencia sin ceremonias de Facebook en la criptosfera. Lopp estudió cuidadosamente, además de otra información disponible sobre el tema, un documento técnico de 26 páginas (¡con 53 autores impresionantes!) Que describe el protocolo que se usará como plataforma para la Coraina de Facebook. A continuación se muestra un análisis detallado de este documento.

Visión general

El protocolo Libra permite que una colección de réplicas, llamadas validadores y controladas por varias autoridades, mantengan conjuntamente una base de datos de recursos programables.

No hay distorsión aquí: el sistema será controlado «verticalmente» por un grupo de partes autorizadas. Sin embargo, tenga en cuenta que la base de datos es para «recursos programables» y no solo para moneda digital.

Estos recursos pertenecen a varias cuentas de usuario / cuentas autenticadas mediante criptografía de clave pública, y obedecen las reglas de usuario definidas por los desarrolladores de estos recursos.

El uso de tal generalización como «recursos» sugiere que estamos hablando de algo mucho más grande que simplemente otra estucoqueña.

Las transacciones se basan en contratos inteligentes predefinidos y, en versiones futuras, generados por el usuario y escritos en un nuevo lenguaje de programación llamado Mover. Utilizamos el lenguaje Mover para definir el trabajo de los principales mecanismos de trabajo de la cadena de bloques, como la moneda y la membresía del validador.

Esto es más interesante. El uso de un nuevo lenguaje especial para redactar contratos inteligentes conducirá a muchas preguntas sobre la versatilidad de este lenguaje y la estabilidad del sistema con contratos antagónicos y competitivos. También habrá preguntas sobre la conveniencia del desarrollador y la protección contra errores accidentales.

  1. Introducción

Este ecosistema ofrecerá una nueva moneda global, Coina Libra, que contará con una cesta de depósitos bancarios y bonos del tesoro de los mejores bancos centrales.

Libra es un protocolo criptoactivo personalizable, y el primer activo será steablockcoin.

Con el tiempo, la estructura de los derechos de membresía cambiará hasta que se abra completamente y se basará únicamente en el número de monedas Libra que tenga el usuario.

Suena como una prueba de juego. Obviamente, el plan es hacer que la membresía esté abierta en cinco años, y espero que durante este tiempo los autores del protocolo estudien detenidamente las características de la prueba de estaca. Aunque sospecho que al final se enfrentarán a los mismos problemas que Ethereum.

La asociación ha publicado informes que describen … una hoja de ruta para la transición a un sistema abierto sin niveles de acceso.

Estoy seguro de que este será el primer caso de una transición de una red distribuida desde un sistema cerrado con acceso limitado a un sistema abierto. Es posible que la red en su conjunto pueda cambiar a la prueba de juego, pero para mantener el rumbo del curso y garantizar la estabilidad del bloque, algunas entidades deben mantener abierto el puente hacia el sistema financiero tradicional. Y seguirá siendo un punto permanente de control centralizado, organizado a través de la Asociación Libra.

Los validadores se turnan para gestionar el proceso de aprobación de la transacción. Cuando el validador actúa como líder, ofrece tanto las transacciones que le presentan directamente los clientes como las transacciones que se presentan indirectamente a otros validadores a través de otros validadores. Todos los validadores ejecutan transacciones y forman una estructura de datos validados que contiene un nuevo historial de registro. Los validadores eligen el voto del autenticador para esta estructura de datos como parte del protocolo de consenso.

Esto suena como la Tolerancia de falla bizantina práctica, un algoritmo bien estudiado en los últimos 20 años, aunque probablemente cambiaron algunos de los parámetros. De la sección 5 del documento, aprendemos que el algoritmo se llama LibraBFT y es una versión del protocolo de consenso HotStuff.

Como parte de completar la transacción T i en la versión i, el protocolo de consenso muestra una firma en el estado completo de la base de datos en la versión i, incluido su historial completo, para autenticar las respuestas a las solicitudes de los clientes.

Estos mecanismos básicos le permiten crear un mecanismo de administración único, inicialmente basado en la estabilidad y la reputación de las organizaciones existentes, pero que con el tiempo se convierten en un sistema completamente abierto.

Parece que la Asociación Libra será una federación que puede evolucionar con un sistema de votación, con algún tipo de sistema de reputación inicialmente asignado.

Esto es notable principalmente porque significa que los validadores pueden unirse a la red y sincronizarse rápidamente sin tener que reproducir todo el historial de la cadena de bloques. Se supone que confían en los validadores existentes.

  1. Modelo de datos lógico.

El protocolo Libra utiliza un modelo de datos basado en cuentas para codificar el estado del registro.

En términos de estructura de datos, Libra se parece más a Ethereum o Ripple que a Bitcoin. El modelo UTXO tiene sus ventajas y desventajas, como una mejor confidencialidad y un historial de transacciones más confiable (debido a la simplicidad de la historia basada en los resultados de la transacción), pero puede ser más difícil trabajar con contratos inteligentes complejos bajo dicho modelo. En consecuencia, un modelo basado en cuentas tiene sentido porque Facebook apenas se preocupará por la privacidad del usuario, a pesar de que la plataforma parece estar interesada en respaldar contratos inteligentes.

El protocolo Libra no asocia las cuentas con la identidad del usuario. Un usuario puede crear múltiples cuentas generando varios pares de claves. Las cuentas administradas por un usuario no están necesariamente relacionadas entre sí. Este esquema sigue el ejemplo de Bitcoin y Ethereum, que proporciona el seudónimo de los usuarios.

Suena sorprendentemente bien, pero me pregunto si esto también se aplica a Libra-Coyne, un activo. Será interesante ver qué tan abierto estará este sistema para los desarrolladores que desean crear aplicaciones para proteger mejor la privacidad del usuario.

Cada recurso tiene un tipo expresado en el módulo. Los tipos de recursos son tipos nominales que consisten en el nombre del tipo, así como el nombre y la dirección del módulo de declaración del recurso.

Parece que puede generar una dirección, y esta dirección puede tener un número arbitrario de activos asignados, siempre que cada activo tenga un nombre único.

Ejecución de la transacción T i crea un nuevo estado S i del registro, así como un código de estado de ejecución, consumo de gas y una lista de eventos.

Bueno, ahora sabemos cómo el sistema está protegido contra ataques de agotamiento de recursos, probablemente debido al uso del sistema de costos de estos recursos, similar al utilizado en Ethereum.

En la historia del registro no hay concepto de bloque de transacción.

Es interesante El protocolo Libra no tiene una estructura de datos de cadena de bloques; los bloques se parecen más a una construcción lógica virtual que utilizan los validadores para coordinar las instantáneas de estado del sistema confirmadas. Volviendo, ahora la primera oración de la sección tiene más sentido:

Todos los datos en la cadena de bloques de Libra se almacenan en una base de datos de una sola versión. El número de versión es un número de 64 bits sin firmar que representa el número de transacciones ejecutadas por el sistema.

Todas las redes de activos criptográficos que conozco, en general, funcionan de la misma manera: hay un estado del sistema, luego se realiza una transacción, que en realidad es una función de cambiar el estado del sistema, después de lo cual el sistema cambia a un nuevo estado.

 ¿Cómo funcionará realmente la cadena de bloques de Libra?

Las transacciones se combinan en bloques para racionalizarlas y asignar sellos de tiempo. Esto es muy importante para las redes abiertas en las que los datos son autenticados por firmas de grupo con membresía de grupo dinámico (DMMS). Dado que Libra será un sistema cerrado, puede usar un algoritmo de consenso más eficiente, que no necesita combinarse en bloques de transacciones, ya que existe una probabilidad mucho menor de volver a escribir el historial de transacciones.

En la versión inicial del protocolo Libra, solo un número limitado de funciones de Mover están disponibles para los usuarios. Aunque Move se utiliza para definir conceptos básicos del sistema, como la moneda Libra, los usuarios no pueden publicar módulos individuales que declaren sus propios tipos de recursos. Este enfoque brinda la oportunidad de mejorar el lenguaje y el conjunto de herramientas Mover en función de la experiencia de implementación de los componentes principales del sistema antes de que estas herramientas estén abiertas a los usuarios. Este enfoque también resuelve los problemas de escalabilidad asociados con la realización de transacciones y el almacenamiento de datos que son inherentes a una plataforma universal para contratos inteligentes.

Esto es muy similar a los planes mencionados anteriormente para los «validadores de membresía abierta». Parece que Facebook aún no ha resuelto ninguno de los problemas más graves con los que Ethereum ha estado luchando en los últimos años.

Para gestionar la demanda de potencia de cálculo, el protocolo Libra cobra tarifas de transacción denominadas en monedas de Libra.

Las monedas de Libra son unidades de mercado de protocolo propietario, al igual que las ETH son unidades de mercado del protocolo Ethereum nativas. Esto nos lleva a otra pregunta acerca de la naturaleza de seudónimo de Libra: ¿pueden los usuarios comprar estos koins sin identificación obligatoria a través de los procedimientos de AML / KYC? Si no es así, parece que ninguna de las funciones del sistema se puede usar de forma anónima. De los materiales disponibles en la billetera de Calibra, está claro que requerirá que los usuarios se sometan a procedimientos de AML / KYC. Entonces, tengo dudas de que Libra eventualmente se convierta en un sistema descontrolado, rígido y centralizado.

El sistema está diseñado de tal manera que las comisiones en operación normal, con un número suficiente de potencia de cómputo disponible, permanezcan bajas.

Esto suena extremadamente vago y plantea muchas preguntas: ¿Qué significa una comisión baja? ¿Qué es el funcionamiento normal? ¿Qué potencia de cálculo se considera suficiente?

  1. Ejecución de transacciones.

Muchos componentes de la lógica de la cadena de bloques básica se determinan mediante el movimiento, incluida la deducción de la comisión por el gas. Para evitar procesos de bucle, la máquina virtual (VM) apaga la medición de gas durante la ejecución de estos componentes básicos.

Parece bastante peligroso, pero los autores del documento señalan que los componentes principales deben escribirse teniendo en cuenta los posibles ataques DoS y evitar su ejecución.

Una característica clave de Move es la capacidad de definir tipos de recursos personalizados … el sistema de tipos Move proporciona garantías de seguridad específicas para los recursos. El recurso no se puede copiar, solo mover. Estas garantías son realizadas de forma estática por la VM VM. Esto nos permite representar monedas de Libra como un tipo de recurso en el lenguaje Mover.

Esto arroja un poco más de luz sobre si las monedas de Libra son un activo nativo para la red, como ETH o BTC. Espero que estas monedas sean solo el tipo de recursos por defecto o las únicas válidas en el sistema inmediatamente después del lanzamiento, y el soporte para otros tipos de recursos se presentará más adelante.

El Move bytecode Move tiene menos instrucciones que el idioma de origen de un nivel superior. Además, cada instrucción tiene una semántica simple, que se puede expresar utilizando incluso menos pasos elementales. Esto reduce el tamaño de la especificación del protocolo Libra y facilita la búsqueda de errores durante la implementación.

Suena bien y reflexivo. Espero que la seguridad de su lenguaje de scripting sea mejor pensada de lo que se hizo en Ethereum.

  1. Estructura y almacenamiento de datos validados.

El protocolo Libra usa un solo árbol Merkle para proporcionar la estructura de datos autenticados para el historial de registro … en particular, el historial del registro usa un método de acumulación para formar el árbol Merkle, que también proporciona operaciones de adición eficientes.

Y nuevamente vemos que la «cadena de bloques de Libra» no es en realidad una cadena de bloques. Es realmente extraño que con todo el refinamiento aparente de este protocolo, aún lo sigan llamando una cadena de bloques, mientras que la estructura de datos en la historia del registro es un conjunto de estados de registro firmados. Los validadores asumen obligaciones para cada estado del registro y todos los estados históricos del registro también están vinculados a los árboles Merkle, pero todavía no he visto ninguna hoja de datos con comentarios formando una cadena, por no mencionar una cadena de bloques.

El autenticador de cuenta es el hash de esta vista serializada.

Tenga en cuenta que esta vista requiere que el autenticador se vuelva a calcular para toda la cuenta después de cualquier modificación de la cuenta. El costo de esta operación es O (n), donde n es la longitud de la representación en bytes del recuento total.

Hmmm Si no hay restricciones en la cantidad de datos almacenados en una cuenta, entonces esto suena como apertura a los ataques DoS.

Esperamos que a medida que se use el sistema, el crecimiento en la cantidad de datos almacenados asociados con las cuentas pueda eventualmente convertirse en un problema. Al igual que el gas fomenta el uso responsable de los recursos informáticos, esperamos que se requiera un mecanismo de arrendamiento similar para el almacenamiento de datos. Estamos considerando una amplia gama de posibles enfoques para crear un mecanismo basado en el alquiler que mejor se adapte al ecosistema.

Otro problema sin resolver. Puede esperar una ola de memes sobre la «renta demasiado alta».

El derecho de voto debe permanecer justo tanto durante la era como durante el período posterior a su finalización, para que los clientes puedan sincronizarse con la nueva configuración. Los clientes que están fuera de línea durante más tiempo que este período necesitarán sincronizarse nuevamente usando una fuente externa de la verdad para obtener un punto de control en el que puedan confiar.

Ups. La duración de este «período» no es muy clara, pero si una época dura menos de un día, debe asumirse que el «período» indicado tampoco lo es. Parece que este protocolo de consenso no es tan fuerte que los participantes puedan abandonar la red y unirse nuevamente a su propia discreción.

  1. Consenso tolerante de fallas bizantinas.

LibraBFT implica que el conjunto de votos 3f + 1 se distribuye entre un grupo de validadores, que pueden ser bona fide o bizantinos. LibraBFT permanece seguro, previniendo el doble gasto de residuos y las horquillas, siempre y cuando la mayoría de los votos f estén controlados por los validadores bizantinos.

Al igual que la PBFT, este algoritmo de consenso puede soportar hasta el 33% de los validadores sin escrúpulos. Las modificaciones de HotStuff suenan sensatas:

  1. Resistencia al no determinismo mediante la firma del estado de bloque por validadores, y no solo una secuencia de transacciones.
  2. El líder que establece tiempos de espera y validadores explícitos se basa en el quórum de aquellos que pasan a la siguiente ronda; esto debería aumentar la vitalidad.
  3. Mecanismo impredecible para elegir un líder para limitar los ataques DoS en él.
  4. Las firmas agregadas conservan los validadores de identidad que firman certificados de quórum para votar por la adopción de un bloque.
  1. Redes

Cada validador en el protocolo de Libra tiene información completa sobre los miembros del sistema y, si es necesario, se conecta directamente a cualquier validador. Se supone que un validador que no puede establecer una conexión directa cae dentro de la cuota de errores bizantinos cometidos por el sistema.

Tomará mucho trabajo escalar el sistema más allá de unos pocos cientos de validadores.

  1. Implementación de Libra Core

La seguridad de la cadena de bloques de Libra se basa en la implementación correcta del sistema de validadores, los programas Move y los programas VM Move. La solución de estos problemas en Libra Core está en desarrollo.

Estas palabras resumen en gran parte la sección. Aunque se puede observar que escribieron la implementación en Rust, y esto parece ser una buena opción en términos de rendimiento y seguridad.

  1. Rendimiento

Esperamos que en la puesta en marcha inicial, el protocolo Libra admita 1000 transacciones de pago por segundo, con un intervalo de 10 segundos entre el envío y la finalización de la transacción.

Si consideramos que solo habrá unos 100 validadores, y todos ellos estarán conectados directamente entre sí, el intervalo de 10 segundos entre los bloques parece realista.

Requisitos mínimos para los nodos:

  • Velocidad de conexión a internet 40 Mbit / s.
  • 1 CPU producida en serie
  • SSD de 16 TB

Anteriormente, ya existían menciones de mantener la capacidad de los validadores para realizar la sincronización inicial desde cero, sin la necesidad de confiar en estados firmados por otros validadores. Espero que si Libra se generaliza y se usa de manera activa, pronto esa sincronización se volverá impráctica y el modelo de seguridad de nodo como tal dependerá en gran medida de la confianza de los validadores.

  1. Implementación de políticas de ecosistemas de Libra con movimiento

La reserva de monedas de Libra es el mecanismo principal para lograr la preservación del valor. A través de la reserva, cada moneda cuenta con un conjunto de activos estables y líquidos. El contrato Libra-Coin permite a la asociación emitir nuevas monedas cuando aumenta la demanda y destruirlas cuando se reduce la demanda. La asociación no establece una política monetaria, solo puede emitir y quemar monedas en respuesta a una solicitud de revendedores autorizados. Los usuarios no deben preocuparse de que la asociación acelere la inflación o, a la inversa, devalúe la moneda: para emitir nuevas monedas, debe tener un depósito fiat correspondiente en la reserva.

Ok, pero ahora estamos hablando de eventos que son externos a la red. Como se indicó en el documento técnico anterior, la red no puede ejecutar scripts utilizando entradas de datos que son externas al estado de la red. Por lo tanto, los modificadores «may» y «must» en el fragmento anterior ciertamente pertenecen a las políticas de la Asociación Libra u obligaciones contractuales que la red no conoce.

El algoritmo de consenso se basa en el módulo de control del validador de movimiento para mantener el conjunto actual de validadores y controlar la distribución de votos entre los validadores. Inicialmente, la cadena de bloques Libra otorga derechos de voto solo a los fundadores.

Supongamos que los validadores voten por cambios en la composición de los validadores. Parece que esto debería conducir a un problema similar al que vemos en los sistemas de prueba de estaca: los ataques de largo alcance. Habiendo comprometido un número suficiente de claves secretas de fundadores, ¿puede un atacante escribir un nuevo historial de registro desde cero? Y si es así, ¿lo aceptarán otros nodos? No está claro si el protocolo de consenso permite reescribir los estados antiguos o solo crear otros nuevos.

Tenemos la intención de pasar gradualmente al algoritmo de prueba de juego.

Si logran solucionar los problemas no resueltos.

Preguntas sin respuesta

¿Cómo es la gestión?

Podemos ver que la Asociación Libra es un consejo de participantes y se requiere que 2/3 de sus miembros hagan cambios. Ellos son los únicos que pueden emitir o destruir monedas de Libra, pero, al tener la mayoría suficiente, pueden, presumiblemente, hacer cualquier otro cambio a su discreción.

¿Se requiere AML / KYC?

Obviamente, esto no se requiere a nivel de protocolo, pero de acuerdo con la declaración sobre la billetera de Calibra, todos sus usuarios serán verificados utilizando los documentos de identificación emitidos por el estado. También parece que Calibra será la única cartera disponible durante al menos algún tiempo, por lo que aún no está claro si los desarrolladores y usuarios pueden ejecutar aplicaciones en la red de Libra que no cumplan con los mismos estándares que Calibra.

¿Qué significa baja comisión? ¿Qué es el funcionamiento normal? ¿Qué potencia de cálculo se considera suficiente?

En la sección de preguntas frecuentes del sitio web de Calibra existe una promesa de bajas comisiones, pero puede entrar en conflicto con el mantenimiento del rendimiento del protocolo subyacente durante los períodos de alta carga.

Las tarifas de transacción serán pequeñas y transparentes, especialmente si está haciendo transferencias internacionales. Calibra reducirá las comisiones para ayudar a los usuarios a ahorrar su dinero.

¿Estará Libra realmente abierta a los desarrolladores?

Un plan para un movimiento gradual hacia un consenso de protocolo abierto dice:

Libra Blockchain estará abierto a todos: cualquier usuario, desarrollador o empresa podrá utilizar la red de Libra, crear productos basados ​​en ella y crear valor agregado a través de la prestación de sus servicios. El acceso abierto reduce las barreras de entrada y la creación de productos innovadores y fomenta una competencia sana, que en última instancia beneficia a los consumidores.

Soy escéptico acerca de la promesa de que los desarrolladores podrán ejecutar en esta plataforma cualquier aplicación técnicamente válida que deseen. Nada de lo que he leído me convence de que este sistema será resistente a la censura. Sin embargo, con toda certeza solo el tiempo lo dirá.

Bitfinex Exchange vuelve a funcionar después de actualizar el sistema.

Bitfinex Exchange vuelve a funcionar después de actualizar el sistema.

Opera ha lanzado un navegador con una cartera de criptomonedas incorporada para iOS

Opera ha lanzado un navegador con una cartera de criptomonedas incorporada para iOS