Es posible que algunas personas definan la cadena de bloques (blockchain) como una base de datos descentralizada, después de todo siempre suele alabarse la descentralización como una característica importante de la tecnología blockchain. Sin embargo, esta afirmación no es del todo cierta, ya que existen importantes diferencias a la hora de almacenar datos en la blockchain y en una base de datos descentralizada.
Bases de datos centralizadas, descentralizadas y distribuidas
Pero antes de explicar las diferencias entre una base de datos descentralizada y una distribuida, quizás sea mejor empezar describiendo las bases de datos centralizadas. Estas son aquellas que mantienen todos los datos en una única computadora, ubicación y para acceder a la información se debe ingresar a la computadora principal del sistema, conocida como “servidor”. Un ejemplo de base de datos centralizada son las que se llevan en una computadora personal y son creadas y mantenidas por el usuario de dicha computadora, son generalmente usadas en empresas u organizaciones, donde si es necesario compartir datos con otros usuarios se puede hacer a través de un servidor de la red local en la cual pueden acceder otros usuarios.
Teniendo esto claro, podemos entender que una base de datos descentralizada consiste en una serie de computadoras y servidores que se encuentran en distintos lugares geográficos, los datos no se almacenan en un solo lugar, sino que están almacenados en una serie de servidores distintos que proveen de información a los clientes. Funcionan como un grupo de bases de datos independientes sin conexiones lógicas entre ellas y que no están totalmente interconectadas mediante una red de comunicaciones. Un buen ejemplo de este tipo de base de datos es Informix, el servicio de almacenamiento en la nube de IBM que almacena datos en una variedad de servidores, para tener respaldada su información ante cualquier incidente.
Por otra parte, una base de datos distribuida funciona como una única base de datos lógica que está instalada en una serie de computadoras (nodos) ubicadas en diferentes lugares geográficos y que no están conectadas a una única unidad de procesamiento, pero si están totalmente conectadas entre sí a través de una red de comunicaciones. En este sistema todos los nodos contienen información y todos los clientes del sistema están en condición de igualdad. De esta forma las bases de datos distribuidas pueden realizar procesamientos autónomos. El ejemplo que más rápido viene a la mente en este caso es la blockchain, pero existen otras populares bases de datos distribuidas, como Spanner, una base de datos creada por Google.
Fuente: «A city is not a tree» Christopher Alexander
Tanto las bases de datos descentralizadas como las distribuidas, almacenan información en una serie de computadoras, pero la diferencia clave es que las distribuidas funcionan como una única base de datos que está instalada en un grupo de computadoras interconectadas totalmente mediante una red de comunicaciones, mientras que las descentralizadas funcionan como un grupo de bases de datos independientes y no están totalmente interconectadas mediante una red de comunicaciones.
¿Y la Blockchain?
Entonces, la Blockchain es una base de datos distribuida en la que la información está almacenada por todos los nodos que soportan esta red. Pero entonces, ¿Qué tan descentralizada es la blockchain?, quizás sea mejor citar las palabras de Vitalik Buterin, fundador de Ethereum.
Las blockchains están políticamente descentralizadas (nadie las controla) y arquitectónicamente descentralizadas (no hay un punto de fallo central infraestructural) pero están lógicamente centralizadas (hay un estado comúnmente acordado y el sistema se comporta como una sola computadora).
Vitalik Buterin
Fundador y desarrollador
Ventajas y desventajas de las bases de datos centralizadas, descentralizadas y distribuidas
Las bases de datos centralizadas, descentralizadas y distribuidas tienen distintas características y, asimismo, tienen diferentes ventajas y desventajas. Por ejemplo, las bases de datos centralizadas son las más fáciles de mantener ya que presentan sólo un punto de fallo, este no es el caso con las descentralizadas y las distribuidas, que en teoría son más difíciles de mantener.
Las bases de datos centralizadas son muy poco estables, ya que cualquier problema que afecte al servidor central puede generar caos en todo el sistema. Pero las bases de datos descentralizadas al no depender totalmente de un servidor central pueden evitar este problema, y las bases de datos distribuidas son las más estables de todas al almacenar la totalidad de la información del sistema en un gran número de nodos que mantienen condiciones de igualdad entre sí.
Esta misma característica es la que otorga a las bases de datos distribuidas un mayor nivel de seguridad, ya que para llevar a cabo ataques maliciosos se tendría que atacar a una gran cantidad de nodos al mismo tiempo. Como la información está distribuida entre los nodos de la red: en este caso si se hace algún cambio legítimo se verá reflejado en el resto de nodos del sistema que aceptarán y verificarán la nueva información; pero si se hace algún cambio ilegítimo el resto de los nodos lo podrán detectar y no validarán esta información. Este consenso entre nodos protege la red de ataques deliberados o de cambios accidentales de información.
En este mismo sentido, los sistemas descentralizados presentan mayor seguridad que los centralizados, ya que no almacenan toda la información en un solo lugar por lo que en caso de un ataque la cantidad de información que se vería comprometida disminuye significantemente, el atacante tendría que invadir todas las computadoras del sistema para poder tener el control total. Con los sistemas centralizados solo es necesario atacar el servidor principal para comprometer todo el sistema.
Además, tanto los sistemas descentralizados como los distribuidos tienen una ventaja con respecto los sistemas centralizados en términos de velocidad de la red, ya que como la información no está almacenada en un lugar central es menos probable que ocurra un cuello de botella, en el cual la cantidad de personas que intentan acceder a un servidor es mas grande de lo que este puede soportar, causando tiempos de espera y ralentizando el sistema.
Asimismo, los sistemas centralizados tienden a presentar problemas de escalabilidad ya que la capacidad del servidor es limitada y no puede soportar un tráfico infinito. Los sistemas descentralizados al almacenar la información en más de una computadora central presentan una escalabilidad potencialmente mayor, y los sistemas distribuidos presentan una escalabilidad aún mayor debido a la gran cantidad de nodos que soportan la red. Hay que tomar en cuenta que la tecnología blockchain está en desarrollo aún, por lo que debe solucionar los problemas de escalabilidad inherentes a cada una. El crecimiento de la adopción a nivel global representará nuevos desafíos en este sentido.
Ventajas de blockchain
Existen otros tipos de bases de datos distribuidas además de la blockchain, de hecho, el consenso y la inmutabilidad de los datos no son características únicas de la blockchain, existen otras bases de datos distribuidas que también cuentan con estas características. Tales como, Paxos, Raft, Googlge HDFS, Zebra, CouchDB, Datomic, entre otras.
Pero existen dos características que realmente diferencian a la blockchain del resto de bases de datos: el control de acceso de escritura y lectura de datos está verdaderamente descentralizado, a diferencia de otras bases de datos distribuidas donde está centralizado lógicamente, y la capacidad de asegurar transacciones sin necesidad de terceros de confianza en un entorno competitivo.
Las blockchain tiene unas características únicas sobre el resto de bases de datos disponibles, sin embargo, esto no significa que para todos los casos posibles de almacenamiento de datos la mejor opción sea siempre usar la blockchain, esto en realidad depende de las necesidades y requerimientos que tenga una empresa u organización a la hora de usar una base de datos. Pero si lo que se busca es una configuración de almacenamiento en la que los datos estén fácilmente disponibles, bajando los costos operativos al distribuirlos entre los nodos que operan el sistema, donde nunca habría que modificar los datos pasados y quisiera tener un registro permanente de ellos, y si los datos deben ser inmutables y de acceso totalmente público, entonces la respuesta es la blockchain.