> For the complete documentation index, see [llms.txt](https://docs.rome.builders/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rome.builders/es/canton-zk-evm/trust-model.md).

# Modelo de confianza y límites

Las comprobaciones, autoridades, supuestos de custodia y límites de la versión temprana de Ostia.

Ostia es una versión temprana en una red de prueba local. Tiene un constructor, un operador y un confirmador. El código y ZisK 1.3.1-alpha no han sido auditados. tROME es una moneda de prueba sin valor. No use esta versión para nada de valor.

Esta página describe commit `a84e84e439a5cc669c0ae61facf7c8c995d9d564`. Lea el texto completo [diseño](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/docs/DESIGN.md) y [política de seguridad](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/SECURITY.md).

## Quién comprueba qué

| Parte               | Comprobación o autoridad                                                                                                                                                                                    |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Invitado            | Valida el bloque de la EVM y rechaza una configuración de la cadena distinta de las reglas compiladas de Ostia.                                                                                             |
| Sidecar `verificar` | Comprueba la prueba, programVK fijado y rootC, el hash del bloque probado, la cabecera y la lista de transacciones.                                                                                         |
| Sidecar `tramos`    | Comprueba las pruebas de cuenta y almacenamiento de la gateway y compara los tramos adjuntos ordenados con el hash de la gateway probado.                                                                   |
| Daml `Avanzar`      | Comprueba las respuestas del sidecar, el padre, el siguiente número de bloque, el límite de gas y los contratos usados por los tramos. Liquida los tramos y crea el siguiente head y el registro de bloque. |
| Canton              | Ordena los bloques mediante el consumo del único contrato de estado de la cadena y confirma conjuntamente los cambios de la transacción. Rechaza respuestas distintas de la llamada externa.                |
| Constructor         | Selecciona transacciones, comprueba los contratos de Canton que puede ver, obtiene una prueba y envía el bloque. No puede finalizar un bloque por sí mismo.                                                 |

Un sidecar se ejecuta junto a cada participante confirmador, incluido el participante del operador. Cada sidecar calcula sus respuestas únicamente a partir de la entrada enviada en la llamada externa. Daml compara sus respuestas; no realiza por sí mismo la comprobación criptográfica de la prueba. El [README del sidecar](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/sidecar/README.md) y [README de Daml](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/daml/README.md) proporcionan los requisitos de comprobación y autoridad.

## Qué fija la prueba

La clave de programa fijada identifica al invitado y sus reglas de cadena. La prueba queda vinculada a un hash de bloque. Comprobar su cabecera vincula la raíz de estado y la raíz de transacciones. Después, las pruebas de cuenta y almacenamiento vinculan el hash del tramo registrado de la gateway con esa raíz de estado.

Los tramos adjuntos deben tener los mismos campos y el mismo orden que los que registró la gateway. Eliminar un tramo, añadir uno o cambiar un destinatario, importe, token o id hace fallar la comparación de hashes. Un bloque sin tramos también debe probar esa ausencia. La comparación de tramos también se basa en la resistencia a colisiones de Keccak-256.

La raíz de estado de génesis del registro de la cadena fija el código de la gateway. El contrato de la gateway no tiene propietario, clave de administrador, actualización ni pausa. La parte de Canton sigue teniendo autoridad de custodia sobre los tokens que posee.

## Autoridad del operador, del confirmador y de la gateway

El operador y la gateway proponen el génesis de la cadena, los pins, el límite de gas y el builder. El confirmador acepta la propuesta. Se espera que compare los pins y el código de génesis de la gateway con su propia compilación. Los scripts locales proporcionados proponen valores coincidentes y aceptan inmediatamente la propuesta en nombre del confirmador.

El operador, el confirmador y la gateway firman `ZkChain`. Son la raíz de confianza de la cadena. Las decisiones de liquidación de depósitos y retiros requieren los tres. La liquidación de pagos requiere al operador y al confirmador. `Avanzar` proporciona su autoridad conjunta según el diseño de Daml. El constructor por sí solo no puede ejercer las opciones de liquidación.

La parte de la gateway mantiene los tokens de Canton que respaldan los tokens envueltos en la EVM. Está alojada en el participante del operador. Quienquiera que ejecute ese participante puede mover los tokens bloqueados fuera de las reglas de retiro. La ausencia de una clave de administrador en el contrato de la gateway no limita la capacidad de esa parte de Canton para actuar a través de su participante.

El registro de tokens es otra decisión de confianza. El operador y la gateway proponen el mapeo de un instrumento de Canton a un token envuelto de la EVM, y el confirmador lo acepta. La gateway ejecuta el código de transferencia Daml del token registrado con su propia autoridad. El [README de la red](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/network/README.md#the-canton-network) describe el alojamiento del participante y las comprobaciones de registro.

## Qué puede detener un bloque

Para incluir un tramo, el constructor necesita acceso de lectura a sus solicitudes, términos, aceptaciones, asignaciones, registros de tokens y tenencias de la gateway. Omite una transacción cuyos contratos de Canton no puede ver.

Una asignación puede retirarse después de que el constructor la compruebe o después de la prueba. Un registro de tokens también puede rechazar la liquidación según sus propias reglas. Entonces Canton rechaza el bloque y no se confirma nada. Para un rechazo del registro que el constructor no pudo prever, la siguiente ejecución necesita `--exclude`; el constructor no recuerda ese rechazo entre ejecuciones.

Cada ejecución del constructor maneja un bloque; no recorre bloques sucesivos. El constructor no limita los pasos de ejecución antes de generar la prueba. Si el demostrador no puede terminar un bloque, la ejecución del constructor se detiene. El [README del builder](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/builder/README.md#not-here) registra estos límites.

## Lo que esta versión no proporciona

La red local no conserva estado entre ejecuciones. No tiene autenticación de la API de Ledger ni TLS y está pensada para una sola máquina. La red usa instantáneas de Canton 3.6 fijadas y un compilador Daml de instantánea para la llamada externa. Sus versiones y hashes están en [PINS](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/PINS).

Varios constructores, la inclusión forzada, el despliegue público de Canton, la privacidad y la custodia que requieran más que el participante del operador quedan fuera de esta versión. No hay objetivos de rendimiento ni de tiempo de bloque. La demostración grabada usó la misma implementación de sidecar en ambos participantes confirmadores, en la misma máquina que Canton.

El lector puede volver a comprobar las pruebas de bloque, pero `Registro de bloque` no contiene los tramos liquidados. El botón Verify del navegador comprueba la prueba, la cabecera y las transacciones; no repite las comprobaciones de liquidación de tramos de Canton.

## Reporte un problema de seguridad

Use el reporte privado de vulnerabilidades de GitHub para `canton-zk-evm`: abra la pestaña Security del repositorio y elija **Reportar una vulnerabilidad**. No abra un issue público por un problema de seguridad.

Incluya el componente afectado, el commit, los pasos para reproducir y el resultado observado. Adjunte la prueba o el bloque si forma parte del hallazgo. El [política de seguridad](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/SECURITY.md) define el alcance. No hay programa de recompensas por fallos.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.rome.builders/es/canton-zk-evm/trust-model.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
