Pointproofs: entendiendo cómo Algorand resuelve el problema de la prueba de contratos inteligentes

pointproofs algorand

Presentación del problema de la prueba de contrato inteligente

Una cadena de bloques es un libro de contabilidad abierto y distribuido que puede registrar transacciones entre las partes de manera verificable. La cadena de bloques facilita las transacciones en una variedad de industrias, incluida la gestión de la cadena de suministro, bienes raíces, medios, energía, gestión de identidades y gestión de registros.

Por lo general, la mayoría de las plataformas blockchain no almacenan nada demasiado grande en la propia cadena de bloques debido a la baja capacidad de almacenamiento de las mismas y al alto costo de almacenamiento. Una solución común que emplean estas plataformas para abordar el problema es alojar sólo el hash de un objeto grande en un contrato inteligente y luego almacenar la mayor parte del objeto en otro lugar.

Un contrato inteligente es un protocolo informático autoaplicable destinado a facilitar, verificar o hacer cumplir digitalmente la negociación o ejecución de un contrato. El concepto de contratos inteligentes fue diseñado por Nick Szabo en 1977. En una cadena de bloques, un contrato inteligente puede almacenar una gran cantidad de información sobre el origen de un objeto, su linaje y el proceso de incorporación que resulta en la inmortalización dentro de la blockchain de un determinado hash que todos reconocerán como auténtico.

Un usuario en posesión de un objeto debe aplicar un hash al objeto y luego usar el contrato inteligente para confirmar su autenticidad e inspeccionar otros detalles. Además, un usuario puede comprometerse con los datos de su contrato inteligente y luego agregar a su transacción los valores que desea actualizar con las pruebas criptográficas asociadas.

A pesar de sus inmensos beneficios, los contratos inteligentes tienen ciertas limitaciones. En primer lugar, un contrato inteligente ofrece una recompensa a cualquiera que proporcione una solución a un problema matemático, como la solución a un Sudoku determinado, sin ningún esquema sobre cómo comprobará si una solución determinada es correcta. Además, un contrato inteligente define e implementa derivados financieros sin ningún procedimiento para verificar el valor real de la transacción. Por ejemplo, un contrato inteligente puede implicar que el usuario A pagará al usuario B una prima si el valor de una moneda de euro aumenta por encima de 1,5 dólares en un mes. Sin embargo, el contrato inteligente no tiene un esquema para verificar el valor real del euro después de la duración dada. Estos y otros problemas inherentes limitan la escalabilidad de la tecnología de contrato inteligente.

Un caso de estudio del problema de la prueba de contrato inteligente

Para comprender mejor el problema de la prueba de los contratos inteligentes, consideremos este escenario:

Un usuario determinado llamado Greg tiene tres documentos: una licencia de conducir, un pasaporte y un certificado de nacimiento, y cada documento está representado por una notación de objetos JavaScript (JSON) que incluye todos los campos de los datos presentes. Cada objeto JSON es emitido por un registro autorizado con un contrato inteligente que registra los valores hash de los documentos auténticos. Ningún documento se incluye en la lista sin seguir el estricto proceso de incorporación del contrato inteligente

Ahora, supongamos que Greg quiere mostrarle a otro usuario llamado Jane su fecha de nacimiento sin revelar más detalles personales. Debido a que cada uno de los tres documentos contiene una fecha de nacimiento, Greg tiene tres formas posibles de revelar este dato.

Dado que cada forma del documento se autentica fácilmente mediante un hash en una cadena de bloques, Jane podrá consultar el registro apropiado que confirmaría la autenticidad de cualquier documento que Greg decida revelar. Sin embargo, para que esto funcione, Greg tendría que darle a Jane el documento completo. Por tanto, Greg se enfrenta a un dilema. Tiene tres documentos para elegir, pero cada documento contiene más información de la que Greg quiere revelar, como la dirección de su casa, su historial de viajes y su lugar de nacimiento, dependiendo de cuál de los documentos eligió revelar.

Aunque Greg puede decir que estos documentos contienen una determinada fecha de nacimiento, Jane no puede probar de forma independiente que Greg está diciendo la verdad a menos que revele uno de estos documentos en detalle, lo que Greg no quiere hacer. Greg no puede probar nada sin seleccionar uno de los documentos y comunicárselo a Jane en su totalidad. Una vez más, Greg no quiere hacer eso.

¿Cómo puede Greg probar que está diciendo la verdad sobre un solo campo? ¿Cómo se puede hacer esto sin revelar otros datos personales importantes o trasladar dichos campos a una costosa blockchain de almacenamiento? Este escenario ilustra el problema de prueba de los contratos inteligentes.

Enfoques para abordar el problema de la prueba

Para abordar el problema de la prueba de contratos inteligentes, los desarrolladores de blockchain diseñaron varios enfoques. Entre ellos destacan TownCrier y Merkle Proofs.

TownCrier propone un sistema que permite que los contratos inteligentes en cadena requieran datos web externos, ya accesibles a través de TLS y HTTPS. La arquitectura TownCrier se compone de un contrato inteligente que actúa como front-end para los otros contratos de clientes en cadena, un enclave que se ejecuta en un entorno Intel Software Guard Extensions (SGX) y un relay que maneja la comunicación del enclave con la cadena de bloques. y proporciona certificación sobre la ejecución vigilada del enclave.

Una limitación importante del enfoque de TownCrier es que existe una forma significativa de centralización en el gateway de TownCrier. Por lo tanto, no hay seguridad frente al ataque del relay por el apagado del enclave. Además, el contrato inteligente de origen no puede verificar directamente un certificado. Por lo tanto, un comportamiento incorrecto del enclave debido a un ataque u otras razones no puede ser detectado por el contrato inteligente de origen.

Merkle Proofs, por otro lado, prueba la existencia de un valor dentro de un conjunto de datos. Para que funcione una prueba de Merkle, los usuarios necesitan un árbol de Merkle. Un árbol Merkle aplica hash de forma recursiva a pares de valores hasta que finalmente solo queda un hash conocido como Merkle Root.

El uso de Merkle Trees es la forma tradicional adoptada por Ethereum y algunas otras cadenas de bloques para comprometerse con un conjunto de datos. Sin embargo, se sabe que los árboles Merkle poseen pruebas muy largas. Por ejemplo, un usuario que se compromete con 1000 valores en un contrato inteligente necesitaría propagar 320 bytes de datos adicionales (prueba criptográfica) para cambiar solo uno de los valores. Esto puede consumir mucho ancho de banda de la red y agregar costos sustanciales para los nodos que participan en el consenso de las redes distribuidas, donde cada transacción se propaga a través de todos los nodos. Para resolver estos problemas, Algorand blockchain diseñó PointProofs.

PointProofs: El Enfoque de Algorand

PointProofs es un nuevo esquema de compromiso vectorial que admite la adición no interactiva de pruebas a través de múltiples compromisos. Estos PointProofs permiten al usuario comprometerse con una secuencia de valores (V1, V2 …. Vn) y probablemente revelar uno o más valores en posiciones específicas en un momento posterior. Con PointProofs, tanto el compromiso como el tamaño de la prueba son de solo 48 bytes.


Pointproofs

Además, PointProofs permite a cualquier tercero agregar una colección de pruebas para diferentes compromisos calculados de forma independiente en una sola prueba representada por un punto de curva elíptica de 48 bytes. La adición de compromisos cruzados es una característica completamente nueva que ninguno de los enfoques anteriores logró. PointProofs también satisface las propiedades de ocultación de modo que los compromisos y pruebas de algunos valores no revelarán información sobre los valores restantes.

Cuando se aplica a los contratos inteligentes de blockchain, PointProofs puede reducir los gastos generales de ancho de banda para propagar un bloque de transacciones en al menos un 60% en comparación con los compromisos vectoriales anteriores. Los PointProofs también son eficientes, ya que se necesitan 0.08 segundos para generar una prueba de 8 valores para un compromiso en un solo hilo, 0.25 segundos para agregar 4000 puntos de este tipo en múltiples compromisos en una prueba y 23 segundos para verificar la prueba agregada.

En conclusión, los PointProofs diseñados por Algorand se pueden utilizar para reducir el almacenamiento en cadena y minimizar los requisitos de ancho de banda de la red. Esto ayuda a la blockchain a permitir redes descentralizadas más eficientes para contratos inteligentes. Los desarrolladores, especialmente en países con una población numerosa, lista para adoptar la tecnología blockchain, pueden aprovechar esta característica para desarrollar soluciones de contratos inteligentes eficientes, descentralizadas y seguras.


Este artículo ha sido escrito originalmente por Helen Imah en el «Community Blog» de Algorand y traducido por Algorand Latam

Original Article: https://community.algorand.org/blog/pointproofs-understanding-how-algorand-solves-the-smart-contract-proof-problem/

Aviso de responsabilidad:

Este artículo no contiene consejos financieros, ni recomendaciones de inversión de ningún tipo. La información brindada se ofrece sólo con fines educativos y didácticos en cuanto a tecnología Web3 y análisis sobre sus casos de uso.

Las inversiones con criptomonedas, NFTs, tokens u otros activos digitales conllevan riesgos y no se encuentran regulados, por lo que los lectores deben realizar su propia investigación antes de tomar cualquier tipo de decisión bajo su entera responsabilidad, así como adaptarse y observar las diferentes regulaciones legales según su país de residencia.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *