Arquitectura del Protocolo

Una mirada profunda al modelo de seguridad de Parallax: firmas para la autoría, PVM para la semántica, Proof-of-Work para el tiempo y consenso Nakamoto para la historia canónica.

Cómo encajan las piezas
Parallax entreteje criptografía, ejecución determinista, sincronización temporal por proof-of-work y una elección de fork neutral en un único pipeline verificable.
Criptografía

ECDSA decide quién puede actuar (autoría válida).

Ejecución (PVM)

Define qué hacen las acciones (transiciones de estado).

Servidor de Timestamp

Establece cuándo ocurren las acciones (ordenadas por PoW).

Nakamoto

Selecciona qué historia prevalece (cadena más pesada).

Firmas Digitales
Quién puede actuar: ECDSA sobre secp256k1 autentica las transiciones de estado.
  • ECDSA sobre secp256k1 idéntico al de Bitcoin, para seguridad y herramientas ya probadas.
  • Las transacciones incluyen (r, s, v); el emisor se recupera vía clave pública → derivación de dirección.
  • La validación se ejecuta en el pipeline de ejecución, garantizando reglas uniformes en todos los nodos.
  • No repudio: las firmas vinculan intenciones a claves; protección contra replay vía chain id y nonce.
Verificación de firma (conceptual)
pseudocódigo
// Pseudocode: PVM-side validation sketch
verify(tx):
  msg = keccak256(encodeTxForSig(tx))
  pub = ecrecover(msg, tx.v, tx.r, tx.s)
  require(address(pub) == tx.from)
  require(tx.nonce == account.nonce)
  // gas accounting & state updates proceed
Scripting Turing-Completo (PVM)
Qué significan las acciones: ejecución determinista compatible con EVM bajo reglas monetarias al estilo Bitcoin.
  • Paridad de opcodes con la EVM (CALL/SSTORE/etc.), ejecución determinista medida por gas.
  • Estado almacenado en Merkle Patricia Trie; la cabecera del bloque se compromete a stateRoot y receiptsRoot.
  • Programabilidad dentro de la escasez: cap de 21M, halving ⇒ la ejecución hereda dinero duro.
  • Facilidad para clientes ligeros mediante pruebas de inclusión y replay determinista de bloques.
Bloque → Ejecución → Raíces
pseudocódigo
// Conceptual block processing
for (tx of block.txs):
  result = PVM.execute(tx, state)
commit:
  stateRoot    = MPT(state)
  receiptsRoot = MPT(receipts)
  header.stateRoot = stateRoot
  header.receiptsRoot = receiptsRoot
Servidor de Timestamp
Cuándo ocurren las acciones: el PoW convierte el tiempo en un recurso criptográfico y ordena los eventos.
  • Cada bloque se compromete al hash de la cabecera anterior ⇒ cadena temporal verificable.
  • Proof-of-Work (XHash) vincula coste a tiempo; el recómputo impone la flecha del tiempo.
  • Ordenamiento objetivo sin relojes de confianza; el median-time-past evita abusos de timestamp.
  • La seguridad crece con la dificultad acumulada; el backdating se vuelve económicamente inviable.
Encadenado de cabeceras
pseudocódigo
// Block header sketch
header = {
  parentHash,
  stateRoot,
  txRoot,
  time,
  nonce,
  difficulty,
  mixHash,      // XHash result
}
assert(block.parent.hash == parentHash)
assert(XHash(header) < target(difficulty))
Consenso Nakamoto
Qué historia prevalece: la cadena válida más pesada por trabajo acumulado es canónica.
  • La regla de la cadena más pesada selecciona la historia canónica mediante PoW acumulado (suma de dificultad).
  • Finalidad probabilística: el riesgo de reorg decae exponencialmente con la profundidad (k confirmaciones).
  • El reajuste de dificultad (XHash) apunta a bloques de ~10 minutos usando median-time-past.
  • Económicamente neutral: sin staking ni validadores privilegiados — solo PoW abierto.
Elección de fork (conceptual)
pseudocódigo
// Choose chain with max cumulative work
best = argmax(chains, sum(block.work for block in chain))
Pipeline

Flujo de extremo a extremo

Una transacción firmada entra en la mempool → el minero propone un bloque → la PVM ejecuta de forma determinista → la cabecera se compromete a estado/recibos → XHash demuestra el trabajo → la red adopta la cadena válida más pesada. La escasez (21M, halvings) sustenta toda la ejecución.

1
Firmar
2
Ejecutar
3
Comprometer
4
Demostrar
5
Seleccionar