Análisis de Smart Contracts en Ethereum e identidad soberana

Actualmente, la tecnologia blockchain se encuentra en constante evolucion, pero a pesar de su innovadora tecnologia, no solo se tienen modelos teoricos y conceptuales acerca de sus posibles usos y finalidades, sino que tambien estan empezando a existir aplicaciones basadas en blockchain que cambiaran el modo de realizar multiples gestiones, asi como la obtencion de nuevos conceptos como el de identidad soberana que se esta implementando en Alastria Blockchain Ecosystem. Alrededor de la tecnologia blockchain existen una serie de problemas que requieren un estudio intensivo, con el objetivo de la obtencion de soluciones, o posibles alternativas que mitiguen dichos problemas, como la actualizacion de los Smart Contracts, es decir, poder modificar los contratos sin perder informacion hasta la posibilidad de utilizar aplicaciones blockchain en multiples dispositivos. Para abordar los problemas que se han encontrado, en primer lugar, se ha realizado un estudio de las tres principales blockchains, Ethereum, Hyperledger Fabric y Corda, asi como cuales son las principales componentes de estas y los diferentes conceptos que hay que entender para saber como funciona. Estos conceptos incluyen, el objetivo y funcion de los nodos, el concepto de wallet, con el cual los usuarios pueden interactuar con la blockchain, el concepto de criptografia que aporta seguridad a una blockchain y por ultimo los diferentes algoritmos de consenso que existen. Por otro lado, se ha realizado un estudio de los diferentes lenguajes de programacion y herramientas que se utilizan para la implementacion y construccion de las tres principales blockchains que se han comentado anteriormente. Tambien se ha explicado cual es el papel y el objetivo que tiene OpenZeppelin dentro de la implementacion de los Smart Contracts, asi como las ventajas que aporta su uso. Una vez que ya se tienen claros los conceptos que engloba una blockchain, se ha realizado un estudio exhaustivo del modelo de identidad soberana que se esta implementando actualmente en Alastria. En cuanto a dicho modelo, se destaca los tres roles que existen, el del subject, el del issuer y el del service provider. Por otro lado, existen una serie de objetos que hacen posible la interaccion entre los roles listados anteriormente. Con el objetivo de resolver el problema de que los Smart Contracts de Alastria no son actualizables, se ha realizado un estudio y se ha propuesto un primer aproximamiento de arquitectura para los Smart Contracts que se basa en el patron eternal storage. De esta manera, lo que se propone es tener separados en contratos diferentes los datos de la logica, con el objetivo de ir modificando solo los contratos que albergan la logica, consiguiendo de esta manera que los contratos de Alastria sean actualizables. Con el mismo objetivo de resolver ciertos problemas que se han encontrado, se ha realizado una auditoria a los Smart Contracts de Alastria. En dicha auditoria se han encontrado una serie de vulnerabilidades en los contratos. Este punto ha sido muy importante ya que los Smart Contracts de Alastria se van a encontrar en produccion para el nuevo concepto de identidad soberana. El principal objetivo de este modelo de identidad soberana es que los usuarios sean en todo momento los unicos duenos de sus datos y sepan en todo momento quien esta haciendo uso de ellos y con que finalidad, asi como mejorar los procesos de alta en las diferentes entidades que prestan servicios que los usuarios consumen. Por otro lado, se ha realizado una investigacion sobre como obtener o activar una serie de metricas para la consecucion de una serie de informacion que vislumbre luz acerca del correcto funcionamiento de aplicaciones basadas en blockchain. Para abordar la necesidad de que un subject pueda utilizar su identidad en mas de un dispositivo se ha realizado un estudio utilizando los HSM, servidores hardware que permiten almacenar claves y tienen la capacidad de firma. En dicho estudio se ha obtenido como resultado, la posibilidad de almacenar los keystores en dichos HSM, para que los usuarios hagan uso de sus keystores desde multiples dispositivos, asi como mejorar la seguridad a la hora de hacer uso del keystore. A pesar de que la tecnologia no es una limitacion en este aspecto, cabe destacar que estos servidores tienen un precio bastante elevado, con lo cual cada usuario no puede tener un HSM propio, con lo cual se tendria que llegar a un acuerdo entre las empresas para poner a disposicion de los usuarios estos servidores siempre y cuando se quieran securizar altamente el uso de estos keystores. Por ultimo, el creciente uso de esta tecnologia, en la que las empresas estan anadiendo a sus modelos de negocio se debe a sus numerosas ventajas. Se trata de una tecnologia que permite el tratamiento de datos de manera segura, confidencial e inmutable y de esta manera el tratamiento de estos datos se vuelve transparente.---ABSTRACT---Currently, the blockchain technology is in constant evolution but, despite its innovative technology, not only we do have theoretical and conceptual models about its possible uses and purposes, but also, applications based on this technology are coming to light. Those will change the way in which we carry out different managements, as well as obtaining new concepts, such as the sovereign identity that is being implemented in Alastria Blockchain Ecosystem. Around the blockchain technology there are a series of problems that require intensive study, with the aim of obtaining solutions, or possible alternatives that mitigate these problems, such as updating contracts, i.e. making the contracts upgradeable to the possibility of using blockchain applications on multiple devices. To address the problems encountered, firstly, a study has been carried out of the three main blockchains, Ethereum, Hyperledger Fabric and Corda, as well as what the main components of these are and the different concepts that need to be understood in order to know how they work. These concepts include, the objective and function of the nodes, the concept of wallet, with which users can interact with the blockchain, the concept of cryptography that provides security to a blockchain and finally the different consensus algorithms that exist. On the other hand, a study of the different programming languages and tools used for the implementation and construction of the three main blockchains mentioned above has been carried out. It has also been explained, which is the role and objective that OpenZeppelin has within the implementation of the Smart Contracts, as well as the advantages that the use of it brings. Once the concepts of a blockchian are clear, a comprehensive study of the model of sovereign identity currently being implemented in Alastria has been carried out. Regarding this model, the three existing roles are highlighted: the subject, the issuer, and the service provider. On the other hand, there are a series of objects that make possible the interaction between the roles listed above. In order to solve the problem that Alastria's Smart Contracts are not upgradeable, a study has been carried out and a new architecture has been proposed for Smart Contracts based on eternal storage. In this way, what is proposed is to have the logic data separated into different contracts, with the objective of modifying only the contracts that contain the logic, thus making Alastria contracts upgradeable. With the same objective of solving certain problems that have been found, an audit has been carried out on Alastria's Smart Contracts. In this audit, a series of vulnerabilities were found in the contracts. This point has been very important since Alastria Smart Contracts will be in production for the new concept of sovereign identity. The main objective of this model of sovereign identity is that users are at all times the sole owners of their data and know at all times who is making use of them and for what purpose, as well as improving the onboarding processes in the different entities that provide services that users consume. On the other hand, research has been carried out on how to obtain or activate a series of metrics for the achievement of a series of information that will shed light on the correct functioning of blockchain-based applications. To address the problem of a subject being able to use its identity on more than one device, a study has been carried out with the HSM (Hardware Secure Module), hardware servers that allow the storage of keys and have the capacity of signature. The result of this study is that, if keystores can be stored in these HSMs, users can use their keystores from multiple devices. Although the technology is not a limitation in this aspect, it should be noted that these servers have a fairly high price, so that each user cannot have their own HSM, so that an agreement would have to be reached between the companies to make these servers available to users as long as they want to make the use of these keystores highly secure. Finally, the use of this technology is growing by leaps and bounds, being added to the business models of companies due to its many advantages. It is a technology that, not only, allows the treatment of data in a secure, confidential, and immutable way, but in this way, the treatment of this data becomes transparent.