Firma operativa: BitGo Express, firmantes externos y co-firmantes
Qué componente nuestro toca una llave cuando el sistema firma solo: BitGo Express, firmante externo, Advanced Wallets y el API Co-Signer de Fireblocks.
Tema
Artículos, guías y notas de laboratorio relacionados con Consensus.
Artículos
135
Índice
Topic
Qué componente nuestro toca una llave cuando el sistema firma solo: BitGo Express, firmante externo, Advanced Wallets y el API Co-Signer de Fireblocks.
Wallet ómnibus en la cadena y libro interno fuera de ella: atribución de depósitos, barrido y gas, acreditación tras finalidad y conciliación diaria por proveedor.
Quién es la contraparte, dónde están los fondos y cuándo es final la liquidación al operar con BitGo Global Markets y Go Network, con límites y conciliación.
Qué es Substrate dentro del Polkadot SDK, cómo se reparten FRAME, Cumulus y XCM, y cómo ubicar un crate por su prefijo sc-, sp- o pallet-.
Estado N más bloque N da estado N+1: qué significa que el runtime de Substrate sea la función de transición de estado y qué queda para el nodo.
Dónde vive el runtime de Substrate (la clave :code del estado) y cómo conversa con el nodo: host functions de sp_io y runtime APIs de sp_api.
Cómo FRAME arma un runtime de Substrate con pallets: Config, storage, llamadas, eventos y errores unidos con construct_runtime, y en qué difiere de un contrato.
Tres caminos para levantar una cadena Substrate local: polkadot-omni-node con chain spec, un template o el nodo kitchensink, y qué guarda el génesis.
Qué entra a un bloque Substrate desde fuera del runtime, cómo se codifica un extrinsic versión 5 y qué comprueban las transaction extensions antes de ejecutarlo.
Cómo guarda Substrate el estado como bytes opacos, cómo FRAME arma las claves y cómo el trie radix-16 permite probar un valor con unos pocos nodos.
Por qué Substrate no mide gas instrucción por instrucción, qué son ref_time y proof_size, cómo se escribe un benchmark del peor caso y cómo se calcula la comisión.
Cómo una cadena Substrate cambia su lógica escribiendo un Wasm nuevo en :code, qué comprueba set_code, por qué hay que subir spec_version y cómo se prueban las migraciones.
Qué es un offchain worker en Substrate, por qué puede llamar a una API HTTP sin romper el determinismo y por qué su única vía para cambiar el estado es enviar un extrinsic.
Cómo Substrate divide el tiempo en slots, por qué Aura asigna cada slot a A[s mod |A|] y qué falta para que esos bloques sean definitivos.
Cómo BABE sortea cada slot con una VRF secreta, por qué a veces ganan dos o nadie, y qué hacen las épocas, los slots secundarios y el fork choice.
Cómo GRANDPA finaliza prefijos de cadena con prevotes, precommits y 2/3-GHOST, por qué tolera f < n/3 y qué pasa cuando la finalidad se detiene.
Cómo un nodo nuevo llega al estado actual de una cadena Substrate sin confiar en un peer: full, fast y warp sync, justificaciones GRANDPA y light clients.
Qué cambia cuando una cadena Substrate deja de finalizarse sola: collators, PoV, función de validación, respaldo e inclusión en la relay chain y proof_size.
Qué es XCM en el Polkadot SDK: programas que ejecuta la XCVM, ubicaciones relativas, reserva frente a teletransporte y la confianza que fija el executor.
Cómo Sassafras busca un bloque por slot sin revelar al productor: tickets con ring VRF, repetidores y orden outside-in. Estado real en el Polkadot SDK: experimental.
Por qué GRANDPA es caro de verificar en Ethereum y cómo BEEFY firma compromisos ECDSA sobre una raíz MMR, con muestreo aleatorio en el light client del puente.
El recorrido de un bloque por el nodo, leído en el código del Polkadot SDK: import queue, BlockImport, fork choice, justificaciones, finalidad y autoría.
Guía de ingeniería, desde el código del Polkadot SDK, para reemplazar GRANDPA o la producción por un protocolo BFT estilo HotStuff: QC como justificación, sync y pruebas.
Direcciones, nonce, comisiones y la diferencia entre confirmación y finalidad: lo que todo el equipo debe saber antes de acreditar un depósito o firmar un retiro.
Dónde vive la llave privada y quién puede usarla: HSM frente a fragmentos MPC, derivación BIP-32/39/44, riesgo de la xpub, respaldo, recuperación y rotación.
Multifirma on-chain tipo Safe frente a firma por umbral MPC/TSS: soporte de redes, visibilidad en la cadena, costo y dónde se aplica la política de aprobación.
Cómo dimensionar saldos por temperatura, cuándo barrer y reponer entre wallets y qué aprobaciones pedir según el monto, con Fireblocks, BitGo y Kaleido.
Autocustodia, custodia de terceros o modelo mixto; cuentas segregadas u ómnibus; y un gobierno de aprobaciones con separación de funciones y matriz RACI.
KYC frente a KYT, screening de direcciones antes y después de mover fondos, puntuación de riesgo, flujo de alertas y regla de viaje, comparados por proveedor.
Qué es USDC, quién lo emite y cómo Circle Mint convierte dólares en USDC y de vuelta, con las redes soportadas y los controles en cada salto.
Qué es USDT, cómo se emite y redime con Tether, qué publica sobre reservas y por qué la red de cada depósito es el control principal al operarlo.
Mapa de capacidades a proveedores, límites de integración, webhooks al menos una vez verificados en la cadena y conciliación, con cada mapeo citado o a validar.
Cómo Narwhal divide cada validador en un primary que certifica headers con digests y varios workers que difunden batches, y por qué eso escala el mempool.
Cómo medir protocolos BFT con curvas throughput-latencia, rodilla de saturación, líder caído y particiones, sin confundir rendimiento con safety.
Qué significa tratar a un agente LLM que falla o miente como réplica bizantina: votos, quórums, verificación y lo que afirman dos preprints de 2025.
Qué cuesta el consenso bizantino en dispositivos IoT y qué propone EBRC: comité elegido por reputación y VRF, votación en dos fases y una evaluación limitada.
Consorcio permisionado o red abierta: quién certifica identidades, quién ordena, por qué abrir la membresía exige un costo y qué aporta execute-order-validate.
Cómo Bullshark ordena el DAG de Narwhal con anclas predefinidas, confirma con f+1 votos en la ronda siguiente y por qué sus timeouts sufren con anclas lentas.
Cómo Casper FFG finaliza checkpoints con enlaces de supermayoría, por qué sus dos reglas de slashing dan accountable safety y cómo Gasper lo une a LMD GHOST.
Por qué el slashing convierte un ataque a la safety de Casper FFG en un hecho demostrable y costoso, apoyado en la misma intersección de quórums que PBFT.
Qué es GST en el modelo DLS de 1988: safety en toda ejecución, liveness tras la estabilización y las dos variantes, con Δ desconocida o válida tras GST.
Cuánto pesa un QC con firmas individuales frente a una firma BLS agregada o de umbral, y por qué los emparejamientos encarecen la verificación en consenso BFT.
Por qué los QC de un consenso BFT dependen de firmas, qué cambia al votar con ML-DSA (FIPS 204) y por qué ML-KEM (FIPS 203) protege canales, no votos.
Por qué el líder de PBFT o HotStuff satura su enlace de subida al reenviar el payload completo, y cómo Narwhal separa la difusión de datos del orden total.
Por qué un saldo digital se puede gastar dos veces si las réplicas no acuerdan un único orden de transacciones, y cómo los quórums 2f+1 lo impiden.
Cómo varias réplicas validan transacciones sin un servidor central: mismo estado inicial, mismo orden y ejecución determinista, la intuición de SMR.
Mensajes orales frente a firmados: por qué las firmas eliminan la cota 3f+1 en el modelo síncrono de Lamport, pero no bajo la sincronía parcial de DLS.
Glosario de consenso BFT agrupado por temas: modelo de fallas, quórums y certificados, PBFT y HotStuff, DAG-BFT con Narwhal y Tusk, y ResilientDB.
Cómo cambiar parámetros de un protocolo con transacciones ordenadas por el propio consenso BFT: activación determinista, código en el estado y límites reales.
Cómo el DAG por rondas de Narwhal enlaza cada vértice con 2f+1 certificados previos y por qué Tusk y Bullshark derivan el orden total sin mensajes extra.
Por qué la finalidad se detiene si más de un tercio del stake no vota, cómo el inactivity leak de Ethereum la recupera y cuándo finaliza dos ramas en conflicto.
Jerarquía de fallas en DLS 1988: parada, omisión y bizantina, y por qué bajo sincronía parcial exigen n >= 2f+1 o n >= 3f+1 réplicas, con o sin firmas.
Cómo Mysticeti confirma bloques en 3 retardos de mensaje sobre un DAG sin certificar: votos implícitos, decisión directa e indirecta, fast path y Sui.
Cómo el Pacemaker de HotStuff sincroniza vistas sin tocar safety: rotación de líderes, timeouts locales y certificados de timeout de 2f+1 en DiemBFT.
Cómo PBFT (Castro y Liskov, 1999) ordena solicitudes con pre-prepare, prepare y commit, qué certifica cada quórum 2f+1 y por qué su view-change es cuadrático.
Por qué un commit de dos cadenas en HotStuff pierde safety o responsividad sin reglas extra, y cómo Fast-HotStuff, Jolteon y HotStuff-2 lo recuperan.
Por qué una réplica puede detenerse, callar o contradecirse, y por qué BFT asume fallas arbitrarias: bugs y ataques producen el mismo síntoma ante el protocolo.
Por qué un timeout fijo puede dejar sin progreso a un protocolo BFT bajo sincronía parcial y cómo el backoff y el pacemaker recuperan la liveness tras GST.
Qué garantiza un zk-SNARK, por qué una prueba Groth16 ocupa tres elementos de grupo y cómo un consenso BFT puede ordenar transacciones validadas por pruebas.
Por qué dos quórums de 2f+1 votos entre 3f+1 réplicas comparten al menos f+1 nodos y cómo esa réplica correcta común impide certificar bloques en conflicto.
Cómo cambiar el conjunto de validadores entre épocas sin detener la cadena: frontera comprometida, traspaso de quórums y pruebas para nodos nuevos.
Por qué ChonkyBFT, el consenso de ZKsync, acepta n ≥ 5f+1 réplicas en lugar de 3f+1 para confirmar con una sola ronda de votos y finalidad en un slot.
Cómo ResilientDB combina un pipeline multihilo de réplicas con GeoBFT: clústeres que ejecutan PBFT local y comparten decisiones certificadas entre regiones.
Por qué el nuevo líder de Tendermint espera la cota Δ antes de proponer y cómo la fase extra de HotStuff permite avanzar a la velocidad real de la red.
Cómo Shoal añade a Bullshark un ancla por ronda y una reputación de líderes leída del DAG para bajar la latencia y no esperar timeouts de líderes caídos.
Modelos síncrono, asíncrono y parcialmente síncrono: por qué un mensaje lento no se distingue de uno perdido y qué implica eso para FLP, DLS y HotStuff.
Un inventario de manzanas y peras muestra por qué réplicas deterministas que aplican el mismo log ordenado llegan siempre al mismo estado en SMR.
Por qué ningún consenso determinista asíncrono garantiza terminar con una sola falla por crash, qué es la bivalencia y cómo la evaden los protocolos BFT.
Tusk ordena el DAG de Narwhal sin timeouts: una moneda aleatoria compartida elige el líder de cada ola y el orden total sale del grafo sin mensajes extra.
Cómo Twins duplica réplicas con la misma identidad para emular equivocación y pérdida de estado, y genera escenarios sistemáticos que exponen bugs BFT.
Equivocación, Sybil, ataques de largo alcance y censura en BFT y proof of stake: qué rompe cada uno y cómo lo contienen quórums, firmas, stake y checkpoints.
Qué especifica TLA+ en un consenso BFT, cómo TLC y Apalache buscan contraejemplos a la safety y qué cubren frente a las pruebas tipo Twins.
Qué viaja en VIEW-CHANGE y NEW-VIEW de PBFT, por qué su costo en autenticadores crece hasta O(n^3) y cómo HotStuff lo reduce a un highQC lineal.
Cómo llega un precio a un contrato: feeds agregados de Chainlink, heartbeat y desviación, chequeos de frescura, TWAP frente a precio spot y manipulación en una transacción.
Qué delega approve, cómo convierte EIP-2612 una firma fuera de cadena en allowance, por qué revocar no anula un permit pendiente y qué revisar en custodia.
Autorización en contratos Ethereum: Ownable y Ownable2Step, roles con AccessControl, multisig con umbral y TimelockController para separar operación diaria de cambios de política.
Reentrancy paso a paso: por qué una llamada externa cede el control, cómo se drena un vault, qué enseñó The DAO y cómo defender con CEI y nonReentrant.
Unit, fuzz, invariant y fork tests en Foundry: qué evidencia da cada uno, cómo escribir handlers y ghost variables, y un bug real que solo encuentra el fuzzer.
Mapa de la serie Ethereum: por qué empezar por la historia, cómo una transacción cruza ejecución y consenso, y qué ruta elegir según tu perfil.
Qué límites del script de Bitcoin señaló el whitepaper de Ethereum y cómo los resolvió con cuentas, storage, gas y una función de transición de estado.
De Frontier a Spurious Dragon: qué cambió Homestead, cómo se drenó The DAO, qué hizo el fork del bloque 1,920,000 y por qué nació EIP-155.
Byzantium, Constantinople, Petersburg, Istanbul y Muir Glacier: qué EIPs activó cada fork, por qué se pospuso Constantinople y qué cambió para contratos.
Berlin y London paso a paso: accesos fríos y calientes, transacciones tipadas, access lists y cómo EIP-1559 divide la fee entre quema y propina.
Por qué Ethereum dejó proof-of-work: bomba de dificultad, energía, emisión y finalidad; cómo ocurrió la transición en el bloque 15,537,394 y qué no cambió.
Cómo una clave secp256k1 se convierte en dirección con Keccak-256, qué valida el checksum EIP-55 y qué cambia EIP-7702 para quien custodia claves.
Campos de una transacción tipo 2, cómo EIP-1559 reparte el gas entre quema, propina y devolución, y qué prueba realmente un receipt con status 0 o 1.
Cómo Ethereum compromete cuentas y storage en una stateRoot de 32 bytes, cómo un slot de Solidity se vuelve clave del trie y cómo verificar con eth_getProof.
Dónde vive cada dato en la EVM, cuánto dura y cuánto cuesta: stack, memory, storage, transient storage, calldata y logs, con una traza de bytecode real.
Cómo se calcula un selector de 4 bytes, cómo se codifican argumentos en palabras de 32 bytes, qué guardan topics y data de un evento y cómo leer un revert.
Cómo es una petición JSON-RPC, qué significan latest, safe y finalized, cómo fijar el bloque de una lectura y qué confianza depositas en un proveedor RPC.
Forge, Anvil y Cast paso a paso: compilar, probar con fuzzing, desplegar en una cadena local 31337 y leer storage por RPC sin gastar gas real.
Solidity leído como máquina de estado: storage, msg.sender, visibilidad, modifiers, errores, eventos, reverts atómicos y el patrón checks-effects-interactions.
Cómo asigna Solidity slots de 32 bytes: empaquetado, mappings y arrays por keccak256, strings cortos, costo de acceso y por qué el layout rompe upgrades.
La interfaz ERC-20 paso a paso: balances, approve y transferFrom, la carrera al cambiar un allowance, tokens que no devuelven bool y permisos que nunca caducan.
ERC-721 y ERC-1155 desde el estado: dueño por id, operadores, el hook onERC721Received, lotes en ERC-1155 y metadata que vive fuera del contrato.
ERC-4626 por dentro: assets y shares, deposit, mint, withdraw y redeem, redondeo a favor del vault y el ataque de inflación sobre un vault vacío.
Cómo delegatecall separa código y storage, qué fijan ERC-1967 y ERC-1822, y por qué layout, inicializadores y admin deciden si un upgrade es seguro.
Método de auditoría para un contrato Solidity: alcance, modelo de amenazas, invariantes con Foundry, hallazgos con PoC, severidad y retest.
Por qué Eth1 y Eth2 pasaron a llamarse capa de ejecución y capa de consenso, y cómo se reparten el trabajo los dos clientes de un nodo actual.
Qué es la Beacon Chain: depósitos, génesis de 2020, slots de 12 s, epochs de 32 slots, comités aleatorios y el ciclo de vida de un validador.
Cómo funcionó The Merge: Bellatrix, Paris, el bloque terminal por dificultad total, la Engine API y qué cambió para contratos y aplicaciones.
Cómo decide Ethereum: LMD-GHOST elige la cabeza con el último voto de cada validador y Casper FFG justifica y finaliza checkpoints por supermayoría.
Qué firma un validador en cada attestation, cómo se agregan las firmas BLS12-381 en subredes y qué protege una clave de firma frente al slashing.
Cómo Ethereum castiga el doble voto y el voto envolvente, cuánto cuesta un slashing y cómo el inactivity leak recupera la finalidad si falta un tercio.
Cómo Shapella habilitó retiros en abril de 2023: credenciales 0x00 y 0x01, barrido automático, objetos Withdrawal en el payload y los cambios de Pectra.
Qué es un rollup: secuenciador, lote comprimido, raíz de estado, disponibilidad de datos y la regla que obliga a L1 a aceptar solo transiciones válidas.
Cómo funciona un optimistic rollup: raíces afirmadas, ventana de impugnación, bisección hasta un paso de MIPS y retiros de OP Stack en dos fases.
Cómo un ZK rollup convierte un lote en una prueba sucinta, qué verifica el contrato en L1, cuánto cuesta el emparejamiento y qué riesgos quedan fuera.
Qué es una transacción con blobs: hash versionado, compromiso KZG, mercado de blob gas, retención de 18 días y el paso de Dencun a PeerDAS en Fusaka.
Cómo ERC-4337 crea smart accounts sin hard fork: UserOperation, bundler, EntryPoint y paymaster, con los riesgos que hereda un equipo de custodia.
EIP-7702 a fondo: tupla de autorización, indicador de delegación persistente, chain_id 0, nonces y los riesgos de delegar código desde una EOA.
Qué respalda un token puenteado: lock/mint, burn/mint, quién verifica el mensaje, el retiro canónico de un rollup y riesgos para custodia.
Qué es el MEV, cómo MEV-Boost separa a builders y proposers con relays de confianza, y qué cambia ePBS (EIP-7732) en el roadmap de Glamsterdam.
Un AMM de producto constante con números reales: invariante x·y=k, comisión, LP shares, por qué el precio spot no es un oráculo y qué pierde el LP.
Uniswap v3 con números: rangos de precio, ticks de 1.0001, liquidez L, cuánto capital ahorra un rango y por qué el LP asume más riesgo por dólar.
Cómo se presta contra colateral: health factor, close factor y bonus de liquidación en Aave V3, y por qué oráculo y liquidador sostienen la solvencia.
Cómo indexar logs de Ethereum que sobreviven reintentos, backfills y reorgs: cursor con hash, etiquetas safe y finalized, y efectos idempotentes.
Qué corre dentro de un nodo Ethereum: cliente de ejecución, cliente de consenso y Engine API, y por qué ningún cliente debería superar un tercio de la red.
Arquitectura para depósitos y retiros sobre un custodio: confirmación por finalized, reorgs, idempotencia por nonce, conciliación y respuesta a incidentes.
Cómo practicar Ethereum sin fondos reales: cadena local con Anvil, reorgs forzadas, fork de mainnet y testnets, y el paso a la ruta práctica de custodia.
Primer paso de la serie HotStuff: qué problema resuelve BFT, por qué aparece n >= 3f + 1 y cómo separar safety de liveness sin drama matemático.
Puente entre QC/highQC y Fast-HotStuff: firmas de réplicas, threshold signatures, aggregate signatures y la evidencia que transporta AggQC.
Guía para entender commits de una, dos y tres cadenas, y cómo esa taxonomía prepara QC, highQC, multipipeline y Fast-HotStuff.
Cómo la familia HotStuff se adapta a producción: DiemBFT v4, líderes fallidos, dos cadenas, reputación de líder y fallback asíncrono.
Por qué Fast-HotStuff intenta reducir latencia, cómo usa AggQC para probar highQC en cambios de vista y qué trade-offs aparecen en firmas agregadas.
Cómo Chained HotStuff convierte prepare, pre-commit, commit y decide en una línea temporal de vistas, GenericQC y commits por profundidad de cadena.
El núcleo visual de HotStuff: cómo una propuesta se convierte en QC, por qué highQC guía al líder y cuándo una cadena certificada permite comprometer un bloque.
Una separación práctica de las garantías de HotStuff: qué nunca debe pasar, cuándo vuelve a avanzar y por qué responsiveness no significa latencia cero.
Cómo HotStuff cambia de líder sin perder safety: new-view, highQC, pacemaker y la diferencia entre protocolo de consenso y mecanismo de sincronización.
Cierre de la serie HotStuff: HotStuff-2, pruebas Byzantine con Twins, Narwhal/Tusk/Bullshark y cómo leer el estado del arte sin mezclar linajes.
Por qué Narwhal no es simplemente otro consenso, cómo separa disponibilidad de datos y ordenamiento, y cómo se conecta con HotStuff/Tusk.
Qué significa GST, por qué la red no necesita ser perfecta y cómo los quórums sostienen safety mientras liveness espera mejores condiciones.
Antes de QC y highQC conviene ver cómo PBFT, Tendermint y Streamlet preparan la intuición de vistas, locks y commits sobre cadenas.
Qué cambia cuando un nodo Substrate intenta ponerse al día en una cadena con consenso HotStuff-like: headers, snapshots, warp sync y evidencia BFT.
Cómo leer Tendermint con el lente de HotStuff: prevote, precommit, LockedValue, ValidRound, proposer rotation, evidencia y slashing.