Bxid de Qubic: un identificador para integrar y comprobar transferencias

0
34
bxid

Qubic tiene una arquitectura distinta a la de la mayoría de las cadenas, lo que complica conectarlo de forma directa con infraestructura cripto existente (servicios que esperan un txid confirmado, por ejemplo). La propuesta de bxid (Balance Transfer ID) resuelve ese puente: define un hash único y final que representa que un valor se transfirió y quedó confirmado. Con un API indexado por bxid, integrar Qubic a sistemas tradicionales se vuelve mucho más sencillo.

¿Qué es exactamente el bxid?

  • Para una transferencia normal de QU, el bxid es el hash K12 de epoch + tick + srcpubkey + destpubkey + amount, usando el mismo formato de bytes que aparece en el logfile de Qubic. Este valor puede calcularse localmente antes de que la transacción entre al tick, por lo que una wallet puede mostrarlo al usuario y consultarlo en un servicio de archivo por bxid. Si, pasado el tick previsto, ese bxid no aparece en el servicio, significa que la transferencia no concretó el movimiento de saldo.
  • Para otros tipos de operaciones (p. ej., cambios de saldo en contratos inteligentes que no llevan una “transacción” explícita ni límite de pagos por tick), se propone un caso especial: calcular un bxid usando monto 0 y que el servicio devuelva como monto la suma de todos los cambios para ese destino en ese tick. Así se mantiene la unicidad del identificador por cada cambio de balance.

Cómo interpretar la presencia o ausencia de un bxid

  • Caso 1: bxid existe. Si el API lo devuelve, podemos rastrear el txid incluido en el tick y validarlo criptográficamente por los métodos habituales.
  • Caso 2: el txid está en el tick, pero el bxid no existe. Aquí la validación requiere trabajo extra: se valida la entity info, se suma el neto de bxid de la época para esa dirección (positivos como destino y negativos como origen) y se compara contra el balance obtenido criptográficamente desde datos de entidad y el spectrum de inicio de época. Si ambos coinciden, llegamos al mismo balance por la ruta de bxid.

Nota: el procesado de logs no es en tiempo real. El servicio debe publicar el último tick procesado; la ausencia de un bxid solo puede tomarse como evidencia de fallo cuando ya se procesó el tick objetivo.

Implementación de un servicio de archivo por bxid

  • Hay un proof-of-concept disponible que crea bxid a partir de detalles de transacción y genera JSON desde los logfiles. Cualquier fullnode que produzca logfiles puede alimentar este servicio.
  • El ejemplo usa OpenSearch (instalable vía Charmhub) para indexar y exponer un REST API consultable por cualquier campo: bxid, fuente, destino, tick o epoch (consultas vía curl).

¿Por qué importa?

Con bxid, Qubic ofrece una prueba inmediata y única por cada cambio de saldo, sin necesidad de bloques tradicionales. Esto facilita integraciones (exchanges, exploradores, pasarelas) y aporta una capa clara de verificación criptográfica tanto cuando la transferencia aparece como cuando no lo hace, manteniendo la auditabilidad extremo a extremo.