- -

Consenso bizantino y Blockchain

RiuNet: Repositorio Institucional de la Universidad Politécnica de Valencia

Compartir/Enviar a

Citas

Estadísticas

  • Estadisticas de Uso

Consenso bizantino y Blockchain

Mostrar el registro sencillo del ítem

Ficheros en el ítem

dc.contributor.advisor Bernabeu Aubán, José Manuel es_ES
dc.contributor.author Fernández-Bravo Peñuela, Francisco Javier es_ES
dc.date.accessioned 2019-01-14T08:26:24Z
dc.date.available 2019-01-14T08:26:24Z
dc.date.created 2018-09-27 es_ES
dc.date.issued 2019-01-14 es_ES
dc.identifier.uri http://hdl.handle.net/10251/115369
dc.description.abstract Los sistemas blockchain han despertado un gran interés desde su aparición por su utili- zación en las divisas criptográficas, de las que Bitcoin es la pionera y la más icónica. Sus aplicaciones se extienden a cualquier sistema que requiera mantener un registro replicado de documentos o transacciones, garantizando la consistencia eventual del estado compartido, la integridad de los datos y la tolerancia a fallos por medio de un algoritmo de consenso. El presente trabajo versa acerca de Trebizond, un algoritmo de consenso tolerante a fallos bizantinos especialmente apropiado para su aplicación en sistemas blockchain permisiona- dos. Su diseño está influenciado principalmente por Raft y PBFT. Del primero toma sus principios de diseño, que se fundamentan en la separación de problemas, la reducción del espacio de estados y la inteligibilidad del algoritmo. Del segundo toma algunos de los ele- mentos que permiten dotar al algoritmo de tolerancia a fallos en un escenario bizantino. Tras realizar un estudio detallado del problema del consenso distribuido y otros problemas estrechamente relacionados propios de los sistemas distribuidos, seguido por una crónica de las principales plataformas de blockchain permisionado actualmente en explotación, se enuncia la especificación funcional de Trebizond. Este algoritmo permite alcanzar consenso en un escenario eventualmente síncrono, autenticado y con presencia de fallos bizantinos. Respecto al estado actual de la investigación en este área, su principal contribución es la combinación de la detección de fallos activa y la validación semántica. Mientras que otros algoritmos utilizan la detección activa de fallos como una forma de mejorar el factor de tolerancia a fallos frente a la táctica de enmascaramiento habitualmente usada, y otros algoritmos hacen uso de técnicas de validación semántica o externa a la hora de valorar si es lícito ejecutar una operación sobre el estado compartido, Trebizond propone fusionar ambas técnicas. Su finalidad es utilizar la validación semántica, dependiente del protocolo de nivel superior que se ejecuta sobre el algoritmo de consenso, como parte del propio mecanismo de detección activa de fallos, de tal forma que se mejore su eficacia y completitud. Este refinamiento del detector de fallos permite, por ejemplo, deponer a un líder cuando los nodos detectan que éste está enviando operaciones que son coherentes con el propio algoritmo de consenso pero que violan la semántica del protocolo de nivel de aplicación, o aislar a una réplica del grupo de difusión cuando se tienen evidencias de comportamiento bizantino por su parte. El establecimiento de las propiedades de seguridad y viveza del algoritmo y su diseño se detallan pormenorizadamente utilizando autómatas de entrada/salida, una técnica bien cono- cida para la elaboración de algoritmos distribuidos. Este diseño encuentra su correspondencia en una implementación, realizada como caso práctico con el ánimo de mostrar paradigmas y patrones que facilitan la codificación de algoritmos distribuidos a partir de un diseño bien especificado. es_ES
dc.description.abstract Blockchain systems have been drawing a great deal of interest since their first appearance due to their use in cryptocurrencies, having Bitcoin as their pioneer and the most iconic of them. Their applications spread to any system which requires to keep a replicated log of documents or transactions, ensuring eventual consistency on the state shared among the replicas, data integrity, and fault tolerance by means of a consensus algorithm. The present work deals with Trebizond, a fault tolerant algorithm particularly suitable for its application in permissioned blockchain systems. It is influenced by Raft and PBFT. From the former it takes its design principles, which lay on problem separation, state space reduc- tion, and the algorithm¿s own intelligibility. From the latter it takes some of the elements which enable the algorithm to be provided with fault tolerance in the byzantine setting. After carrying out a detailed study about the problem of distributed consensus and other typical problems of distributed systems which are tightly bound to it, followed by a sum- mary of the main permissioned blockchain platforms currently in exploitation, Trebizond¿s functional specification is formulated. This algorithm tries to reach consensus in an even- tually synchronous authenticated setting, where byzantine failures may arise. Regarding the current state of research in this area, Trebizond¿s main contribution is its combination of active failure detection and semantic validation. While other algorithms make use of active failure detection as a means of improving their fault tolerance degree in relation to the fai- lure masking strategy commonly used, and other algorithms rely on semantic or external validation when it comes to appreciate whether an operation is legal to be executed on the shared state, Trebizond proposes to fuse both techniques. It aims to use semantic validation, this being dependent from the higher level protocol which execu- tes on top of the consensus algorithm, as a part of the active failure detection system, thus improving its effectiveness and completeness. This polished failure detector makes possible to perform actions such as deposing a leader when it is detected for having been sending messages which are coherent with the consensus algorithm itself but violate the application level protocol, or isolating a replica from the communication group when evidences exist that it has featured byzantine behavior. The algorithm¿s safety and liveness properties are first outlined and subsequently high- lighted by means of input/output automatons, a well-known technique for crafting distribu- ted algorithms. Such a design finds its match in an implementation case, whose goal is to show some paradigms and patterns which make easier to code distributed algorithms from a properly stated design. en_EN
dc.language Español es_ES
dc.publisher Universitat Politècnica de València es_ES
dc.rights Reconocimiento - No comercial (by-nc) es_ES
dc.subject Sistemas Distribuidos es_ES
dc.subject Consenso es_ES
dc.subject Consenso Bizantino es_ES
dc.subject Fallos Bizantinos es_ES
dc.subject Máquina de estados distribuida es_ES
dc.subject Blockchain es_ES
dc.subject Trebizond es_ES
dc.subject Distributed Systems en_EN
dc.subject Consensus en_EN
dc.subject Nakamoto Consensus en_EN
dc.subject Byzantine failures en_EN
dc.subject Distributed state machine en_EN
dc.subject.classification LENGUAJES Y SISTEMAS INFORMATICOS es_ES
dc.subject.other Máster Universitario en Computación Paralela y Distribuida-Màster Universitari en Computació Paral·Lela i Distribuïda es_ES
dc.title Consenso bizantino y Blockchain es_ES
dc.type Tesis de máster es_ES
dc.rights.accessRights Abierto es_ES
dc.contributor.affiliation Universitat Politècnica de València. Departamento de Sistemas Informáticos y Computación - Departament de Sistemes Informàtics i Computació es_ES
dc.description.bibliographicCitation Fernández-Bravo Peñuela, FJ. (2018). Consenso bizantino y Blockchain. http://hdl.handle.net/10251/115369 es_ES
dc.description.accrualMethod TFGM es_ES
dc.relation.pasarela TFGM\92700 es_ES


Este ítem aparece en la(s) siguiente(s) colección(ones)

Mostrar el registro sencillo del ítem