Actualización de Safe Network Dev 🇪🇸 10 de noviembre 2022

Esta es una traducción automática. El original en inglés está aquí: Update 10 November, 2022

Una pequeña muestra de lo que vendrá esta semana. Como sabrá, los mecanismos de consenso están en el centro de casi todas las redes descentralizadas, incluido bitcoin. De hecho, podría decirse que la principal innovación de bitcoin es el mecanismo de consenso de la cadena de bloques. Pero siempre hay una compensación. En bitcoin y otras cadenas de bloques, es el mecanismo de manejo de horquillas, lo que significa que pueden existir dos versiones durante mucho tiempo (en teoría, para siempre) y deben resolverse a través de PoW, que es el talón de Aquiles de bitcoin.

Como tal, nos hemos esforzado por evitar los algoritmos de consenso (como se entienden generalmente) siempre que sea posible. ¿Los usan las hormigas? Pero hay algunas ocasiones en las que con las redes informáticas probablemente sean necesarias. Esto es lo que Mostafa ha estado investigando, y profundizaremos en eso en las próximas semanas.

Progreso general

En este momento, estamos renovando el proceso de la máquina de CI para que sea un poco más ágil y seguro. Este es en gran medida el bebé de @chriso y ha estado trabajando para tener todos los elementos en su lugar, incluidas las API, las instancias EC2, las funciones sin servidor y la protección DDoS. Casi allí ahora.

Estamos trabajando para eliminar tantos bloqueos de lectura/escritura como sea posible durante la replicación de datos. Este es principalmente el dominio de @joshuef. Josh y @bochaco también han completado prácticamente el refactor sn_node para reintroducir comunicaciones bidireccionales en el código. Esto es algo que teníamos antes, pero se volvió muy complejo. Simplificar el código base significa que podemos recuperarlo. Todavía estamos probando, pero ya estamos viendo mejoras en la estabilidad.

@roland está eliminando la función traceroute. Causa hinchazón, no ha demostrado ser útil (y menos aún con transmisiones bidireccionales), por lo que nos estamos deshaciendo.

Mecanismos de consenso

Hay muchos mecanismos de consenso en informática. Algunos son asuntos binarios simples, otros son mecanismos complejos de múltiples variantes. Sin embargo, lo importante que debe entender es que todos son solo herramientas para un trabajo, y nada más. Ese trabajo es garantizar el acuerdo entre las entidades durante un tiempo determinado. Pero así como las personas necesitan estar de acuerdo en ciertas reglas para llevarse bien, como en qué lado de la carretera conducir, no necesitan estar de acuerdo en todo para vivir juntos. A diferencia de las cadenas de bloques, las personas no necesitan pedidos en todo el sistema, y ​​Safe tampoco. Por lo tanto, debemos elegir la herramienta adecuada para el trabajo, hacerlo solo cuando sea necesario y, lo que es más importante, asegurarnos de que esa elección no nos limite.

Safe es una red descentralizada asíncrona. Las cosas están cambiando todo el tiempo; El “estado”, es decir, una instantánea de la comprensión actual que tenemos del mundo, casi siempre es diferente desde el punto de vista de cada nodo individual. Y, sin embargo, al menos por un corto tiempo, estos nodos deben estar de acuerdo.

El consenso es básicamente una palabra para decir que en algún momento, todos los que importan necesitan ver el mismo estado para que ocurra una acción.

Entonces, ¿cómo llegan a un acuerdo los nodos sobre el estado? Bueno, eso depende de la circunstancia, la acción y el alcance.

A menudo, en Safe, podemos llegar a un acuerdo a través de la antientropía (AE). Este es un simple intercambio de información para asegurarnos de que estamos hablando con los ancianos actuales en una sección. Como tal, AE podría verse como un mecanismo de consenso local simple, binario, aunque solo lo consideramos como una verificación de que las partes que deben estar sincronizadas están todas en la misma página. Ciertamente, está muy lejos del orden total de todo el sistema de bitcoin.

Cuando los ancianos llegan a un acuerdo sobre un curso de acción, utilizamos la generación de claves distribuidas (DKG) para garantizar que la gran mayoría de los ancianos estén de acuerdo. Ese también es un tipo de consenso local, binario (sí/no), aunque no solemos usar esa palabra.

Luego tenemos los tipos de datos replicados sin conflictos (CRDT), que usamos para datos mutables. Estos tienen un reloj lógico, permiten el acceso simultáneo y eventualmente resuelven bifurcaciones a un estado. Todo esto sucede sin ningún consenso. Las horquillas están bien y se resuelven automáticamente.

Pero luego hay otras situaciones en las que no podemos tolerar una bifurcación, ni siquiera por un nanosegundo, y ahí es donde, como red descentralizada asíncrona, definitivamente necesitamos consenso.

Y hay áreas grises en las que podemos tolerar bifurcaciones durante un cierto tiempo, pero eventualmente debemos resolverlas. Estos pueden necesitar un mecanismo de consenso formal.

Entonces, ¿dónde podrían las hormigas necesitar ayuda técnica? Uno es reclutar nuevos nodos de una lista de quizás cientos de candidatos, todos con una edad de nodo de cero, ¿cuál elegimos? En este caso, es posible que debamos confiar en una inteligencia superior que el grupo pueda proporcionar.

Otro es Membresía: administrar qué nodos están en una sección. DKG es un instrumento contundente y no maneja muy bien los casos extremos como múltiples uniones y hojas simultáneas.

Y es posible que necesitemos un mayor nivel de consenso para administrar los DBC en todas las secciones para evitar el doble gasto.

Esto es en lo que se centra el equipo, en particular Mostafa y @davidrusu, en este momento: implementar el protocolo correcto en el lugar correcto en el momento correcto. ¡Más pronto amigos!


Enlaces útiles

No dude en responder a continuación con enlaces a las traducciones de esta actualización para desarrolladores y los moderadores las agregarán aquí.

Como proyecto de código abierto, siempre estamos buscando retroalimentación, comentarios y contribuciones de la comunidad, así que no sea tímido, únase y creemos la red segura juntos.