Tau Chain – Code or Money (traduccion)

Código o pago, ¿Qué acción debe realizarse primero?

Posteado Jul 21, 2015, 7:18 PM por Ohad Asor [ Actualizado el Jul 21, 2015, 8:02 PM ]

Supongamos el caso hipotético de que Lisa sea programadora y Bart, un hombre de negocios.

A Bart le gustaría que Lisa desarrolle un software para su empresa. Debido a que ellos no se conocen, es natural que se formulen la siguiente pregunta: ¿cómo podrían confiar el uno en el otro? A Bart le gustaria pagar cuando el software esté terminado y funcionando correctamente, a Lisa le gustaria recibir por adelantado el pago de su labor, con el fin de evitar el riesgo de trabajar sin recibir remuneración alguna. Sería justo llegar a una especie de acuerdo intermedio que los deje contentos a ambos; por ejemplo, definiendo las metas de trabajo; sin embargo, esto no resolverá totalmente el tema de la confianza, sólo lo minimizará un poco.

¿De qué manera se puede resolver este problema a través de aplicaciones descentralizadas? Gracias al algoritmo de la cadena de bloques se resuelve de alguna manera el problema de la confianza en la mayoría de los casos. Por ejemplo, con el Bitcoin se puede demostrar la propiedad de la divisa mediante una firma criptográfica, que les permite utilizar este dinero. ¿Este método podría ser de ayuda para Bart y Lisa?

La cadena de bloques podría ser de utilidad solo cuando se trata de un bien raíz de vital importancia. Es en menor escala una característica propia de la cadena de bloques y en mayor escala una característica del código fuente. A partir de esta afirmación surge una interrogante mucho más simple: Cuando Bart reciba el código fuente, ¿cómo podrá saber si funciona apropiadamente?

La verificación del software, así como también la realización de pruebas sobre su correcto funcionamiento y el control de calidad son fundamentales para la vida útil del mismo. No están hechos a prueba de personas poco inteligentes: comúnmente nos vemos enfrentados a software con errores de programación; dicha inestabilidad guarda relación con desfases que van en contra de lo que se pudiera esperar de un software, brechas de seguridad y mal funcionamiento del mismo. Programar software de calidad es un proceso lento, costoso y sujeto a conjeturas, que además presenta difíciles tasas de convergencia.

Hace mucho tiempo los expertos en informática tienen conocimiento de que esta situación se debe a la naturaleza lógica de los lenguajes de programación. Sería fantástico si pudiésemos expresar formalmente las especificaciones del software que necesitamos, y si el computador pudiera indicar si un determinado código fuente cumple con dichas exigencias. De hecho, esto podría ser una realidad si seleccionamos un subconjunto de los lenguajes de programación denominado: Totally Functional Programming Languages (Lenguajes de programación totalmente funcionales), cuya sigla en inglés es (TFPL).

Si pensamos en un código TFPL, las afirmaciones probables respecto a este tipo de código son exactamente las afirmaciones correctas; por lo tanto, siempre es posible entregar una prueba, junto con el código fuente, que cumpla con determinadas especificaciones del software. Este no es el caso de los lenguajes que cumplen a cabalidad con las especificaciones de la máquina de Turing, como ya se mencionó en mi publicación anterior.

Entonces, Lisa podría desarrollar el programa en (TFPL) y Bart podría verificar que el mismo cumpla con las especificaciones que solicitó. En muchos casos, Bart tendría que contratar a un programador que escriba aquellas especificaciones formales, pero desde luego, la expresión de las especificaciones es un trabajo mucho más sencillo que el cumplimiento de dichas exigencias.

Ahora que ya hemos resuelto el problema de verificación cabe preguntarse cómo solucionar el problema de la confianza en la forma de pago planteado al principio del texto.

Para resolver el problema del código y su pago, que es similar al dilema de qué fue primero el huevo o la gallina, Tau-Chain bridará una solución a la brevedad.

Tau es un lenguaje (TFPL), es decir le da significado/sentido (TFPL) a los lenguajes existentes (la familia de lenguajes RDF, caracterizados por una gran legibilidad para el humano). El cliente de Tau cumple la función de poner a prueba y verificar un teorema, de manera que puede comprobar afirmaciones respecto a un determinado código de lenguaje Tau. Este último también funciona como un nodo de cadena de bloques; sin embargo, las pruebas pueden ser simplemente pruebas en el sentido matemático hasta sistema de tipos Tau, que abarcan todas las máquinas de Turing finitas; es decir, prácticamente todo tipo de computadores.

Entonces, Bart podría guardar dinero en una dirección multifirma junto con Lisa (que sería el equivalente de un bitcoin en una cuenta bancaria compartida que requiere ambas firmas), y especifica que en Tau la divisa será entregada a Lisa sólo si ella presenta pruebas de que su código cumple con todas las especificaciones solicitadas. Dichas pruebas serán verificadas por la red completa, por así decirlo, o por personas que minan bitcoins, la forma específica depende nuevamente de las reglas impuestas por el usuario y de la manera en que se construye esa divisa específica sobre Tau. Finalmente Lisa será recompensada de manera segura a través del pago que ella merece por su trabajo.

Cabe señalar que Bart puede tener la seguridad de que Lisa no ha ocultado alguna sorpresa en el código, ya que puede verificar de forma automática que el código no realiza acciones incorrectas como acceder a información confidencial. Por lo tanto, estamos en presencia de una nueva era en el mundo de la informática, dónde es posible confiar en el software y las personas pueden confiar las unas en las otras cuando se realiza una amplia gama de transacciones.

¿Difícil de creer?


Ya terminamos un sistema de verificación muy poderoso, que fue sometido a una gran cantidad de pruebas. Aún no está en condiciones óptimas, pero seguimos trabajando para lograrlo. Requiere un mayor desarrollo para superar un sistema de razonamiento RDF y convertirse en un nodo completo Tau. Es necesario terminar los sistema de tipos con restricciones, completar la integración de la cadena de Bloques y el sistema DHT, construir el bloque genesis, una vez realizado todo lo anterior, ¡voilá!

Créditos

Autor: Ohad Asor

Traducción: Virgilio Leonardo Ruilova, colaborador anónimo.

Licencia de la traducción: Creative Commons – Atribución – Compartir Igual

Licencia del original: Copyright, por Ohad Asor

Anuncios

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s