Especificaciones técnicas

Consenso

  • Prueba de Transferencia (PoX) como se describe en SIP-007arrow-up-right

  • La red hará la transición a Prueba de Quema (PoB) como se describe en SIP-001arrow-up-right después de 10 años. Obtenga más información sobre la Prueba de Quema en SIP-001arrow-up-right.

  • Modelo de amenazas

    • El 51% de la potencia minera maliciosa de Bitcoin puede reorganizar la cadena Stacks o realizar un ataque de doble gasto

    • La cadena puede detenerse si los Stackers no alcanzan un consenso del 70% sobre la validez de los bloques

  • Diferentes actores y sus roles

    • Los mineros de Stacks empaquetan transacciones en bloques y las proponen a los stackers

    • Los poseedores de Stacks pueden alterar el cálculo de los límites de bloque (sujeto a un veto del minero) y pueden votar para deshabilitar las recompensas de Prueba de Transferencia durante un ciclo de recompensas.

    • Los Stackers validan y añaden bloques a la cadena y validan las transacciones de depósito y retiro de sBTC

Minería por Prueba de Transferencia

  • Programa de recompensas coinbase:

    • 1000 STX/bloque durante los primeros 4 años

    • 500 STX/bloque durante los siguientes 4 años

    • 250 STX/bloque durante los 4 años posteriores

    • 125 STX/bloque en perpetuidad después de eso

  • Las recompensas coinbase se acumulan por "sorticiones perdidas": Si un bloque de Bitcoin no tiene sortición (en la altura N), entonces cualquier bloque de Stacks minado en una sortición posterior que se base en cualquier punta de la cadena Stacks que existiera en la sortición precedente (en la altura N-1) puede reclamar su coinbase. Esto incentiva a los mineros a seguir minando incluso si las comisiones de Bitcoin son altas.

  • Bono de minería inicial: Este es un caso especial de lo anterior para incentivar a los primeros mineros. La coinbase de todos los bloques de la cadena de quema entre la primera altura de bloque de quema (a ser elegida por mineros independientes como parte del lanzamiento de Stacks 2.0) y el primer ganador de sortición se acumula y se distribuye a los mineros durante una ventana fija (por determinar). Por ejemplo, supongamos que la altura de bloque de quema es 10.000 y la primera sortición está en el bloque 10.500 y la ventana de distribución es de 100 bloques, entonces la coinbase de los primeros 500 bloques (10.500 - 10.000) se distribuirá equitativamente a los mineros que ganen sortición durante los 100 bloques subsiguientes.

  • Ventana de maduración de la recompensa: 100 bloques, lo que significa que los líderes ganarán la recompensa coinbase 100 bloques después del bloque que minaron con éxito.

  • Intervalo de bloque: La cadena de bloques Stacks produce bloques rápidos aproximadamente cada 10 segundos con un cambio de tenencia de minero que ocurre en cada bloque de Bitcoin

  • Compromiso en BTC: Los mineros deben comprometer al menos 11.000 satoshis (5.500 sats / salida UTXOarrow-up-right); 2 salidas / bloque) para evitar "polvo."

  • Para más detalles, consulte Producción de Bloques.

Stacking

1

Fase de preparación

Se elige un "bloque ancla". El conjunto de direcciones calificadas ("conjunto de recompensas") se determina con base en la instantánea de la cadena en el bloque ancla. La duración de la fase de preparación es de 100 bloques. Los compromisos de Stacking deben confirmarse antes de que comience esta fase.

2

Fase de recompensa

Los compromisos de BTC de los mineros se distribuyen entre el conjunto de recompensas. La longitud del ciclo de recompensas es de 2000 bloques BTC (~2 semanas).

  • Dos direcciones de recompensa / bloque, para un total de 4000 direcciones por cada ciclo de recompensas. Las direcciones se eligen usando una VRF (función aleatoria verificable), por lo que cada nodo puede llegar determinísticamente a las mismas direcciones de recompensa para un bloque dado.

  • Umbral de Stacking: 0.025% de la cantidad participante de STX cuando la participación está entre 25% y 100% y cuando la participación está por debajo del 25%, el nivel umbral es siempre 0.00625 de la oferta líquida de STX.

  • Delegación: Una dirección STX puede designar a otra dirección para participar en Stacking en su nombre. Sección relevante en SIP-007arrow-up-right.

  • Agrupamiento: Los poseedores de STX que individualmente no alcanzan el umbral de Stacking pueden reunir sus tenencias para participar en Stacking. Para hacer esto, los poseedores de STX deben establecer la dirección de recompensa (opcional) como la "dirección delegada." Para más detalles, vea esta referenciaarrow-up-right.

  • Se admiten direcciones Legacy, SegWit, Native Segwit y Taproot

Cuentas y Direcciones

  • Las transacciones en la cadena de bloques Stacks se originan desde, son pagadas por y se ejecutan bajo la autoridad de cuentas

  • Una cuenta se especifica completamente por su dirección + nonce + activos

  • La dirección contiene 2 o 3 campos: 1 byte de versión, 20 bytes de hash de clave pública (RIPEMD160(SHA256(entrada))), nombre opcional (longitud variable, máximo 128 bytes)

  • Dos tipos de cuentas: las cuentas estándar son propiedad de una o más claves privadas; las cuentas de contrato se materializan cuando se instancia un contrato inteligente (especificado por el campo de nombre opcional arriba)

  • El nonce cuenta el número de veces que una cuenta ha autorizado una transacción. Comienza en 0, la autorización válida debe incluir el siguiente valor de nonce.

  • Los activos son un mapa de todos los tipos de activos -- STX, cualquier activo en cadena especificado por un contrato Clarity (por ejemplo NFTs) -- a cantidades poseídas por esa cuenta.

  • No es necesario que las cuentas se "creén" o registren explícitamente; todas las cuentas existen implícitamente y se instancian en el primer uso.

Transacciones

  • Tipos de transacción: coinbase, transferencia de token, despliegue de contrato, llamada a contrato, cambio de tenencia.

  • Solo las cuentas estándar (no los contratos) pueden pagar las tarifas de transacción.

  • La ejecución de transacciones está gobernada por:

1

Cuenta originaria

La cuenta que crea, autoriza y envía la transacción.

2

Cuenta pagadora

La cuenta que es facturada por el líder por el costo de validar y ejecutar la transacción.

3

Cuenta remitente

La cuenta que identifica quién está ejecutando actualmente la transacción: esto puede cambiar a medida que una transacción se ejecuta mediante el como-contrato función Clarity.

  • Las transacciones pueden agruparse o transmitirse en bloques. El comportamiento puede ser controlado por el modo ancla de una transacción. Con transmisión (microbloques), es posible un tiempo de confirmación más rápido.

  • Dos tipos de autorizaciones: la autorización estándar es cuando la cuenta originaria es la misma que la cuenta pagadora. Patrocinada autorización es cuando la cuenta originaria y la cuenta pagadora son distintas. Por ejemplo, desarrolladores o proveedores de servicios podrían pagar para que los usuarios llamen a sus contratos inteligentes.

  • Para la autorización patrocinada, primero un usuario firma con la cuenta originaria y luego un patrocinador firma con la cuenta pagadora.

  • Límite de mempool para transacciones pendientes concurrentes es de 25 por cuenta

  • Las transacciones pendientes en el mempool serán recolectadas como basura 256 bloques después de la recepciónarrow-up-right. Con un tiempo objetivo de bloque de 10 minutos, esto equivaldría a ~42 horas

  • Todas las transacciones que impactan el saldo de la cuenta son atómicas, una operación de transferencia no puede incrementar el saldo de una cuenta sin decrementar el de otra. Sin embargo, las transacciones que realizan múltiples acciones de cuenta (por ejemplo, transferir desde múltiples cuentas) pueden completarse parcialmente.

  • Las transacciones pueden incluir una cadena de memo (máx. 34 bytes)

¿Te fue útil?