¿Qué significa la auditoría de "smart contracts"?

Los “NFT”, siglas de Token no fungible, han causado tal fenómeno en el imaginario colectivo que ya algunos la auguran como la aplicación que finalmente hará útiles a las decenas de “blockchain” que existen a la fecha. La propuesta NFT se fundamenta en el aspecto no fungible, que significa que no se gasta con el uso, de estas representaciones digitales de tokens. Este objetivo no es muy distinto al de los tokens originales que han visto la luz a partir del primer DAO (siglas en inglés de Organización Autónoma Descentralizada) en Ethereum, puesto que, más allá de los objetivos, métodos y usos de los tokens, de lo que se trata finalmente es de crear una representación digital de la propiedad de éstos. De la misma manera que el uso de la criptografía de llave pública ha permitido vincular la fracción o unidades de Bitcoin a un par de llaves en particular (conocido por el usuario final como direcciones o billeteras), el principal atributo del mundo de los tokens está en el hecho de vincular un propietario con el total o partes de un objeto digital.


No es el objetivo aquí el explorar el mundo de los NFT pero sí parto de allí para entrar en tema. Por esto, es irrelevante si el objeto digital representa a un raro PNG o JPG, una imagen que se puede copiar o replicar, como es la naturaleza de todo en la informática; o si representa una obra que se va a subastar en Sotheby’s esta mañana. Tampoco es relevante el precio de cotización que tiene o podría tener en un futuro. Lo que sí es relevante en todos los casos son las reglas que regulan estos tokens. En el sector se conocen como tokenomics (mezcla de token y “economics”) y se refiere a las variables económicas que influyen en su quehacer. Previo al mundo de los tokens, las DAO iniciaron este, ahora popular, camino de normas y propiedad en el mundo digital. El hecho es que ambos usos de las “blockchain” tienen que ver directamente con lo que se conoce como “smart contracts”.

¿Programas inteligentes?

Aquí en Quinpu ya hemos tocado el tema de “smart contracts” en diferentes ocasiones, tanto el aspecto técnico como otros menos esotéricos y más tangibles. Lo que hay que tener claro es que estos programas no son inteligentes sino obedientes, como lo es cualquier programa informático y bien lo ha señalado don Francisco Rosales. Aún mejor, lo que sugiero hacer, tanto a técnicos avispados como a profesionales de otros sectores como el legal, es no interpretar de forma literal las cosas por el nombre o mote que tienen o se les han puesto. Olvide el mote “smart contract” y simplemente diga programas, hará su existencia menos azarosa. De hecho, olvide incluso que se trata de contratos, luego entraremos en detalle.

Quizá se pregunte, educado lector, que si todo esto son programas, no son inteligentes, ni menos contratos. Entonces, para efectos de auditoría, ¿hay que tocar la puerta de los viejos auditores informáticos de toda la vida? Ha dado usted en el clavo y vamos a ver porqué. Desde el aspecto legal los contratos requieren un consentimiento de las partes y tienen una forma (arrendamiento, compraventa, etc, etc.), el documento en el se plasman es solamente un soporte, a menudo papel. Desde el punto de vista informático un programa jamás podrá ser un contrato, debido a que su contenido ya establece unas reglas, condiciones, etc. que han sido previamente diseñadas por el ingeniero de software o programador en base a lo que se conoce en este mundo como las reglas de negocio. La novedad de un programa informático es que, además de ser el documento o soporte del contrato, también podría ejecutarlo o formalizarlo totalmente o en parte. Es decir, cuando el software es utilizado por alguna de las partes se podrían ejecutar, desencadenar, todas o algunas de las acciones que derivan de lo que el contrato establece. Dicho lo anterior, y para no entrar involuntariamente en otro jardín, podríamos hacer la analogía siguiente: en blockchain el contrato es el “whitepaper”, el documento el “smart contract” y la ejecución del contrato usualmente se da al utilizar este programa en la blockchain. Esta analogía es obviamente poco ortodoxa y menos rigurosa pero sencilla para ubicarnos.

Auditoría informática

La auditoría de “smart contracts”, por tanto, es necesariamente una auditoría informática, un campo que al igual que casi todas las cosas en “tecnología” es como la viña del señor y alberga de todo. Sin embargo, a menudo, el objetivo de una auditoría informática está en la identificación de riesgos y sobretodo en el conocer si los recursos que dispone la organización se subordinan en eficiencia y eficacia (a menudo financiera) a los objetivos de la misma. En otras palabras, si la tecnología que la organización ha adquirido se está empleado de la mejor manera y es una herramienta fiable para conseguir sus objetivos. Por supuesto que esto es muy amplio y general, así que debemos enfocarnos en las trincheras del mundo de la programación.

La auditoría de programas informáticos, el código fuente, es la constatación de cómo se han implementado aquellas “reglas de negocio”, que idealmente son las mismas que desean quienes llevan tal negocio. El objetivo es determinar el grado de cumplimiento de estas reglas y, de manera secundaria, su eficiencia en ello. El primer aspecto se podría decir que es más cercano al quehacer del negocio, mientras que el segundo se enfoca generalmente en el aspecto técnico. En el primer caso evaluamos si el programa cumple con implementar un cierre de caja, una emisión progresiva de tokens, o que la emisión de cada NFT producido tiene características distintas a los previos. En el segundo caso nos fijamos en la parte estrictamente informática, se miran los flujos de datos, se hace análisis de caja negra, se miran los algoritmos correspondientes a cada función para evaluar su eficiencia desde el punto de vista informático. Es decir, el diseño de los algoritmos o del programa como tal. Un recinto se puede construir con capacidad para recibir 60 mil personas, pero si las boleterías y controles de ingreso no están diseñados de cierta manera, es muy difícil que todas esas personas puedan ingresar o salir, sin causar disturbios, en unos pocos minutos.

De tal manera, más que una auditoría de contratos a lo que nos enfrentamos es a una actividad de auditoría de programas informáticos. Por tanto, se requiere un punto de vista de “negocio”, pues absolutamente todos los programas informáticos no hacen nada por sí mismos o algo que no se les haya instruido previamente. Este aspecto de negocio en el mundo de los tokens estará bastante ligado a las normas o variables de economía/finanzas que se propone implementar, o de gobierno (también conocido con el anglicismo gobernanza) que enuncian los manifiestos o preceptos para el caso de los programas de tipo DAO. El rol debe comprender los contratos que estos documentos representan y junto a un informático verificar cómo se han plasmado en los programas. Sin embargo, no hay que dejar de lado el aspecto puramente informático, puesto que los programas funcionan en un ámbito determinado y pueden tener fallos, pueden implementar fraudes aunque en apariencia todo marche con normalidad (véase la literatura sobre los corredores de bolsa automatizados), etc. Este aspecto no es más importante que el primero, que está más orientado a dar confianza al cliente, usuario, socio, inversionista, o el rol que tome la otra parte; pero tampoco es menos importante que la nota de una clasificadora de riesgo en el mundo tradicional. El análisis informático de los programas de “blockchain” más allá de la eficiencia, que en términos prácticos es usualmente conocida y determinista, debe identificar potenciales vulnerabilidades, fallos intencionados, etc. que pueden ocasionar fraudes originados por terceros o por los organizadores de estas nuevas maneras de asociación comercial en el mundo digital.

2 Me gusta