Skip to main content

FAQ - Preguntas Frecuentes

Preguntas frecuentes sobre desarrollo de smart contracts en ISBE.

General sobre Contratos

¿Qué tecnología usan los smart contracts en ISBE?

ISBE utiliza Solidity sobre una red Hyperledger Besu (compatible EVM). Los contratos siguen el patrón Diamond (EIP-2535) para modularidad y actualizabilidad.

¿Necesito conocimientos previos de blockchain?

Sí, debes tener conocimientos de:

  • Solidity (desarrollo de contratos)
  • Patrones de seguridad en smart contracts
  • OpenZeppelin (controles estándar)
  • Tests unitarios (Hardhat/Foundry)

Plantillas

¿Cuándo debo usar una plantilla?

Usa una plantilla cuando tu caso de uso se ajusta a alguna de las plantillas disponibles (ERC20, ERC721, ERC3643, AssetEventTracker, HashTimestamp). Las plantillas están pre-certificadas y listas para configurar y desplegar.

¿Puedo modificar una plantilla?

No. Si necesitas funcionalidad que no existe en las plantillas, debes desarrollar un contrato custom que pase por el proceso de conformidad completo.

Desarrollo Custom

¿Cuánto tiempo tarda el proceso de conformidad?

El tiempo depende de la complejidad del contrato, la completitud de la documentación y los resultados de los controles técnicos. El proceso es manual en su versión inicial.

¿Qué nivel de conformidad necesito?

  • Nivel C: Suficiente para la mayoría de casos de uso
  • Nivel B: Recomendado para casos con lógica compleja
  • Nivel A: Obligatorio para instrumentos financieros regulados

¿Puedo usar librerías externas como OpenZeppelin?

Sí, pero debes incluir las dependencias completas en tu entrega para garantizar build reproducible.

Técnico

¿Tengo que implementar el patrón Diamond?

No. Entrega tu contrato con storage estándar. ISBE se encarga de la adaptación a Diamond.

¿Cómo gestiono los roles de mi contrato?

Los roles iniciales se configuran en el despliegue. Las actualizaciones posteriores se realizan mediante AccessControlFacet.

¿Qué pasa si encuentro un bug después del despliegue?

Debes seguir el proceso de gestión de cambios: documentar el bug, proponer la solución, y pasar nuevamente por conformidad para la versión actualizada.

Identidad (DIDs)

¿Qué es un DID en el contexto de smart contracts?

Un DID (Decentralized Identifier) es la identidad descentralizada que permite que contratos validen la identidad de organizaciones o usuarios sin depender de autoridades centralizadas.

¿Puedo asignar roles a un DID en lugar de a direcciones individuales?

Sí, puedes usar grantDidRole(bytes32 role, bytes32 didHash) para asignar roles a un DID. Esto permite que todas las direcciones controladas por ese DID tengan el rol, facilitando la rotación de claves y gestión multi-wallet.

¿Qué ventajas tiene usar roles basados en DID?

  • Rotación de claves: Cambiar la wallet sin reasignar roles
  • Multi-wallet: Múltiples direcciones operan bajo la misma identidad corporativa
  • Resiliencia: Soporte para diferentes curvas criptográficas (secp256k1/secp256r1)
  • Gestión simplificada: Un solo DID representa a toda una organización

¿Cómo obtengo el DID de una dirección?

Los contratos con AccessControlDid automáticamente resuelven DIDs consultando el DidRegistry. No necesitas hacerlo manualmente en tu lógica de negocio.

Soporte

¿Dónde puedo obtener ayuda técnica sobre contratos?

Contacta con el equipo de ISBE para soporte específico sobre desarrollo de smart contracts.

¿Hay ejemplos de contratos disponibles?

Consulta la documentación de plantillas y el ejemplo completo en la sección de Contratos Custom.


¿No encuentras tu pregunta? Contacta con el equipo de ISBE.