Los bitcoins y su escalabilidad

29 marzo, 2016

[versió en Català]

Desde que se empezaron a estudiar los sistemas de dinero electrónico hacia los años 80, una de las problemáticas más complicadas de resolver ha sido el doble gasto (double-spending), es decir, evitar que una moneda digital pueda gastarse más de una vez. La facilidad y sencillez con la que la información digital se puede replicar hace que esta propiedad sea una de las más complicadas de lograr.

Logo de bitcoin. Fuente: Wikipedia - Licencia: Dominio público
Logo de bitcoin. Fuente: Wikipedia – Licencia: Dominio público

Explicado de forma muy simplista, los bitcoins resuelven el problema del sobre-gasto anotando en un registro único todas las transacciones del sistema. Si este registro se puede mantener de forma íntegra sin que las transacciones inseridas se puedan modificar, en todo momento todo el mundo puede consultar el registro para saber cuál es el estado de cuentas de cualquier dirección de bitcoins y, por lo tanto, cuántos bitcoins de saldo tiene cada dirección. De este modo, nadie puede gastar más del que tiene, puesto que todo el mundo lo puede verificar en cada momento, y el sistema evita así el sobre-gasto. Este registro único es lo que se denomina blockchain.

Afortunadamente, el sistema bitcoin no fue propuesto en el ámbito académico, puesto que la idea hubiera sido rechazada frontalmente por la comunidad científica por, digámoslo suavemente, inocente. Fijémonos que proponer un sistema de moneda electrónica que pretende ser global utilizando un único registro que guarda absolutamente todas las transacciones no parece una idea muy interesante cuando pensamos en la escalabilidad del sistema. Cómo decíamos, el sistema bitcoin no fue propuesto en el ámbito académico sino que fue directamente desarrollado y puesto en marcha, de forma que nadie cuestionó este sistema de prevención del doble gasto.

A pesar de este detalle en la manera de prevenir el doble gasto, es indudable que los bitcoins han introducido una serie de mecanismos gracias a los cuales se ha podido crear la primera moneda digital segura y completamente distribuida, que no necesita de ninguna entidad central de confianza y que permite cierto nivel de anonimato en los pagos. Estas características son las que han permitido a los bitcoins situarse en su punto actual, con una capitalización de casi 6.500 millones de dólares.

Ahora bien, como ya hemos dicho, los problemas de la decisión del sistema de registro único son problemas de escalabilidad y es justamente ahora, cuando el volumen de transacciones empieza a crecer y los bitcoins están ya consolidados, cuando el escalabilidad del sistema se vuelve crítica. Si los bitcoins quieren ser un sistema de pago utilizado de forma global hará falta que implementen soluciones escalables.

El escalabilidad de los bitcoins se puede analizar desde dos ópticas, que en el fondo acaban convergiendo. La primera hace referencia a la velocidad a la que podemos escribir en el registro único, es decir la velocidad a la que se incluyen nuevos bloques en la blockchain. La segunda hace referencia al tamaño que va adquiriendo la blockchain. Cómo decíamos, ambas acaban convergiendo puesto que es evidente que la velocidad a la que podemos escribir en la blockchain nos determina su crecimiento.

La velocidad de escritura en la blockchain determina la capacidad del sistema para procesar transacciones, puesto que en el sistema bitcoin, una transacción no se puede considerar realizada hasta que no aparezca en la blockchain. En la actualidad las comparaciones de la velocidad de procesado de transacciones del sistema de bitcoins con otros sistemas de pago son poco favorables al primero. Así, mientras que VISA puede procesar más de 56.000 transacciones por segundo el sistema de bitcoin puede procesar, como mucho, 7 transacciones por segundo. Siete, sí, sin ningún cero.

Por otro lado, aun con esta modesta velocidad de procesado de transacciones, en la actualidad, la blockchain tiene un tamaño de 62 GB, hecho que empieza a generar algunos problemas de memoria en las máquinas de los usuarios que guardan toda la cadena, además de complicar las búsquedas y validaciones sobre este volumen de información.

Fuente: BTC Keychain @ Flickr - Licencia: CC BY 2.0
Fuente: BTC Keychain @ Flickr – Licencia: CC BY 2.0

Desde hace unos meses, la comunidad alrededor de los bitcoins debate sobre cuál es el mejor mecanismo para escalar el sistema, centrando los esfuerzos en aumentar el volumen de transacciones por segundo que el sistema puede procesar. El tamaño de la blockchain ha pasado a segundo plano puesto que en la última actualización del cliente de referencia del monedero de bitcoin, se implementa un sistema de poda de la blockchain que permite a los monederos no tener que guardar (a pesar de que sí que lo tienen que descargar) toda la blockchain, consiguiendo que el espacio que ocupa la información necesaria sea de sólo 2 GB.

Para aumentar el volumen de transacciones que se procesan por segundo, hay que aumentar la velocidad de escritura de las transacciones a la blockchain. La complejidad de los bitcoins permite que este aumento se pueda producir de diferentes maneras pero todas ellas tienen consecuencias, a menudo no evidentes, sobre la seguridad y la descentralización del sistema. Por ejemplo, se podrían incluir bloques a la blockchain en intervalos de tiempos menores a los 10 minutos, tiempo que se utiliza en la actualidad, o bien aumentar el tamaño de los bloques que se incluyen en la blockchain para incluir más transacciones. También se podría intentar reducir la información de cada transacción que se incluye en un bloque, reduciendo la medida de la transacción y, por lo tanto, aumentando el número de transacciones que permite el bloque. Y yendo más allá, también se podría utilizar un nuevo tipo de transacciones que, procesándose en paquete, no precisen aparecer individualizadas en la blockchain, sino que sólo necesiten ser incluidas en una única transacción conjunta.

Todas estas propuestas, y alguna más, se están analizando y debatiendo en la actualidad y son las que llenan Twitter, los foros y las páginas web tanto de usuarios de bitcoins como de empresas que se dedican al tema. Cómo siempre pasa en todos los ámbitos de la vida, las soluciones más sencillas de implementar comportan problemas colaterales mientras que las más complejas, a pesar de comportar beneficios importantes tanto en la velocidad de procesado de las transacciones como en el tamaño de la blockchain, requieren más tiempo tanto de implementación como para analizar su viabilidad real.

J. Herrera Joancomartí es licenciado en matemáticas por la Universitat Autònoma de Barcelona (UAB) y Doctor por la Universitat Politècnica de Catalunya (UPC). Es profesor del Departamento de Ingeniería de la Información y les Comunicaciones de la UAB y coordina el programa de doctorado de Informática de la UAB. También es profesor colaborador de la asignatura de criptografía en el Grado de Ingeniería Informática de la UOC.

 

Des que es van començar a estudiar els sistemes de diners electrònics cap als anys 80, una de les problemàtiques més complicades de resoldre ha estat la sobre-despesa (double-spending), és a dir, prevenir que una moneda digital pugui gastar-se més d’una vegada. La facilitat i senzillesa amb la que la informació digital es pot replicar fa que aquesta propietat sigui una de les més complicades d’assolir.

Logo de bitcoin. Font: Wikipedia - Llicència: Domini públic
Logo de bitcoin. Font: Wikipedia – Llicència: Domini públic

Explicat de forma molt simplista, els bitcoins resolen el problema de la sobre-despesa anotant en un registre únic totes les transaccions del sistema. Si aquest registre es pot mantenir de forma íntegra sense que les transaccions inserides es puguin modificar, en tot moment tothom pot consultar el registre per saber quin és l’estat de comptes de qualsevol adreça de bitcoins i, per tant, quants bitcoins de saldo té cada adreça. D’aquesta manera, ningú no pot gastar més del que té, ja que tothom ho pot verificar en cada moment, i el sistema evita així la sobre-despesa. Aquest registre únic és el que s’anomena blockchain.

Afortunadament, el sistema bitcoin no va ser proposat en l’àmbit acadèmic, ja que la seva proposta hagués estat refusada de ple per la comunitat científica per, diguem-ho suaument, innocent. Fixem-nos que proposar un sistema de moneda electrònica que pretén ser global utilitzant un únic registre que guarda absolutament totes les transaccions no sembla una idea gaire interessant quan pensem en l’escalabilitat del sistema. Com dèiem, el sistema bitcoin no va ser proposat en l’àmbit acadèmic sinó que va ser directament desenvolupat i posat en marxa, de manera que ningú no va qüestionar aquest sistema de prevenció de sobre-despesa.

Malgrat aquest detall en la manera de prevenir la sobre-despesa, és indubtable que els bitcoins han introduït un seguit de mecanismes gràcies als quals s’ha pogut crear la primera moneda digital segura i completament distribuïda, que no necessita de cap entitat central de confiança i que permet cert nivell d’anonimat en els pagaments. Aquestes característiques són les que han permès als bitcoins situar-se en el seu punt actual, amb una capitalització de gairebé 6.500 milions de dòlars.

Ara bé, com ja hem dit, els problemes de la decisió del sistema de registre únic són problemes d’escalabilitat i és justament ara, quan el volum de transaccions comença a créixer i els bitcoins estan ja consolidats, quan l’escalabilitat del sistema esdevé crítica. Si els bitcoins volen ser un sistema de pagament utilitzat de forma global caldrà que implementin solucions escalables.

L’escalabilitat dels bitcoins es pot analitzar des de dues òptiques, que en el fons acaben convergint. La primera fa referència a la velocitat a la que podem escriure en el registre únic, és a dir la velocitat a la que s’inclouen nous blocs a la blockchain. La segona fa referència a la mida que va adquirint la blockchain. Com dèiem, ambdues acaben convergint ja que és evident que la velocitat a la que podem escriure en la blockchain ens determina el seu creixement.

La velocitat d’escriptura a la blockchain determina la capacitat del sistema per processar transaccions, ja que en el sistema bitcoin, una transacció no es pot considerar realitzada fins que no aparegui a la blockchain. En l’actualitat les comparacions de la velocitat de processat de transaccions del sistema de bitcoins amb altres sistemes de pagament són poc favorables al primer. Així, mentre que VISA pot processar més de 56.000 transaccions per segon el sistema de bitcoin pot processar, com a molt, 7 transaccions per segon. Set, sí, sense cap zero.

D’altra banda, tot i aquesta modesta velocitat de processat de transaccions, en l’actualitat, la blockchain té una mida de 62 GB, fet que comença a generar alguns problemes de memòria en les màquines dels usuaris que guarden tota la cadena, a més de complicar les cerques i validacions sobre aquest volum d’informació.

Font: BTC Keychain @ Flickr - Llicència: CC BY 2.0
Font: BTC Keychain @ Flickr – Llicència: CC BY 2.0

Des de fa uns mesos, la comunitat al voltant dels bitcoins debat sobre quin és el millor mecanisme per escalar el sistema, centrant els esforços en augmentar el volum de transaccions per segon que el sistema pot processar. La mida de la blockchain ha passat a segon pla ja que en la darrera actualització del client de referència del moneder de bitcoin , s’implementa un sistema de poda de la blockchain que permet als moneders no haver de guardar (tot i que sí que l’han de descarregar) tota la blockchain, aconseguint que l’espai que ocupa la informació necessària sigui de “només” 2 GB.

Per tal d’augmentar el volum de transaccions que es processen per segon, cal augmentar la velocitat d’escriptura de les transaccions a la blockchain. La complexitat dels bitcoins permet que aquest augment es pugui produir de diferents maneres però totes elles tenen conseqüències, sovint no evidents, sobre la seguretat i la descentralització del sistema. Per exemple, es podrien incloure blocs a la blockchain en intervals de temps menors als 10 minuts, temps que s’utilitza en l’actualitat, o bé augmentar la mida dels blocs que s’inclouen en la blockchain per incloure-hi més transaccions. També es podria intentar reduir la informació de cada transacció que s’inclou en un bloc, reduint la mida de la transacció i, per tant, augmentant el número de transaccions que permet el bloc. I anant més enllà, també es podria utilitzar un nou tipus de transaccions que, processant-se en paquet, no precisin aparèixer individualitzades en la blockchain, sinó que només necessitin ser incloses en una única transacció conjunta.

Totes aquestes propostes, i alguna més, s’estan analitzant i debatent en l’actualitat i són les que omplen Twitter, els fòrums i les pàgines webs tant d’usuaris de bitcoins com d’empreses que s’hi dediquen. Com sempre passa en tots els àmbits de la vida, les solucions més simples d’implementar comporten problemes col·laterals mentre que les més complexes, tot i comportar beneficis importants tant en la velocitat de processat de les transaccions com en la mida de la blockchain, requereixen més temps tant d’implementació com per analitzar-ne la seva viabilitat real.

J. Herrera Joancomartí és llicenciat en matemàtiques per la Universitat Autònoma de Barcelona (UAB) i Doctor per la Universitat Politècnica de Catalunya (UPC). És professor del Departament d’Enginyeria de la Informació i les Comunicacions de la UAB i coordina el programa de doctorat d’Informàtica de la UAB. També és professor col·laborador de l’assignatura de criptografia al Grau d’Enginyeria Informàtica de la UOC.

(Visited 13 times, 1 visits today)
Autor / Autora
Comentarios
Nilo13 septiembre, 2018 a las 4:18 am

No hay duda de que las criptomonedas crean debates y tendencia.

Responder
Deja un comentario