The technical content top engineers rely on to level up.
6 min read
Reducir el número de comprobaciones de igualdad (restricciones) mediante combinaciones lineales aleatorias Las combinaciones lineales aleatorias son un truco común en los algoritmos de pruebas de conocimiento cero para permitir $m$ comprobaciones de igualdad...
4 min read
Álgebra de producto interno En este artículo, presentamos algunos trucos algebraicos útiles para productos internos que serán de utilidad al derivar pruebas de rango (y codificar circuitos como productos internos) más adelante. Cada regla...
6 min read
Bulletproofs ZKP: Zero Knowledge and Succinct Proofs for Inner Products Bulletproofs ZKPs allow a prover to prove knowledge of an inner product with a logarithmic-sized proof. Bulletproofs do not...
9 min read
Logarithmic sized proofs of commitment In a previous chapter, we showed that multiplying the sums of elements of the vectors $\mathbf{a}$ and $\mathbf{G}$ computes the sum of the outer product terms,...
18 min read
Pruebas sucintas de un compromiso vectorial Si tenemos un compromiso vectorial de Pedersen $A$ que contiene un compromiso para un vector $\mathbf{a}$ como $A = a_1G_1 + a_2G_2+\dots + a_nG_n$ podemos demostrar que conocemos...
8 min read
Una Prueba de Conocimiento Cero para el Producto Interno Un argumento de producto interno es una prueba de que el probador llevó a cabo correctamente el cálculo del producto interno. Este capítulo muestra cómo construir un cero...
10 min read
Introducción a los ZK Bulletproofs Los Bulletproofs son un argumento de producto interno de conocimiento cero, que permiten a un probador convencer a un verificador de que calculó correctamente un producto interno. Es decir, el...
22 min read
Ranuras de almacenamiento de tipos dinámicos (Mappings, Arrays, Strings, Bytes) Los tipos de tamaño dinámico en Solidity (a veces denominados tipos complejos) son tipos de datos de tamaño variable. Estos incluyen mappings,...
16 min read
Revert en assembly Revertir transacciones utilizando inline assembly puede ser más eficiente en gas que usar la sentencia de Solidity de alto nivel o la instrucción. En esta guía, exploraremos cómo los diferentes tipos de reverts...
9 min read
get_D() y get_y() en Curve StableSwap Este artículo muestra algebraicamente paso a paso cómo el código para y se deriva del invariante StableSwap. Dado el invariante StableSwap: $$ An^n\sum x_i...
15 min read
Actualizaciones de contratos inteligentes en Foundry con el OpenZeppelin Plugin Actualizar un contrato inteligente es un proceso de múltiples pasos y propenso a errores, por lo que para minimizar las posibilidades de error humano, es deseable utilizar un...
12 min read
UUPS: Universal Upgradeable Proxy Standard (ERC-1822) El patrón UUPS es un patrón proxy donde la función de actualización reside en el contrato de implementación, pero cambia la dirección de implementación...