Píldora tecnológica Witnet 1: Transacción y finalización del bloque de Adán Sánchez de Pedro Blog de la Fundación Witnet Enero de 2021

La cadena de bloques Witnet tiene un enfoque único de finalidad; es decir, cuánto tiempo tarda una transacción o un bloqueo en volverse irreversible o "confirmado". Descubra cómo funciona.

La finalidad se describe mejor como cuánto tiempo se necesita para que una transacción o un bloqueo se considere irreversible una vez publicado en una cadena de bloques.

El concepto de finalidad existe en primer lugar porque para la mayoría de los protocolos de públicos, a veces es posible "revertir" o "reorganizar" los bloques más recientes. Solo cuando haya pasado algún tiempo, puede asumir que las transacciones y los bloques son definitivos y no se pueden revertir.

Cuando se trata de la cadena de bloques de Bitcoin, debe esperar 6 "confirmaciones" para que una transacción se considere definitiva. En otras palabras, es necesario que existan 6 bloques adicionales después del bloque en el que se publica una transacción antes de que finalice esa transacción, lo que normalmente demorará ~ 1h.

Este también es el caso de muchas otras cadenas de bloques de prueba de trabajo. Por ejemplo, en Ethereum, se requieren 10 confirmaciones (~ 3 minutos) para lograr un grado similar de seguridad a las 6 confirmaciones de Bitcoin según Vitalik; aunque Gervais et. Alabama. argumentan que esta equivalencia ronda las 37 confirmaciones (~ 8 minutos).

En el protocolo Witnet, la finalidad se garantiza mediante supermanzanas.

Cada 10 bloques (específicamente, aquellos bloques con un número de época / altura de bloque que es un múltiplo de 10), el protocolo muestra un "comité" de 100 nodos del Conjunto de reputación activa, es decir, nodos con un historial probado de confiabilidad. Se requiere una gran mayoría de 2/3 de este comité * para firmar digitalmente un mensaje que se deriva del hash de los últimos 10 bloques de la cadena. De esta manera, la red puede construir un fuerte consenso sobre el estado de la cadena, sin tener que reunir firmas (también conocidas como “votos”) para cada bloque individual.

La existencia de un único superbloque comprometido con la cadena de bloques en la que se publicó una transacción es suficiente para considerar la transacción definitiva e irreversible. Aquí tienes un ejemplo práctico:

Alice le paga a Bob 100 ingenios en algún momento de la época (altura del bloque) # 3456. Normalmente, una transacción se incluirá en el siguiente bloque, en este caso, # 3457. El próximo superbloque tendrá lugar justo después del # 3460. A los miembros del comité de firma de la supermanzana se les da hasta la época # 3469 para difundir sus votos firmados. En la época # 3470, se cuentan las firmas, y si la mayoría de los votos del comité afirmaron que el bloque en el que existía la transacción, la transacción puede considerarse inmediatamente final.

En el ejemplo, la transacción toma 13 épocas (9 minutos y 45 segundos) desde la inclusión en un bloque hasta la finalización. En circunstancias normales *, y dependiendo de qué punto dentro del período de 10 épocas se envía una transacción, el El retraso de la finalidad variará de 7,5 a 15 minutos.. Este retraso está en línea con lo que vemos en otras cadenas de bloques y debería ser lo suficientemente bajo para la mayoría de los casos de uso. Es importante tener en cuenta que esto no es una "finalidad probabilística" (un punto en el que una reorganización o reversión es muy poco probable); esto es realmente una finalidad dura – es técnicamente imposible revertir las supermanzanas.

A pesar de que este enfoque se aleja radicalmente del de las principales cadenas de bloques de Prueba de trabajo, este diseño y sus supuestos no son exóticos. Este mecanismo es muy similar a los dispositivos de finalidad de muchas cadenas de bloques de prueba de participación., como Casper FFG (Ethereum 2.0), ABUELO (Lunares) o PBFT / Tendermint (Cosmos).

Aquí hay un video de la investigadora y desarrolladora de Witnet, Claudia Bartoli Duncan, que explica las diferencias entre los diferentes dispositivos de finalidad en EthCC 2020:

El ecosistema Witnet se enorgullece de ser uno de los primeros en adoptar la tecnología de cifrado de próxima generación, desde los VRF (también utilizados por Polkadot y Algorand) hasta las firmas BLS (una característica clave de la cadena de balizas Ethereum 2.0). En este caso, podemos afirmar que el protocolo Witnet venció a algunos de esos otros proyectos en la carrera por implementar estas tecnologías en producción.

Caída de micrófono ? ⬇️.

La forma más sencilla de comprobar si una transacción es definitiva e irreversible es buscarla en un explorador de bloques. Las transacciones que son definitivas se etiquetan como confirmadas y las que están en espera de confirmación se muestran como pendientes o minadas:

El explorador de bloques Witnet de Dr. CPU muestra el estado de confirmación en los detalles de la transacción.

En Sheikah Witnet Wallet (a partir de la versión 1.7.3) puede hacer clic en cualquier transacción para ver el estado de confirmación:

Sheikah Witnet Wallet también muestra el estado de confirmación en los detalles de la transacción.

En cuanto a la interfaz WebSockets del componente de billetera de witnet-rust, ya proporciona información de finalidad como un valor booleano en el campo confirmado de la respuesta JSON al consultar el método get_transactions.

Al operar un nodo witnet-rust, actualmente no puede consultar fácilmente el estado de confirmación de una transacción, pero los desarrolladores ya están trabajando para mostrar dicha información en el método de transacción de la CLI.