Actualización de Safe Network Dev 🇪🇸 5 mayo 2022

Esta es una traducción automática. El original en inglés está aquí: 5 May 2022

Hemos profundizado en el funcionamiento de los certificados de soporte digital (DBC) recientemente, investigando cómo funcionan y por qué encajan tan bien en Safe Network, pero ¿qué sucede realmente cuando paga por una carga de datos o transfiere algunos SNT a otra persona? Las transacciones DBC son el tema de la actualización de esta semana.

Progreso general

El traspaso ahora está hecho, desempolvado e integrado en sn_network, gracias al trabajo sólido del equipo, particularmente @anselme, quien ha estado trabajando en esto durante las últimas semanas. Como recordatorio, el traspaso rige procesos como divisiones y abandonos de nodos, en los que debemos asegurarnos de que los datos se repliquen en los lugares correctos con suficientes copias para la redundancia.

@Chriso completó la primera versión de automatización de verificación de licencia. Habiendo racionalizado recientemente la concesión de licencias de nuestro código, queremos asegurarnos de que siga siendo así y asegurarnos de que nuestro código solo se use como pretendemos. La licencia GPL3 es ‘copyleft’, lo que evita la ‘sublicencia’, es decir, las personas que derivan algo nuevo del código original no pueden cambiar el tipo de licencia en su bifurcación; esto garantiza que cualquier código seguro seguirá siendo de código abierto. Para las bibliotecas genéricas, estamos siendo menos restrictivos.

¿Por qué BSD-3-Cláusula? Al igual que con MIT y Apache, es bastante liberal, pero la tercera cláusula adicional, que impide el respaldo de los autores originales con cualquier producto derivado, es útil para proteger la reputación de MaidSafe. Solíamos tener licencias duales en muchos repositorios, pero no parece haber mucho beneficio en eso, y es más fácil para un proceso automatizado imponer el uso de uno.

En el frente de monitoreo y visualización del sistema, @yogesh ha estado jugando con la pila ELK y debería estar lista para que la comunidad la pruebe muy pronto. Mira este espacio :eyes:

Y @JimCollinson ha estado poniendo por escrito los objetivos estratégicos de MaidSafe y Safe Network, observando las medidas clave que debemos tomar para lograr nuestros objetivos, así como identificando cualquier obstáculo potencial, dándonos tiempo para trazar un curso alrededor de ellos.

¡También un sincero agradecimiento a @stout77 por proporcionar la imagen de portada de esta semana! :bowing_man:

DBC en acción

¿Qué sucede cuando gastas un DBC en Safe Network? ¿Cuáles son los elementos de una transacción DBC? Antes de profundizar un poco más, un breve resumen…

Un DBC es un archivo digital que codifica una serie de factores, incluido su padre, el monto y una autoridad, como una firma o clave, para demostrar que es válido. Para gastar un DBC, primero debe volver a emitirlo los ancianos.

Una transacción también es un archivo digital. En este caso, codifica los DBC de entrada y los DBC de salida.

Una versión simplificada de una transacción en Safe Network es la siguiente:

Un cliente (una persona o una aplicación) crea la transacción deseada, por ejemplo, “tome estos 100 SNT DBC de mi billetera y cree dos nuevos DBC, 90 como pago para la tienda y 10 como cambio para mí”. El cliente firma la transacción y la envía a la sección correspondiente según su dirección XOR.

Los ancianos de la sección validan la transacción, asegurándose de que todas las entradas sean DBC válidas que nunca se hayan gastado, y luego las escriben en el libro de gastos.

Cada anciano verifica que la transacción esté en el libro de gastos y que la suma de los DBC de entrada y salida sea cero (para que el dinero no se cree ni se pierda, solo se transfiera a nuevos DBC), y devuelve la transacción al cliente con su parte de firma.

Una vez que el cliente ha cobrado una gran mayoría de acciones de firma (5 de 7 ancianos), vuelve a enviar la transacción con la firma completa a los ancianos, después de lo cual se volverá a emitir. El doble gasto se evita por el hecho de que la transacción con sus salidas ya está registrada en el libro de gastos. Cada DBC de salida solo se puede volver a emitir (gastar), por lo que no importa cuántas veces se vuelva a enviar.

Comprobación y ofuscación

Lo anterior está muy bien. Evita el doble gasto y elimina la necesidad de que las secciones sincronicen los libros de gastos entre sí. Sin embargo, se puede mejorar.

Primero, usamos la biblioteca Rust bulletproofs para verificar que el rango del monto DBC sea positivo; los montos negativos permitirían crear dinero de la nada; no no.

La segunda medida importante es la ofuscación. Utilizamos transacciones confidenciales de anillo (RingCT) para ocultar las claves del propietario y del destinatario. Aunque la clave del propietario está oculta, los ancianos aún pueden saber si la transacción registrada en el libro de gastos es válida. Del mismo modo, las pruebas de bala ocultan la cantidad, pero aún pueden verificar que las cantidades de entrada equilibren las cantidades de salida.

Los pasos de ofuscación ocurren antes de que la transacción se escriba en el libro de gastos, rompiendo efectivamente el vínculo entre el DBC principal y sus salidas. Si no hiciéramos esto, sería fácil rastrear todas las transacciones, ya que all Los DBC se vinculan con el DBC de génesis y no habría privacidad.

La génesis DBC

Terminamos por el principio, ya que aún se están trabajando en los detalles precisos de cómo distribuimos DBC a los agricultores y titulares de Maid. El pensamiento actual es que todos los SNT se codificarán en un solo DBC de génesis, uno sin entradas.

Entonces, todos los SNT que alguna vez se crearán tendrán esta única forma, como el universo antes del Big Bang. Una vez que la red se lance de verdad, el génesis DBC se reeditará, se subdividirá y se extenderá por todo el firmamento. El mejor mecanismo para esta distribución es lo que estamos investigando ahora.


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.