Blockchain permisionada

19 marzo, 2019

(Trobareu la versió en català més avall)

Ahora que ya hace más de 10 años de la generación del primer bloque de Bitcoin, que sirvió como una excelente carta de presentación de la tecnología blockchain, vemos que esta tecnología se está haciendo cada día más popular, hecho que se refleja claramente en el gran número de criptomonedas que han surgido. La web coinmarketcap.com ya tiene más de 2000 monedas diferentes indexadas.  Blockchain promete ser un sistema descentralizado, extremadamente seguro, que construye una especie de libro mayor donde se pueden añadir nuevas entradas, pero no borrar ninguna existente, creando un sistema transparente y auditable. Estas características asociadas a blockchain son ideales para las aplicaciones monetarias como el Bitcoin, pero también pueden ser muy útiles para muchas otras aplicaciones más allá de las criptomonedas. Así, después de Bitcoin han aparecido otras plataformas donde se pueden crear aplicaciones descentralizadas programadas por los usuarios en los llamados contratos inteligentes (smart contracts en inglés) y que pueden usar una blockchain como registro para guardar otros tipos de información a parte de monetaria. Una de las plataformas más conocidas para ello es Ethereum.

criptomonedas
Listado de las últimas criptomonedas en la lista de coinmarketcap.com según su capitalización. Debe notarse que la capitalización de estas monedas no es conocida por esta web (indicado con un $?) y por esto están al final de la lista.

Sin embargo, tanto la blockchain inicial propuesta para Bitcoin, como otras más modernas como Ethereum, además de las propiedades ventajosas mencionadas anteriormente, también tienen ciertos inconvenientes que hacen que no sean sistemas apropiados para ciertos casos de uso. Entre estos problemas encontramos la falta de escalabilidad (este tipo de plataformas puede aguantar un número relativamente bajo de transacciones por segundo), la poca velocidad para registrar datos (en Bitcoin se publican bloques con nueva información cada 10 minutos de media), o el hecho de necesitar criptomonedas para realizar operaciones en la blockchain (esto puede ser un inconveniente tanto por el engorro que supone tener que vincular pagos a la mayoría de operaciones con el sistema, como también tener que tener en cuenta la volatilidad del precio de las criptomonedas y la incertidumbre del precio que tendrá cada transacción).

Uno de los motivos principales por los que estas blockchains tienen estos problemas es su carácter abierto, público y sin requerir permisos (permissionless en inglés). Con esto nos referimos a que cualquier persona puede conectarse a la plataforma de la blockchain y sin que se le haya otorgado ningún permiso especial, puede contribuir a la gestión del sistema y a la validación de que todas las transacciones incluidas siguen el protocolo de la blockchain en cuestión. Además, como parte de la seguridad de estas blockchain se basa en su fuerza de computación (la fuerza de computación de todos los nodos junta), estas plataformas necesitan dar incentivos para que la gente quiera contribuir con su fuerza computacional. Por estos motivos, los nodos que contribuyen registrando transacciones son recompensados con criptomonedas, y por estos motivos es necesario pagar criptomonedas para transaccionar en la mayoría de estas plataformas públicas.

Aunque el hecho de tener una plataforma abierta donde cualquier nodo se pueda conectar y ejercer tareas de gestión y validación es un concepto muy interesante, hay muchas aplicaciones en las que esto no es necesario. Incluso esto podría no ser deseado. Por ejemplo en muchas aplicaciones empresariales. Por este motivo se propusieron las blockchains permisionadas (permissioned en inglés). Estas blockchains suelen tener un carácter más cerrado y la información que se registra puede incluso mantenerse privada entre los nodos que la mantienen. De esta manera, una blockchain con permisos es mucho menos revolucionaria que una blockchain sin permisos y, de hecho, muchos argumentan que este tipo de sistema no es más que un tipo de base de datos compartida, y llaman blockchain sólo a las plataformas sin permisos. Sin entrar en este tipo de polémicas, lo que es cierto es que las blockchain con permisos tienen cierta utilidad en contextos donde consorcios de varias entidades diferentes necesitan un sistema común donde almacenar información compartida. En estos consorcios los miembros suelen tener ciertos intereses contrapuestos y la información que se requiere guardar en la blockchain suele ser de alto valor para varios de los miembros del consorcio. Por estos motivos los miembros del consorcio necesitan una plataforma donde la gestión y el almacenamiento de los datos no recaigan en una o pocas de las organizaciones del consorcio que puedan manipular los datos registrados, sino que estas responsabilidades sean compartidas entre todos los miembros. Así, en una blockchain permisionada, los miembros del consorcio pueden tener permisos especiales dependiendo de su responsabilidad dentro de la plataforma, y, por ejemplo, pueden tener permisos para escribir nuevos bloques, para validarlos o tan solo para usar el sistema y enviar transacciones.  

Gracias a poder designar con permisos a los nodos que van a participar en el protocolo de consenso se pueden utilizar sistemas más eficientes que en las blockchain sin permisos. En las blockchain sin permisos, para que la mayor parte de los nodos se pongan de acuerdo en cuál es el estado del sistema se suele utilizar un protocolo de consenso llamado Proof-of-Work (PoW). Este protocolo requiere el consumo de grandes cantidades de energía por todos los nodos participantes, siendo tan solo uno de ellos (el primero que llegue a resolver un problema criptográfico) el seleccionado para publicar el siguiente bloque (más información sobre este protocolo aquí). El gasto energético sirve de motivación para que los nodos se comporten de manera honesta y no intenten colar transacciones inválidas en los bloques. Así, si un nodo es el seleccionado para publicar el siguiente bloque de la cadena e incluye transacciones que no son válidas, entonces el bloque será descartado por los otros nodos de la red, y entonces el nodo habrá malgastado sus recursos energéticos. En cambio, en las blockchains con permisos todo esto no es necesario. Tal y como se dan permisos a algunos nodos para poder contribuir en el protocolo de consenso, estos permisos también pueden revocarse. De esta manera, el nodo que no siga el protocolo será excluído. Además, los nodos de las blockchain con permisos no reciben criptomonedas como premio por contribuir en el protocolo de consenso. Sino que son las propias instituciones que participan en la blockchain las que deben tener el interés de participar con algún nodo y así poder validar que todo lo que se incluye en el sistema es correcto. Por lo tanto, en este tipo de blockchain no es necesario incentivar la participación con criptomonedas, lo que hace que no sea necesario pagar por incluir transacciones en el sistema. Además, el hecho de no ofrecer un sistema totalmente descentralizado y asignar las tareas de creación de bloques a unos pocos nodos también permite aceptar miles de transacciones por segundo de forma muy rápida, lo que rompe con otras de las limitaciones importantes de las blockchains sin permisos.

Aunque esta tecnología todavía está en sus inicios, ya son varios los proyectos que proponen el uso de blockchains con permisos. En muchas ocasiones estas plataformas se habilitan para mejorar la gestión entre grupos de organizaciones diferentes, sustituyendo procedimientos basados en papel que requieran la firma de varias partes. De esta manera en muchos casos se espera mejorar la eficiencia en procedimientos rutinarios y reducir costes administrativos. También en muchos de estos casos lo que se busca es disponer de una plataforma común donde tener la información de algunos tratos comerciales y contractuales entre las diferentes organizaciones para así poder resolver más fácilmente conflictos entre ellas y para poder tener cierta trazabilidad de activos que se intercambian entre las organizaciones. Un buen ejemplo de uso de una blockchain permisionada se puede ver en el vídeo de abajo. En este caso de uso se utiliza Hyperledger Sawtooth para ofrecer una plataforma para registrar todas las transacciones en la cadena de suministro del pescado. De esta manera, un pescador cuando realiza una captura puede registrarla en una blockchain, registrando también información sobre la captura, como el lugar y la fecha. Posteriormente, el sistema está preparado para que se registren todas las transacciones del pescado entre todos los intermediarios de la cadena de suministro. En estas transacciones también se propone utilizar sensores de temperatura para controlar que los contenedores de pescado no pasen de cierta temperatura máxima durante su transporte y almacenaje y registrar los valores recogidos por estos sensores en la blockchain. De esta manera, se podría dar permiso de lectura a los consumidores para que accedieran a la blockchain y así ver todas las manos por las que ha pasado el pescado que van a consumir. Así los consumidores de pescado, tanto consumidores finales, como negocios como restaurantes, disponen de un registro transparente donde, con un alto grado de certeza, pueden asegurar la procedencia del pescado que consumen, y pueden verificar otras muchas características, como por ejemplo, si proviene de pesca sostenible, si se ha almacenado correctamente, etc.


Ejemplo de blockchain para la cadena de suministro del pescado. Fuente: Hyperledger.org

Finalmente, sin entrar en más detalles, listamos algunas de las plataformas más populares con las que se pueden desplegar blockchains permisionadas: Hyperledger, Quorum, BigchainDB, Multichain.

Blockchain permisionada

Ara que ja fa més de 10 anys de la generació del primer bloc de Bitcoin, que va servir com una excel·lent carta de presentació de la tecnologia blockchain, veiem que aquesta tecnologia s’està fent cada dia més popular, fet que es reflecteix clarament en el gran nombre de criptomonedes que han sorgit. El web  coinmarketcap.com ja té més de 2000 monedes diferents indexades. Blockchain promet ser un sistema descentralitzat, extremadament segur, que construeix una mena de llibre major on es poden afegir noves entrades, però no esborrar cap existent, creant un sistema transparent i auditable. Aquestes característiques associades a blockchain són ideals per a les aplicacions monetàries com el Bitcoin, però també poden ser molt útils per a moltes altres aplicacions més enllà de les monedes digitals. Així, després de Bitcoin han aparegut altres plataformes on es poden crear aplicacions descentralitzades programades pels usuaris amb els anomenats contractes intel·ligents (smart contracts en anglès) que poden utilitzar una blockchain com a registre per guardar altres tipus d’informació a part de monetària. Una de les plataformes més conegudes per a això és Ethereum.

Llistat de les últimes criptomonedes en la llista de coinmarketcap.com segons la seva capitalització. Ha de notar-se que la capitalització d’aquestes monedes no és coneguda per aquest web (indicat amb un $?) i per això estan al final de la llista.

No obstant això, tant la blockchain inicial proposta per a Bitcoin, com altres més modernes com Ethereum, a més de les propietats avantatjoses esmentades anteriorment, també tenen certs inconvenients que fan que no siguin sistemes apropiats per a certs casos d’ús. Entre aquests problemes hi ha la falta d’escalabilitat (aquest tipus de plataformes pot aguantar un nombre relativament baix de transaccions per segon), la poca velocitat per registrar dades (en Bitcoin es publiquen blocs amb nova informació cada 10 minuts de mitjana), o el fet de necessitar moneda digital per a realitzar operacions a la blockchain (això pot ser un inconvenient tant pel destorb que suposa haver de vincular pagaments a la majoria d’operacions amb el sistema, com també haver de tenir en compte la volatilitat del preu de les criptomonedes i la incertesa del preu que tindrà cada transacció).

Un dels motius principals pels quals aquestes blockchains tenen aquests problemes és el seu caràcter obert, públic i sense requerir permisos (permissionless en anglès). Amb això ens referim al fet que qualsevol persona pot connectar-se a la plataforma de la blockchain i sense que se li hagi atorgat cap permís especial, pot contribuir a la gestió del sistema i a la validació de que totes les transaccions incloses segueixen el protocol de la blockchain en qüestió. A més, com a part de la seguretat d’aquestes blockchain es basa en la seva força de computació (la força de computació de tots els nodes junta), aquestes plataformes han de donar un incentiu perquè la gent vulgui contribuir amb la seva força computacional. Per aquests motius, els nodes que contribueixen registrant transaccions són recompensats amb criptomonedes, i per aquests motius cal pagar criptomonedes per transaccionar en la majoria d’aquestes plataformes públiques.

Tot i que el fet de tenir una plataforma oberta on qualsevol node es pugui connectar i exercir tasques de gestió i validació és un concepte molt interessant, hi ha moltes aplicacions en les que això no és necessari. Fins i tot això podria no ser desitjat. Per exemple en moltes aplicacions empresarials. Per aquest motiu es van proposar les blockchains permisionades (permissioned en anglès). Aquestes blockchains solen tenir un caràcter més tancat i la informació que es registra pot fins i tot mantenir-se privada entre els nodes que la gestionen. D’aquesta manera, una blockchain amb permisos és molt menys revolucionària que una blockchain sense permisos i, de fet, molts argumenten que aquest tipus de sistema no és més que un tipus de base de dades compartida, i anomenen blockchain només a les plataformes sense permisos. Sense entrar en aquest tipus de polèmiques, el que és cert és que les blockchain amb permisos tenen certa utilitat en contextos on consorcis de diverses entitats diferents necessiten un sistema comú on emmagatzemar informació compartida. En aquests consorcis els membres solen tenir certs interessos contraposats i la informació que es requereix desar a la blockchain sol ser d’alt valor per a diversos dels membres del consorci. Per aquests motius els membres del consorci necessiten una plataforma on la gestió i l’emmagatzematge de les dades no recaiguin en una o poques de les organitzacions del consorci que puguin manipular les dades registrades, sinó que aquestes responsabilitats siguin compartides entre tots els membres. Així, en una blockchain permisionada, els membres del consorci poden tenir permisos especials depenent de la seva responsabilitat dins de la plataforma, i, per exemple, poden tenir permisos per escriure nous blocs, per validar-los o tan sols per utilitzar el sistema i enviar transaccions.

Gràcies a poder designar amb permisos als nodes que participaran en el protocol de consens es poden utilitzar sistemes més eficients que en les blockchains sense permisos. A les blockchains sense permisos, perquè la major part dels nodes es posin d’acord en quin és l’estat del sistema se sol utilitzar un protocol de consens anomenat Proof-of-Work (PoW). Aquest protocol requereix el consum de grans quantitats d’energia per tots els nodes participants, sent tan sols un d’ells (el primer que arribi a resoldre un problema criptogràfic) el seleccionat per publicar el següent bloc (més informació sobre aquest protocol aquí). La despesa energètica serveix de motivació perquè els nodes es comportin de manera honesta i no intentin colar transaccions invàlides en els blocs. Així, si un node és el seleccionat per publicar el següent bloc de la cadena i inclou transaccions que no són vàlides, llavors el bloc serà descartat pels altres nodes de la xarxa, i llavors el node haurà malgastat els seus recursos energètics. En canvi, en les blockchains amb permisos tot això no és necessari. Tal com es donen permisos a alguns nodes per poder contribuir en el protocol de consens, aquests permisos també es poden revocar. D’aquesta manera, el node que no segueixi el protocol serà exclòs. A més, els nodes de les blockchains amb permisos no reben moneda digital com a premi per contribuir en el protocol de consens. Sinó que són les pròpies institucions que participen en la blockchain les que han de tenir l’interès de participar amb algun node i així poder validar que tot el que s’inclou en el sistema és correcte. Per tant, en aquest tipus de blockchain no cal incentivar la participació amb criptomonedes, el que fa que no sigui necessari pagar per incloure transaccions en el sistema. A més, el fet de no oferir un sistema totalment descentralitzat i assignar les tasques de creació de blocs a uns pocs nodes també permet acceptar milers de transaccions per segon de forma molt ràpida, el que trenca amb altres de les limitacions importants de les blockchains sense permisos .

Tot i que aquesta tecnologia encara està en els seus inicis, ja són diversos els projectes que proposen l’ús de blockchains amb permisos. En moltes ocasions aquestes plataformes s’habiliten per millorar la gestió entre grups d’organitzacions diferents, eliminant procediments basat en paper que requereixin la signatura de diverses parts. D’aquesta manera en molts casos s’espera millorar l’eficiència en procediments rutinaris i reduir costos administratius. També en molts d’aquests casos el que es busca és disposar d’una plataforma comuna on tenir la informació dels tractes comercials i contractuals entre les diferents organitzacions per així poder resoldre més fàcilment conflictes entre elles i per poder tenir certa traçabilitat d’actius que s’intercanvien entre les organitzacions. Un bon exemple d’ús d’una blockchain permisionada es pot veure al vídeo de sota. En aquest cas d’ús s’utilitza Hyperledger Sawtooth per oferir una plataforma per registrar totes les transaccions en la cadena de subministrament del peix. D’aquesta manera, un pescador quan realitza una captura pot registrar-la en una blockchain, registrant també informació sobre la captura, com el lloc i la data. Posteriorment, el sistema està preparat perquè es registrin totes les transaccions del peix entre tots els intermediaris de la cadena de subministrament. En aquestes transaccions també es proposa utilitzar sensors de temperatura per controlar que els contenidors de peix no passin de certa temperatura màxima durant el seu transport i emmagatzematge i registrar els valors recollits per aquests sensors en la blockchain. D’aquesta manera, es podria donar permís de lectura als consumidors perquè accedissin a la blockchain i així veure totes les mans per les quals ha passat el peix que consumiran. Així els consumidors de peix, tant consumidors finals, com negocis com restaurants, disposen d’un registre transparent on, amb un alt grau de certesa, poden assegurar la procedència del peix que consumeixen, i poden verificar moltes altres característiques, com per exemple, si prové de pesca sostenible, si s’ha emmagatzemat correctament, etc.

Exemple de blockchain per a la cadena de subministrament del peix. Font: Hyperledger.org.


Exemple de blockchain per a la cadena de subministrament del peix. Font: Hyperledger.org.

Finalment, sense entrar en més detalls, llistem algunes de les plataformes més populars amb les que es poden desplegar blockchains permissionades: Hyperledger, Quorum, BigchainDB, Multichain.

Finalment, sense entrar en més detalls, llistem algunes de les plataformes més populars amb les que es poden desplegar blockchains permissionades: Hyperledger, Quorum, BigchainDB, Multichain.

(Visited 113 times, 1 visits today)
Autor / Autora
Victor Garcia-Font
Profesor de los Estudios de Informática, Multimedia y Telecomunicación e investigador del grupo KISON del IN3 de la UOC.
Comentarios
Deja un comentario