Zinc Framework
Los rápidos avances recientes en los SNARK basados en R1CS finalmente hacen que la aplicación de pruebas de conocimiento cero sea práctica para llevar la escalabilidad y la privacidad a las cadenas de bloques. Al mismo tiempo, la mayoría de los lenguajes y marcos existentes para construir circuitos R1CS, si bien son útiles en la investigación académica y la creación de prototipos, no proporcionan un grado satisfactorio de expresividad y brevedad para escribir programas legibles y de fácil mantenimiento. Una excepción notable es xJSnark, pero al estar basado en Java, carece de muchas características de seguridad de los lenguajes funcionales modernos. Además, los marcos existentes carecen por completo de una funcionalidad específica para los contratos inteligentes. Los aspectos de seguridad y protección son cruciales para desarrollar contratos inteligentes, ya que se ocupan de activos financieros valiosos. Los lenguajes de contratos inteligentes modernos, como Simplicity o Libra's Move, tomaron decisiones de diseño deliberadas que favorecen la seguridad y la verificabilidad formal del código sobre la expresividad generalista. Zinc se creó para llenar el vacío entre estos dos mundos: proporcionar un lenguaje de contrato inteligente optimizado para circuitos R1CS, que es confiable y simple al mismo tiempo, y que un gran número de desarrolladores de software pueden aprender rápidamente. Decidimos tomar prestada la sintaxis y la semántica de Rust. El zinc es un subconjunto del óxido con pequeñas diferencias dictadas por las sutilezas de los circuitos R1CS. Es fácil de aprender por cualquier desarrollador familiarizado con Rust, Golang, C++ u otros lenguajes similares a C. Además, la experiencia con Solidity ayudará a comprender algunos detalles de contratos inteligentes. El idioma está en un fuerte desarrollo, por lo que muchos de sus aspectos eventualmente mejorarán o cambiarán. Sin embargo, los principios básicos, como la seguridad y la simplicidad, nunca serán cuestionados.