Guía para crear un protocolo de préstamo en Kadena — Charkha por Kadena Kadena marzo, 2023

Finanzas descentralizadas (DeFi) surgió como una aplicación destacada de la tecnología blockchain a fines de 2017 y se generalizó en 2020. Las finanzas descentralizadas representan una visión de un sistema financiero que opera sin intermediarios, como bancos y otras entidades de terceros. En cambio, se basa en el poder de los contratos inteligentes para facilitar las transacciones.

DeFi aplica la transparencia y la seguridad de las tecnologías financieras distribuidas a casos de uso de finanzas tradicionales como préstamos, préstamos y comercio. En resumen, busca revolucionar la forma en que pensamos sobre las finanzas y promover un sistema financiero más accesible y democratizado.

Charkha es un protocolo de préstamo descentralizado basado en la cadena de bloques Chainweb de Kadena. El protocolo fue desarrollado por Thomas Honeyman, ingeniero sénior de Awake Security, como el proyecto final de una serie de tutoriales de Pact titulada Real World Pact.

Nos pondremos al día con Thomas hoy para una discusión profunda y atractiva sobre el protocolo de préstamos de Charkha y lo que le gusta de construir con Pact y Chainweb.

Charkha es un protocolo de préstamo descentralizado mínimo inspirado en Compound Finance, que se ejecuta en Ethereum y, a partir de marzo de 2023, tiene un valor total bloqueado de aproximadamente $ 1.5 mil millones. Charkha demuestra una mezcla de conceptos intermedios de lenguaje DeFi y Pact, así como también cómo construir una interfaz para un backend de blockchain del mundo real.

Tiene todas las características de un protocolo de préstamos del mundo real: puede pedir prestado o proporcionar fondos, ganar recompensas en el token CHRK por participar, usar sus activos de CHRK para crear y votar propuestas para cambiar el protocolo y liquidar los activos de un usuario cuando han excedido su capacidad de endeudamiento y se han vuelto riesgosos. Estos son conceptos que verá en todo el mundo DeFi.

Por el lado del desarrollo, Charkha contiene todos los componentes de un proyecto DeFi del mundo real, incluidos:

El libro blanco de Charkha que describe el protocolo en profundidad y que debe leer primero (también tiene una colección de ejemplos). Una guía de desarrollo, que explica cómo traducimos el libro blanco en implementaciones de contratos inteligentes. Una colección de contratos inteligentes comentados que implementan el protocolo y las pruebas. Una interfaz de TypeScript + React que muestra los mercados actuales y sus tasas de interés y le permite prestar y tomar prestados activos, enviar propuestas de gobierno, liquidar cuentas con garantía insuficiente y más.

También hay secuencias de comandos de ayuda para que pueda implementar Charkha en su propia versión local de Chainweb e interactuar con el protocolo: funciona completamente. Dicho esto, ¡este es solo un proyecto de enseñanza! No intente usar nada del código en el mundo real, ya que nunca ha sido auditado o probado y es solo un ejemplo.

La mayor diferencia entre Charkha y otros protocolos de préstamo es que es un proyecto de enseñanza. Eso significa que lo he mantenido simple: no hay mucho que hacer más allá de prestar, pedir prestado, retirar, pagar préstamos, obtener recompensas, crear y votar propuestas y liquidar los préstamos de los usuarios cuando han excedido su capacidad de préstamo. También está completamente comentado, incluye un libro blanco y una guía de desarrollo, y tiene muchas pruebas y algunas verificaciones formales; esto debería ayudar a los desarrolladores intermedios del Pacto a ver ejemplos concretos de cómo escribir sus propias aplicaciones DeFi.

Sin embargo, también hay otras diferencias. Charkha está construido con Pact, un lenguaje de contrato inteligente de Kadena diseñado específicamente para escribir contratos inteligentes seguros. No puede salvarlo de todos los errores, pero es mucho más difícil cometer errores comunes con Pact, especialmente con un sistema de verificación formal incorporado (que usa Charkha).

Además, Charkha se puede implementar en Chainweb, una cadena de bloques multicadena escalable con tarifas de gas súper bajas y una enorme capacidad de rendimiento. Como parte del proyecto, implementamos Charkha en devnet, que es una versión de desarrollo de Chainweb que refleja cómo funciona la cadena de bloques real.

La tecnología blockchain es fascinante, pero cuando me enteré de ella, luché por ver cómo mejoraba las tecnologías existentes, excepto por el caso de uso limitado de una moneda digital. No fue hasta que vi parte del trabajo que se estaba realizando en finanzas descentralizadas que las cosas encajaron para mí. Por supuesto, DeFi aún es incipiente y hasta ahora ha habido serios errores, pero representa una innovación significativa en la industria financiera.

Los préstamos son una actividad crítica y de alta confianza en una comunidad o economía. Tenemos todo tipo de mecanismos en la sociedad para reforzar esta confianza, desde la ley y el reglamento hasta los requisitos de garantía y la solidez de las relaciones personales. Es increíble que pueda facilitar los préstamos a través de una cadena de bloques y hacerlo de manera transparente, sin intermediarios confiables, y lo más importante, funciona. Creo que los préstamos, los préstamos, el comercio y las monedas estables juntos proporcionan un prototipo para un sistema financiero alternativo, aunque sea limitado.

Quería construir un proyecto de enseñanza significativo en Chainweb, y una aplicación de préstamo me pareció la elección correcta.

Algunas de mis características favoritas de Charkha incluyen el proceso de gobierno comunitario y los préstamos y préstamos descentralizados.

En Charkha, un token CHRK por mercado se divide entre los participantes del mercado en cada bloque; cuanto mayor sea su participación en un mercado, mayor será su participación en el CHRK de ese bloque. Lo interesante de CHRK es que es un token fungible que implementamos en Charkha de acuerdo con la interfaz de token fungible de Pact (KIP-0005), y se usa para crear y votar propuestas de la comunidad que cambian el protocolo en sí.

Dado que CHRK es un token fungible, se puede intercambiar como cualquier otro token. Charkha incluso admite un mercado de dinero en CHRK, lo que significa que los usuarios pueden obtener préstamos para votar (por ejemplo), pagando tasas de interés potencialmente altas por el privilegio.

El protocolo está descentralizado, por lo que no hay un administrador que acuña CHRK. Las recompensas van directamente a las cuentas de los usuarios, por lo que los desarrolladores de protocolos no pueden retener recompensas ni acuñar CHRK para manipular un voto. Además, cuando se cierra la votación, el cambio de protocolo entra en vigencia de inmediato, sin la intervención de los desarrolladores del protocolo. Es autónomo.

Hay todo tipo de decisiones de diseño en Charkha que aseguran que el protocolo pueda funcionar sin la intervención de un administrador. Cuando le prestas fondos a Charkha, van a una cuenta propiedad del protocolo, pero Charkha está diseñado para que el único acceso a estos fondos sea a través de la API respaldada explícitamente por el protocolo. Ningún desarrollador puede simplemente entrar y transferir fondos a otra parte. Pact hace que este tipo de control de acceso detallado sea muy fácil con su función de capacidades.

Aprecio las restricciones bien pensadas que Pact impone al desarrollo de contratos inteligentes. Es Turing-incompleto, por lo que no permite la recursividad y los bucles, lo cual es una fuente de muchos errores en Solidity. Es inmutable, por lo que las variables no se pueden reasignar. Si desea una mutación, puede usar una base de datos y realizar actualizaciones a través de las interacciones normales de la base de datos, lo que no se puede hacer desde fuera de su módulo Pact. Hay un sistema explícito para el control de acceso llamado capacidades, lo que hace que sea trivial requerir que se usaran 2 de 3 claves para firmar una transacción y que permitan llamar a un bloque específico de código (en lugar de permitir que la transacción haga lo que quiera con sus firmas).

Puede resultar extraño describir un idioma en términos de sus restricciones en lugar de sus habilidades, pero estas restricciones no reducen significativamente lo que puede desarrollar con Pact. Simplemente cambian su enfoque de desarrollo y lo ayudan a evitar dispararse en el pie. ¡Los errores de contratos inteligentes pueden ser extremadamente costosos! También habilitan algunas características increíbles que distinguen a Pact, como su capacidad para verificar formalmente las propiedades de sus contratos inteligentes. En Charkha, puedo verificar que los préstamos totales del mercado nunca superan la oferta total del mercado.

No he pasado mucho tiempo con Chainweb directamente, es la infraestructura debajo de mis contratos inteligentes, pero la parte más visible son las tarifas de gas pagadas en cada transacción, y ciertamente me gusta ver que mis transacciones cuestan una fracción de centavo en lugar de las tarifas absurdas que se ven en otras cadenas de bloques.