Verificación, Computación e Internet del Valor

Escrito original por Jan Xie


Foto de Freddie Collins en Unsplash

Comprender los intercambios en el diseño de una blockchain

Modelo UTXO de Bitcoin

Bitcoin guarda el libro mayor(ledger) en partes, utilizando UTXOs para almacenar el conocimiento de quién posee una cierta porción de bitcoin.

Un UTXO, abreviatura de Unspent Transaction Output(salida de transacción no gastada), es en realidad la salida incluida en una transacción (CTxOut). Un CTxOut tiene una estructura bastante simple, que incluye solo dos campos:

clase CTxOut
{
public:
CAmount nValue;
CScript scriptPubKey;

}

Cada CTxOut representa una moneda que vale nValue. scriptPubKey es un script que indica el propietario de la moneda (y generalmente incluye la clave pública del propietario). Solo la persona que proporciona los parámetros correctos que hacen que el script se ejecute correctamente puede “transferir” la moneda a otra persona.

Destruye y crea UTXOs en el procesamiento de transacciones

Ten en cuenta la “transferencia” citada anteriormente. Cuando se transfiere una moneda, no solo altera o reemplaza el scriptPubKey que contiene, sino que la destruye y crea una nueva. Cada transacción de Bitcoin destruirá algunas monedas y creará otras nuevas, cuyo valor y propietario cambiarán. El valor total de las monedas de salida recién hechas debe ser menor o igual que el valor de las monedas de entrada destruidas, para garantizar que las personas no gasten bitcoins que no tienen.

Un modelo UTXO tiene las siguientes características:

  1. La moneda (activo) es el elemento más esencial del sistema;

  2. El propietario es un atributo de moneda, por lo que cada moneda tiene un solo propietario;

  3. Las monedas se destruyen y crean constantemente;

Entonces, ¿cómo se traduce esto del modelo UTXO al modelo de Célula?

El papel principal de la Capa 1 es proporcionar un consenso global sobre el estado, por lo que el diseño de la Capa 1 de CKB también pone énfasis en el estado.

En el protocolo de Bitcoin, la salida de una transacción y el nuevo estado son el mismo objeto porque la arquitectura de Bitcoin se centra en los estados.

Con Ethereum, el historial de transacciones y el historial de estados son dos dimensiones diferentes. Los bloques y las transacciones representan los eventos que desencadenan la transferencia de estado, en lugar de los estados en sí.

El modelo de Célula

Un estado verificado y mantenido por CKB no es simplemente un número (nValue), sino cualquier dato que todos los actores consideren valioso y reconocido. Mientras nValue se modifique para que sea un espacio que pueda almacenar no solo enteros, sino también cualquier otro dato, tenemos un ‘nValue’ más generalizado, llamado ‘Cell (célula)’. El activo nativo de la red CKB es el estado de consenso, espacio de almacenamiento para que los datos sean validados por consenso global.

pub struct CellOutput {
pubcapacity: Capacity,
pubdata: Vec <u8,
publock: Script,
pubtype_: Option <Script,
}

En una Célula, nValue se reemplaza por ‘capacidad’ y ‘datos’. Juntos, estos dos campos representan un espacio de almacenamiento. ‘Capacidad’ es un número entero que contiene el tamaño del espacio de almacenamiento (en bytes), mientras que ‘datos’ contiene los bytes que representan el estado.

El modelo de Célula también introduce el concepto de script de bloqueo, que es similar a scriptPubKey, para referirse al propietario de la Célula. Solo la persona que puede producir los parámetros (como una firma) requeridos por el script de bloqueo puede “actualizar” el estado de la Célula. Al igual que con ‘datos’, los bytes ocupados por CellOutput no deben ser más que el valor de ‘capacidad’ de la Célula.

En Bitcoin, el conjunto de todos los UTXO no utilizados forma el estado actual de la red de Bitcoin. CKB contiene una gran cantidad de Células: el conjunto de todas estas Células forma el estado actual de CKB, que almacena no solo un libro mayor(ledger) para la moneda digital, sino un conocimiento común más diverso.

El estado de CKB es un conjunto de Células

Al igual que en Bitcoin, una transacción CKB en sí misma es el cambio / transferencia de un estado. El cambio de estado, o “actualización” del contenido de la Célula, se realiza mediante la destrucción de la Célula y la creación de la Célula, lo que significa que el contenido de la Célula original no se cambia directamente. Cada transacción en realidad destruye algunas Células y crea otras nuevas, las Células recién creadas tendrán nuevos propietarios y almacenarán nuevos datos.

El protocolo Bitcoin verifica el ‘nValue’ de las entradas y salidas para asegurarse de que una transacción no esté creando bitcoin. El CKB asegura que nadie pueda generar espacio de almacenamiento adicional de la misma manera, al exigir que la ‘capacidad’ destruida sea mayor o igual que la ‘capacidad’ recién creada.

Como activo nativo de la red CKB, la ‘capacidad’ representa el espacio para el estado de consenso, que una transacción puede transferir pero nunca generar. Cuando una Célula se destruye, simplemente se marca como “destruida” de la misma manera que un UTXO se marca como “gastado”, en lugar de eliminarse de la blockchain. Cada Célula solo se puede destruir una vez, al igual que cada UTXO solo se puede gastar una vez.

El estado de consenso se refiere a los bytes que la red CKB valida y alcanza el consenso.

Un modelo de Célula tiene las siguientes funciones y es esencialmente una versión generalizada del modelo UTXO.

  1. El estado es el elemento más esencial del sistema;

  2. El propietario es un atributo de estado, por lo que cada estado tiene un solo propietario;

  3. Los estados están siendo constantemente destruidos y creados;

Verificación del modelo de Célula

Solo tener espacio para almacenar cualquier estado no es suficiente. La razón por la cual Bitcoin es valioso es que cada transacción debe ser validada por cada uno de los nodos completos de la red, de modo que todos los usuarios puedan garantizar que se sigan las reglas escritas en el protocolo de Bitcoin (y los usuarios saben que otros creen que las reglas se están haciendo cumplir). El concepto de conocimiento común también se deriva de esto. Si alguien se asegura de que lo que él o ella sabe también sea reconocido por otros, la información que acuerdan se llama conocimiento común.

En el sistema blockchain, se sabe que los datos pueden ser verificados independientemente y reconocidos por cualquier actor. Esta es la razón por la cual una blockchain puede generar conocimiento común. Se llega a un consenso mediante la validación y la confirmación entre todos los actores. Así es también como se crea el conocimiento común. (Cabe señalar que el conocimiento se valida de acuerdo con reglas predefinidas. Sin embargo, el conocimiento validado no siempre es verdad.

¿Cómo podemos verificar los datos almacenados en una Célula?

Esto depende de otro campo en la Célula- el type script. Este script define las reglas de transferencia de estado y, por lo tanto, impone restricciones sobre el estado. Cuando se llega a un consenso en la red CKB, el CKB-VM ejecutará el type script y verificará que el estado guardado en la Célula recién generada se ajusta a las reglas predefinidas por el type script. Todas las Células que están restringidas por el mismo tipo de type script almacenan el mismo tipo de datos.

Únete a nuestra comunidad de mineros, desarrolladores y cripto-entusiastas- conéctate con nosotros en Nervos Talk, Github, Twitter y Reddit, e inscríbete para recibir actualizaciones de la comunidad .

Para discusiones o preguntas, únete a uno de los canales de Telegram de nuestra comunidad: inglés, coreano, ruso, japonés, español, vietnamita y chino. También hay canales dedicados a Minería y Dev.