El mundo se mueve gracias a la confianza. Cuando pagamos en un establecimiento y nos devuelven el cambio; cuando nos subimos a un vehículo y circulamos con el resto de personas; o incluso cuando nos proporcionan información para realizar una tarea.
Normalmente, nos fiamos de que cualquier tipo de transacción que nos llegue sea auténtica, y si no, hacemos lo posible para comprobarlo. A veces, necesitamos de un intermediario para saber si la información o recurso que nos ha llegado son auténticos.
Cuando dicen que blockchain va a suponer la próxima gran revolución del siglo XXI es porque, por un lado, ha conseguido que esa confianza se extrapole de manera segura a la red. Por otro, lo ha hecho fulminando al intermediario. Más seguridad con menos recursos. Pero, ¿cómo es esto posible?
Así funcionan los bitcoins
La confianza también mueve el dinero. Su valor y puesta en circulación ya no está respaldado por las reservas de oro de una nación. Son números que figuran en un sistema.
Esos números se convierten en algo real y palpable cuando acudimos a un cajero. Su valor lo da la autoridad monetaria que emite los billetes y además, goza de la confianza de quienes lo aceptan como objeto de intercambio.
Ocurre algo bien distinto en una moneda virtual como es el caso de los bitcoins.
Los bitcoins son asignaciones a direcciones públicas. Se producen gracias a blockchain: cada vez que un nodo (miembro de la cadena) valida una transacción, este es recompensado con bitcoins. Es lo que popularmente se llama minería de datos.
Cada transacción contiene unos inputs. Se trata de información donde figuran las transacciones que el remitente ha hecho anteriormente y le sirve de aval a la hora de solicitar una nueva transacción.
Para llevar a cabo una transacción hace falta la dirección pública (que si empieza por 1 se trata de bitcoins, como forma de diferenciarse del resto de criptomonedas) y una clave privada. La clave privada es una secuencia de caracteres que genera el software que utiliza el usuario.
Algunos de los nodos (participantes en la comunidad de la cadena de bloques) llevan a cabo dos comprobaciones para validar la transacción:
- Que eres el auténtico proveedor de esa información. Esto se comprueba por medio de los inputs y de las bases de datos de las transacciones ya efectuadas. En bitcoins se entendería como que ese dinero se te ha destinado antes, por lo que impide que se falsifique.
- Que no has enviado esa información dos veces. Cada transacción es única e inalterable, lo que se traduciría en bitcoins como una comprobación de que no has gastado ese dinero anteriormente, por lo que impide que se duplique.
El doble gasto es lo que se interpretaría en el mundo real como la falsificación de dinero. Sin embargo, los procesos de comprobación evitan que los datos registrados se pueda adulterar.
Si durante el proceso de comprobación, los nodos que se encargan de validar el dato deducen que no es válido, este se rechaza, es decir no es registrado por los mineros y no pasa a formar parte de la cadena de bloques.
¿Qué es el ataque del 51%?
Hay que recordar que blockchain es una tecnología consensuada: los nodos que se encargan de verificar un bloque se ponen de acuerdo para hacerlo. De ahí surge una cuestión que pone en duda la seguridad de blockchain y por tanto, la de los bitcoins: ¿Qué pasaría si un conjunto de nodos se pusieran de acuerdo en validar un bloque falso?
Esto es lo que llaman el ataque del 51%. Se trataría de un atacante que tiene la intención de generar desconfianza en la cadena de bloques.
Para que esta hipotética situación se dé, Gavin Andresen (actual responsable del Proyecto Bitcoin) explica en su blog que el atacante ha de concentrar “un gran poder computacional” (más de la mitad de los recursos de la red), ya que como hemos visto, los nodos se encargan de verificar la validez de los bloques. El control de ese poder le permitiría al atacante:
- Reenviar transacciones ya registradas. Lo cual haría que se dupliquen y se añadan a la cadena de bloques.
- Evitar que se confirmen algunas o todas las transacciones.
- Evitar que algunos o todos los mineros validen bloques.
Andresen aclara que estas premisas carecen de sentido a nivel económico. Hace falta tal cantidad de equipos, así como capacidad de organización para poder llevar a cabo un ataque de este calibre, que resulta más rentable destinar los recursos a la minería de datos bajo las reglas que rigen blockchain.
Además, el propio código incluye una noción de prioridad. Esto es: las transacciones sencillas tienen más prioridad que las complejas. Esto evita el spam en las transacciones, es decir, enviarse a sí mismo transacciones de forma repetida.
Por el momento se pueden hacer transacciones sin pagar comisiones. En el caso de que se lleve a cabo un ataque donde hayan que comprobarse muchos datos, la prioridad decrecerá ya que requerirá de más recursos para validarlos. En caso de que se le quiera dar una prioridad alta, se deberá pagar una comisión acorde a la cantidad de peticiones que se realiza. De ahí que no sea rentable un ataque como este.
A pesar de que aparentemente todo está pensado a la hora de asegurar la tecnología blockchain, hay una larga lista de debilidades a los que se enfrentan tanto los encargados del proyecto bitcoin como los propios usuarios que usan esta tecnología.
Por último, aunque blockchain está llamada a ser la próxima tecnología que va a revolucionar nuestras vidas, por el momento hay mucho trabajo que hacer para popularizarla.[:]