Autor: Laboratorios 3P

I. Introducción

Como la cadena de bloques más antigua y segura, el modelo de cuenta UTxO utilizado por Bitcoin le dificulta admitir funciones de contratos inteligentes como Ethereum y solo puede admitir algunas funciones limitadas basadas en lenguajes de secuencias de comandos. Por lo tanto, en los 15 años transcurridos desde el nacimiento de Bitcoin, no se ha utilizado para implementar varios protocolos DeFi y NFT deslumbrantes como Ethereum, que generalmente se utilizan para transferencias entre pares y almacenamiento de valor.

El protocolo Ordinals, que se lanzó oficialmente el 14 de diciembre de 2022, lo cambió todo: coloca los metadatos que los usuarios necesitan almacenar en la cadena en la entrada de la transacción e implementa un conjunto de programas basados ​​en la teoría ordinal [^1] para rastrear y registre estas "Inscripciones". Lo que logra este "grabado" es registrar metadatos estáticos, en lugar de programas en cadena ejecutables dinámicamente como los contratos inteligentes de Ethereum. Esto también hace que la "inscripción" se convierta naturalmente en un NFT en Bitcoin. Con base en la teoría ordinal, las personas también pueden construir transacciones para realizar la transferencia y la transacción entre estas inscripciones.

Posteriormente, el 6 de marzo de 2023, se propuso el protocolo BRC-20 basado en Ordinales, que sirvió para implementar tokens fungibles en Bitcoin, correspondiente al protocolo ERC-20 en Ethereum. El protocolo basado en Ordinals es muy simple. El proceso de acuñación y transferencia del token está escrito en la inscripción en formato Json. La metáfora más vívida es una hoja de papel con registros de transferencia escritos y la contabilidad se deja al tercero. Lo harán las agencias tripartitas.

Un protocolo BRC-20 de este tipo tiene una estética violenta y también es un compromiso bajo varios factores. Tokens homogéneos como monedas de colores han aparecido antes en Bitcoin. Esto no puede probar que BRC-20 sea una aplicación fallida, pero también parece indicar que puede no ser un acuerdo a largo plazo. En este punto, entramos en el tema de este artículo, Taproot Assets basado en Lightning Network.

2. Red relámpago

Lightning Network es una solución de Capa 2 construida sobre Bitcoin. Su propósito es ayudar a los usuarios a ahorrar costos y mejorar la eficiencia en escenarios de pago de Bitcoin. La idea en la que se basa Lightning Network también es muy simple: crear un fondo común. Dicho fondo común también se denomina canal de micropagos para ambas partes de la transacción. Más específicamente, involucra dos conceptos centrales:

* Contrato de vencimiento de secuencia revocable (RSMC): foto de grupo revocable cuando la secuencia expira * Contrato de bloqueo de tiempo hash (HTLC): contrato de bloqueo de tiempo hash

RSMC supone que existe un canal de micropagos entre las dos partes. Ambas partes primero depositan una parte de los fondos en este canal. En el caso inicial, el plan de asignación entre las dos partes es la cantidad depositada previamente. Cada vez que ocurre una transacción, ambas partes deben confirmar los resultados de distribución generados después de la transacción y al mismo tiempo invalidar el plan de distribución original. Este proceso involucra muchos conceptos y es bastante inteligente. Para obtener más detalles, consulte [Un análisis de Lightning Network (Primera parte)][^14], y su función en Lightning Network es construir el pasillo de pagos entre las dos partes. .

HTLC es un bloqueo hash con eventos, que requiere que una determinada parte envíe la imagen original $m$ de un determinado valor hash $h=H(m)$ dentro de un cierto período de tiempo para obtener el derecho a usar un determinado UTxO. Se utiliza para crear enrutamiento de pagos en Lightning Network. Para conocer el proceso de implementación específico, consulte [Red Lightning en profundidad, parte 2: HTLC y enrutamiento de pagos][^15].

Lightning Network integra estos dos mecanismos, lo que permite que las transacciones se completen fuera de la cadena entre dos nodos cualesquiera en Lightning Network.

3. Actualización de raíz primaria

Taproot es una compilación de tres propuestas de mejora de Bitcoin (BIP) [BIP-0340 (firma Schnorr)], [BIP-0341 (Taproot)] y [BIP-0342 (TapScript)], y también es la forma en que los activos de Taro pueden base para su implementación. A continuación se explica el MAST involucrado en la implementación de los activos de Taro:

MÁSTIL

El árbol de sintaxis abstracta merklizada (MAST) [^7][^8][^9] se introdujo en BIP-0341, cuyo propósito es ocultar las condiciones de gasto de UTxO y reducir el tamaño de la información. Esto es parte de la actualización de Taproot. La actualización de Taproot combina el P2SH (Pay-to-Script-Hash) original y el P2PKH (Pay-to-Public-Key-Hash), de modo que se puede generar una suma directamente a través de la clave privada. Para utilizarlo, también puede proporcionar guiones y pruebas de Merkel para la salida del gasto.

MAST combina árboles semánticos abstractos y árboles Merkle. Los árboles Merkle son una estructura de datos común en blockchains y no se describirán en detalle aquí. El árbol de sintaxis abstracta (AST) es un método para dividir un programa en pequeñas partes independientes para describir el programa. Esto hará que el programa sea más fácil de analizar y optimizar. Para obtener más detalles, consulte [árbol de sintaxis abstracta] (https://. en wikipedia.org/wiki/Abstract_syntax_tree). MAST combina la idea de AST para dividir el programa en varios bloques pequeños, luego aplica un hash a cada bloque pequeño del programa y utiliza la idea del árbol hash de Merkle para construir estos resultados de hash en un árbol de Merkle.

Considere un script de este tipo[^9]: Alice quiere poder gastar su Bitcoin en cualquier momento, pero si no lo gasta durante tres meses consecutivos, entonces sus hermanos Bob y Charlie pueden gastar el UTxO. El script se implementa como. sigue

OP_IF    OP_CheckSig OP_ELSE     "3 meses" OP_CSV OP_DROP     2 2 OP_CHECKMULTISIG OP_ENDIF

Bajo P2SH, dicho script debe estar completamente expuesto en la transacción al gastarlo. Alice debe proporcionar el script y las claves públicas de Bob y Charlie que contiene al gastar el UTxO.

Después de tener MAST, divida las dos condiciones del script para obtener un MAST simple

En este momento, Alice solo necesita elegir proporcionar su script de verificación de clave pública y Hash2 como prueba de Merkel al gastar, sin exponer el script específico bajo Hash 2. Esta parte de la información no se cargará en la cadena. Esto también reduce aún más la sobrecarga de transacciones similares. Es natural que proporcionar un script completo siempre requiera menos datos que proporcionar un hash del script. Esta estructura también brinda la posibilidad de implementar contratos inteligentes. De esta manera, al igual que el código de bytes en el EVM, la función a llamar se puede seleccionar en función de los primeros 4 bytes de los datos de entrada antes de ejecutarse. La diferencia es que dicha llamada de script requiere que el usuario proporcione un script específico y un certificado de Merkel para demostrar que el script es legítimo.

4. Principales activos raíz

Taproot Assets (Taproot Assets, posteriormente denominado Taro) [^2][^3][^5] es un protocolo que aún se encuentra en la etapa de propuesta y puede realizar la emisión de activos en Bitcoin. a través de la cadena las transacciones se transfieren a través de la red Bitcoin (las transacciones y transferencias de NFT han sido implementadas por Ordinals). En particular, los activos homogéneos de Taro se pueden transferir en Lightning Network con tarifas más bajas y más privacidad después de ser depositados en Lightning Channel. De manera similar, existe el protocolo RGB que intenta ejecutar contratos inteligentes en Lightning Network [^ 4].

Taro puede circular en la red principal de Bitcoin o en la Lightning Network de segunda capa. Primero considere la situación en la red Bitcoin. Taro es un **formulario de metadatos hash** adjunto a la transacción. El propósito del uso de hash es reducir el espacio ocupado por la transacción y ahorrar tarifas de manejo. Esta **forma de metadatos hash** es el núcleo de Taro. Dicho valor hash puede incluso representar millones de transacciones reales. Su principio se presentará más adelante.

El segundo es la situación de Taro en Lightning Network. El uso de Lightning Network permite que los activos homogeneizados de Taro alcancen velocidades de transacción más rápidas, lo cual es similar a usar Lightning Network para transferir Bitcoin más rápido y a menor costo. En la propuesta de Taro, no es necesario cambiar la Lightning Network en sí para implementar una transacción de un determinado activo de Taro, solo el primer canal y el último canal de toda la ruta de pago deben poder identificar el activo de Taro. y los canales de ruta intermedia son métodos de transferencia normales de Lightning Network. Transfieren Bitcoins equivalentes, lo que también da como resultado que los activos de Taro generalmente se intercambien con otros activos en el borde de la red.

protocolo taro

Ahora que entendemos los beneficios que puede aportar el Taro, lo siguiente que debemos introducir es: ¿qué es? ¿Y cómo lograrlo? Así como debe comprender que BRC-20 es una pila de papel que requiere que una agencia externa registre los registros de transferencia, ERC-20 es una cadena de información de saldo registrada y mantenida mediante contratos inteligentes. ¿Cómo realiza Taro la emisión y transferencia de activos?

árbol de activos

El árbol de activos es una estructura de árbol Merkle de dos niveles en Taro, que se utiliza para representar los activos de Taro. El primer nivel es un árbol Merkle compuesto por información de Taro como nodos hoja, mientras que el segundo nivel es un árbol compuesto por MS-SMT que representa los activos que posee cada cuenta. La idea de MS-SMT es relativamente simple. El árbol hash de Merkle forma una estructura de árbol basada en hash. Cada nodo también almacena la suma de los nodos secundarios izquierdo y derecho (la operación hash en sí también es un tipo de suma). Dichos árboles de activos y árboles MS-SMT se utilizan para construir. UTxO de Taro.

Asset Leaf (Aseet Leaft) es la estructura de nivel más bajo en el árbol de activos. Aparece como un nodo azul claro en el diagrama del árbol de activos. Utiliza activeScriptKey (assetScriptKey se puede comparar con el valor hash del script de transacción en transacciones P2SH). como la clave. Cada hoja de activo representa una UTxO de un activo de Taro. Las opciones contenidas en la hoja de activo se pueden encontrar en [Comprensión del protocolo de activos Taproot].

MS-SMT

Merkle Sum Sparse Merkle Tree [^11] es una estructura de datos definida en [bip-tap-ms-smt]. Es una versión mejorada del árbol disperso de Merkle y actualmente es una de las propuestas de bips que siguen sin aceptarse. Dado que la clave tiene una longitud de 256 bits, dicho MS-SMT tiene $2^{256}$ nodos hoja, la mayoría de los cuales están vacíos, por lo que es un árbol Merkle disperso.

Cada hoja contiene una cantidad y cada rama compromete el total de la hoja hacia arriba, de modo que la suma contenida en la rama se puede conocer sin conocer el contenido de cada subárbol. Al igual que un árbol Merkle normal, un árbol podado que contenga hojas puede proporcionar una prueba de membresía (un concepto en acumuladores criptográficos, que es una "prueba" utilizada para demostrar que un elemento está en un conjunto medio). MS-SMT también admite la prueba de inexistencia de miembros (que se implementa indicando explícitamente que la hoja de una clave inexistente es Ninguna), es decir, demostrando que dicha clave es Ninguna en el árbol para demostrar que no existe. Esta estructura puede ser eficiente. Verifique si hay cambios en los valores y distribuciones almacenados en el árbol.

La siguiente imagen es un árbol de suma Merkle y la estructura después de enviar cambios. El árbol disperso de suma Merkle combina las características de los árboles dispersos. Construye nodos de elementos vacíos y solo almacena información significativa. Los nodos vacíos utilizan Ninguno.

Emisión de activos de Taro

La emisión de activos de Taro requiere un identificador Así como el contrato inteligente de tokens ERC-20 tendrá una dirección, el protocolo Taro define cómo se genera el identificador: ID=SHA256(genesisPoint||assetTag||assetMeta) que acuñará el. activo La información de salida de la transacción utilizada, la etiqueta del activo (como un hash del nombre del activo) y los metadatos del activo (imagen, enlace o documento) se procesan para producir un identificador.

El script de transferencia de activos de Taro puede tener entradas y salidas similares a las transacciones de Bitcoin, y la transacción para crear activos no necesita incluir ninguna entrada de activos de Taro. Se puede ver que los activos de Taro siguen el modelo UTxO de Bitcoin y la emisión. de activos es emitir una Una transacción de activos de Taro no tiene entradas, sólo salidas.

La entrada y salida de Taro se implementan en función del árbol de activos. Como se mencionó anteriormente, el primer nivel del árbol de activos representa el UTxO* (este escrito continuará usándose más adelante, * indica que dicha estructura está en el activo de Taro. ¿Los activos de Taro se almacenan en documentos que no son Bitcoin)? Lo que se almacena en el MS-SMT correspondiente al ID del activo de Taro es la información de la salida del activo de Trao por parte del UTxO*.

La transacción de emisión para construir un activo de Taro es como se muestra en la siguiente figura. Toma un UTxO de Bitcoin como entrada y genera un UTxO de Bitcoin normal y el UTxO* adicional del activo de Taro A. **Tal UTxO\* aparece en forma de raíz de Merkel en Bitcoin** y aparece en forma de árbol de activos fuera de la cadena. El árbol de activos registra el ID del activo A de Taro y el MS correspondiente al activo. A.-Registros en SMT.

Transferencia de activos de Taro

Si puede comprender la creación de activos en la sección anterior, podrá comprender el proceso de transferencia de activos más rápidamente. La transferencia de activos es similar a una transacción en Bitcoin: selecciona una serie de UTxO disponibles como entrada y luego genera una serie de UTxO. En los activos de Taro, se selecciona una serie de UTxO* disponibles como entrada y se genera una serie de UTxO*.

En esta transacción, A transfiere todos sus activos Trao X a B sin dividirlos. Cuando B recibe la transacción, necesita verificar si el activo cumple con las condiciones de pago y no se genera ningún resultado redundante para confirmar la recepción del activo.

Las condiciones que deben verificarse incluyen, entre otras:

* ¿El árbol de activos creado para B contiene nuevos UTxO que cumplan con las condiciones de pago? * ¿Se ha eliminado la entrada UTxO del árbol de activos de A que se ha actualizado? * Si hay otros resultados en la transacción, ¿contienen árboles de activos adicionales?

Esta información se puede verificar mediante las pruebas de membresía/no membresía de MS-SMT y la salida de preimágenes y pruebas de Trproot. La fusión y división de activos no se describirá en detalle. Su proceso es similar al proceso de transferencia de activos, pero la salida UTxO* contiene un certificado de división o un certificado de fusión.

Universo Taro

Universe es un servicio que proporciona a los titulares de activos información y pruebas sobre los activos[^6]. Su función es similar al explorador de bloques de Bitcoin[^13], pero mostrará la información almacenada con el cliente de activos Taro de off. -Activos Taproot de cadena. El universo puede ser operado por el propio emisor del activo, o el emisor puede designar un operador. Es concebible que el universo operado por la comunidad agregue la información presentada por los tenedores de activos.

5. Conclusión

Hasta ahora, en el artículo anterior, hemos presentado brevemente la tecnología en la que se basa la implementación de activos de Taro, así como sus propios principios de implementación. En el próximo artículo, 3P Labs presentará el estado de desarrollo de los activos de Ordinals y Taro.

Ejemplos de temas[^1]: [Manual de teoría ordinal][^2]:[¿Qué es Taro en Bitcoin?][^3]:[Activos Taproot][^4]:[BREVE INTRODUCCIÓN A LOS PROTOCOLOS RGB][^5]:[Activos Taproot: un nuevo protocolo para Bitcoin y Lightning con múltiples activos][^6]:[Protocolo Taproot Assets][^7]:[Árbol de sintaxis abstracta Merklized][^8]:[Árbol de sintaxis abstracta Merklized][^9]:[¿Qué es un árbol de sintaxis abstracta Merklized (MAST) de Bitcoin?][^10]:[Comprensión del protocolo Taproot Assets][^11]:[bip-tap-ms-smt][^12]:[Reparación de la brecha de privacidad en los protocolos de prueba de responsabilidad]

[^13]:[Blockstream Explorer][^14]:[Una inmersión en Lightning Network (primera parte)]([Una inmersión en Lightning Network (primera parte)][^15]:[Lightning Network en profundidad, parte 2: HTLC y enrutamiento de pagos]