Sunteți pe pagina 1din 9

Felipe Javier Medina Aguayo

The University of Warwick


Doctorado en Matemáticas y Estadística
f.j.medina-aguayo@warwick.ac.uk

SEGURIDAD EN MONEDAS VIRTUALES: EL CASO DE LAS BITCOINS

1. Introducción

En 2008, un artículo publicado con el pseudónimo de Satoshi Nakamoto presentó la propuesta de una
moneda digital o criptomoneda (crypto-currency en inglés), llamada bitcoin [1]. La motivación fue
crear un sistema de pagos que permitiera a las dos partes (comprador y vendedor) realizar
transacciones sin la necesidad de un tercero (institución financiera) que las valide.
El sistema de bitcoins utiliza tecnología “peer-to-peer” (P2P) para su operación y ya que no
requiere la intervención de una autoridad central, el manejo y emisión de esta moneda se lleva a cabo
colectivamente por la red que lo conforma. Este sistema es de código abierto (open-source en inglés),
lo cual significa que es de orden público ya que nadie es dueño ni ejerce control sobre este. Lo más
notable es que hoy en día este sistema de pagos es un hecho, y el valor de mercado de las bitcoins
representa más de 4 mil millones de dólares [2].
Entre las ventajas atribuidas a las bitcoins se encuentran la facilidad de enviar dicha moneda de
una persona a otra a través de la red de manera anónima y sin la necesidad de un intermediario, esto
claramente reduce las comisiones de manera significativa. Además, por ser una moneda única puede
usarse de manera global y por cualquier persona, ya que no hay prerrequisito alguno para su
utilización.
Por otro lado, el uso de bitcoins también representa ciertos riesgos. Cada una de las transacciones
realizadas con bitcoins es irreversible y ya que no existe alguna autoridad que controle el sistema, su
uso está expuesto a hackeos de cuentas, los cuales han ocurrido en varias ocasiones durante los
últimos años [3]. Aún más, el hecho de ser un sistema con participantes anónimos ha llamado la
atención respecto a su uso en temas de evasión de impuestos, lavado de dinero y mercado negro [4].
En una moneda tradicional (también llamada moneda fiduciaria) una autoridad, usualmente un
banco central, es la encargada de asignarle valor. Sin embargo el valor de dicha moneda se basa en la
fe o confianza de la comunidad, ya que no se respalda por metales preciosos ni por una promesa de
pago por parte de la autoridad emisora. En otras palabras, el dinero posee valor porque los
participantes en el sistema así lo consideran y confían en la autoridad monetaria. Con las bitcoins
sucede lo mismo, lo único que respalda el valor de esta criptomoneda es la confianza y creencia por
parte de sus usuarios de que posee valor.
De igual forma un banco central es el encargado de emitir papel moneda dependiendo de las
condiciones económicas, como inflación, desempleo, etc. En contraste, las bitcoins son generadas
matemáticamente mediante un proceso llamado minería (mining en inglés), ya que no existe una
autoridad regulatoria. Aún más, el sistema de bitcoins ha sido diseñado de modo que el número total
de estas jamás sobrepasará los 21 millones, cantidad que será alcanzada en 2040. Llegado este punto,
no se podrán generar más bitcoins y por ende las ya existentes no podrán devaluarse.
A pesar de las consecuencias económicas y culturales que las bitcoins conllevan, este sistema
representa un reto importante en cuestiones tecnológicas y de seguridad. La seguridad en las
transacciones recae en el uso de encriptación de llaves que funciona relacionando matemáticamente
una llave publica y una privada [5]. Este proceso provee un cierto nivel de seguridad contra robo,
pero no provee certeza contra un fraude, ya que no hay autoridad alguna que lleve un registro.
En otras palabras, la entidad que recibe cierto número de bitcoins no puede asegurar que estas no
hayan sido utilizadas en alguna otra transacción, tal y como sucede con un cheque sin fondos. La
solución al problema es relativamente simple, todos los participantes del sistema deben estar de
acuerdo en cuantas bitcoins tiene cada uno en todo momento. Para ello se lleva y se mantiene un
registro público y único de operaciones el cual es definitivo e inalterable, en el cual quedan asentadas
todas las operaciones realizadas con bitcoins desde el nacimiento del sistema.
Pero si no hay una entidad central que regule el sistema, ¿cómo se mantiene dicho registro de
operaciones? Justamente el proceso minería está relacionado con dicha actualización, que para
términos prácticos se denomina cadena de bloques (block chain en inglés), ya que cada bloque
contiene un número de transacciones realizadas con bitcoins y a la vez apunta a otro bloque dentro
de una cadena. Así pues, este proceso tiene como objetivo añadir nuevos bloques a la cadena
inalterable de transacciones, con lo cual se puede verificar el número de bitcoins de cada participante
en cada momento.
El proceso de minería fue diseñado para ser computacionalmente intensivo, ya que requiere
solucionar un problema matemático de alta complejidad. Como consecuencia aquel usuario o
conjunto de usuarios que tienen éxito en añadir un nuevo bloque a la cadena son recompensados con
cierto número de bitcoins, siendo así como se generan nuevas bitcoins en el sistema.
Sin embargo el posible riesgo doble gasto, equivalente a un cheque sin fondos, aún está presente
ya que el tiempo promedio que toma añadir un bloque es cercano a los 10 minutos. Debido a ello se
recurre a la teoría de probabilidad para cuantificar la posibilidad de un posible fraude. Entre estos
destacan el ataque carrera, el ataque Finney y el ataque del 51%. Esto ha llevado a explorar buenas
prácticas y diferentes alternativas para mejorar la seguridad. En particular, la creación de otras
monedas virtuales ha surgido, tal como las litecoins, cuyo sistema actualiza la cadena de bloques cada
2.5 minutos en lugar de 10, disminuyendo así el riesgo de doble gasto [6].
La presente ponencia busca presentar de forma simple las técnicas relacionadas con la seguridad
de las monedas virtuales, en particular de las bitcoins. Desde un punto de vista matemático, es
importante entender el funcionamiento del sistema de pagos con bitcoins, pero aún más importante
es establecer y analizar buenas prácticas para disminuir la posibilidad de fraude entre los
participantes.
El presente documento se divide de la siguiente manera, en la sección 2 se presenta con detalle el
funcionamiento de las llaves públicas y privadas con las cuales se realizan operaciones entre bitcoins.
En la tercera sección se presenta el caso de la empresa MtGox, la cual se declaró recientemente en
bancarrota al haber perdido un número significativo de bitcoins. El proceso de minería es abordado
en la cuarta sección, mientras que la quinta puntualiza algunos ataques teóricamente posibles,
finalizando con algunas conclusiones y comentarios.

2. Criptografía asimétrica

El sistema de bitcoins utiliza un sistema de claves asimétrico compuesto por una llave o clave pública
y una privada. En este sistema todo usuario usa dicho par de claves para el envió de un mensaje, en
este caso para realizar una transacción.
Como se puede inferir por el nombre, cuando una clave es publica se puede enviar y mostrar a
cualquier persona. En contraste, la llave privada debe ser resguardada por su propietario para que
nadie tenga acceso a ella. Más aun, el método criptográfico usado debe garantizar que esta pareja de
claves se generen una sola vez, de modo que no haya dos usuarios con una misma clave.
Estas dos claves tienen como función encriptar y descifrar mensajes. Supongamos que el sujeto A
desea enviar un mensaje encriptado al sujeto B, para ello A le pide a B su llave publica con la cual
puede encriptar el mensaje. Una vez que B recibe el mensaje encriptado, utilizara su llave privada
para poder descifrarlo. Ya que solo él conoce su llave privada, que es la única llave que puede
descifrar el mensaje, se garantiza que el mensaje ha viajado de forma segura.
De igual manera, el par de claves permiten firmar mensajes digitalmente. Digamos que el sujeto
B desea firmar un mensaje y el sujeto A desea confirmar la autenticidad de dicho mensaje. Esto se
logra cifrando el mensaje con la llave privada de B y cualquiera que tenga acceso a su llave pública
podrá identificar y autentificar dicho mensaje.
En el contexto de las bitcoins, en lugar de enviar un mensaje se realiza una transacción utilizando
una dirección de pago. Cuando el sujeto A desea enviar bitcoins a B, A firma digitalmente dicha
dirección de pago con la llave publica de B y solo B puede utilizarlas ya que es el único que cuenta
con la llave privada.
Para la encriptación de transacciones se utiliza una función “hash”, que es no es más que una
función matemática prácticamente imposible de invertir [7]. El insumo de esta función es
generalmente un mensaje, mientras que la salida, llamado valor hash, es una cadena de caracteres de
longitud definida. Además de la propiedad de no invertibilidad, es deseable que el valor de una
función hash sea difícil de predecir, incluso ante pequeñas variaciones en el mensaje de entrada. En
la siguiente figura podemos apreciar varios ejemplos:

El sistema de bitcoins utiliza el algoritmo hash SHA-256, el cual fue desarrollado por la NSA
(Agencia de Seguridad Nacional) de Estados Unidos. Este algoritmo pertenece a una familia de
algoritmos con características similares. El número 256 se refiere a la longitud en bits del valor hash
que arroja la función. De este modo, el número total de combinaciones necesarias para encontrar una
clave es de 2^256, que en términos prácticos es un número mayor al número total de átomos en el
universo observable [8].
El uso de este tipo de criptografía permite la existencia del anonimato hasta un cierto grado. De
hecho, el sistema de bitcoins podría considerarse pseudoanónimo, ya que mientras nadie tenga
presente a quien pertenece cierta clave pública no hay forma de ligar a una persona o entidad con
dicha llave. De este modo, uno debe ser cauto al distribuir la llave pública para no ser ligado a dicha
cuenta.
Así como una cuenta bancaria ordinaria, entre las buenas prácticas para proteger una cuenta de
bitcoins se encuentran [9]:
 No tener cantidades fuertes de dinero en cuentas expuestas a ambientes vulnerables, como
aquellas que se manejan online o por medios móviles.
 Es preferible tener varias cuentas en distintos ambientes y realizar transferencias entre ellas
para minimizar el riesgo de un robo.
 Tener diversos respaldos de las cuentas en diversos medios, tal y como sucede con archivos
de gran importancia almacenados en computadoras.
 Utilizar cuentas manejadas offline, estas propiamente están almacenadas en dispositivos que
no permiten la instalación de ningún programa.
 Emplear un sistema que utilice múltiples llaves privadas para realizar una transacción, esto
puede ser útil para una empresa que requiera permiso de varios miembros de la organización.

3. MtGox

Uno de los ataques más graves y conocidos hasta ahora es el caso de MtGox, empresa fundada por
Mark Karpeles [10]. MtGox fue la primera bolsa de valores en la cual individuos podían comprar y
vender bitcoins, tal y como sucede en una bolsa de valores ordinaria. A pesar de que MtGox fue en
su momento la bolsa más grande y popular, hoy en día ha desaparecido.
El primer ataque registrado a MtGox ocurrió en junio de 2011, cuando un hacker, utilizando
credenciales de acceso de un auditor en MtGox, realizo la venta de un gran número de bitcoins
pertenecientes a una cuenta. Esto ocasiono que el precio unitario de las bitcoins cayera de 32USD a
meros centavos de dólar [3].
Tras este evento, tomo alrededor de 18 meses para que el precio de las bitcoins se volviera a
fortalecer. Sin embargo, durante el año 2013, MtGox empezó a perder liquidez ya que sustanciales
sumas de dinero le fueron embargadas por la FED debido a problemas regulatorios [10]. Aun más,
en agosto de ese año, MtGox anuncio que había incurrido en pérdidas significativas ya que se habían
acreditado depósitos que no habían sido del todo verificados, restringiendo así la acreditación
inmediata de nuevos depósitos. Debido a los problemas de MtGox para mover dinero a sus clientes
en EUA, para noviembre de 2013 miles de ellos manifestaron su inconformidad con la larga espera
para realizar retiros en efectivo desde sus cuentas.
El 7 de febrero de 2014 MtGox detuvo todos los retiros con bitcoins y argumento que existía un
error en el software que permitía la maleabilidad de las transacciones. Específicamente, este error
permitía que un usuario de la red alterara los detalles en transacciones, de modo que pareciera que el
envió de bitcoins a una determinada cuenta no se hubiera realizado cuando en realidad si se había
hecho.
Días después Mark Karpeles renuncio a su puesto en la junta fundadora de bitcoins, mientras que
MtGox suspendió toda actividad de intercambio. Un supuesto documento interno que circula en
internet indicaba que la compañía era insolvente después de haber perdido alrededor de 750 mil
bitcoins, debido a un robo que había estado sucediendo sin ser detectado durante años [11].
El 28 de febrero MtGox se declaró en quiebra con pasivos por 64 millones de dólares confirmando
la pérdida de casi 750 mil bitcoins de sus clientes y alrededor de otras 100 mil propias, las cuales
representaban el 7% del total de bitcoins en existencia. Un mes después, MtGox reporto haber
encontrado alrededor de 200 mil bitcoins en una cuenta antigua de 2011, de modo que el total perdido
se reducía a 650 mil bitcoins.
Ciertamente existen teorías alternativas de lo que realmente sucedió [11]. Entre ellas se cree que
todo este evento fue un fraude premeditado por Karpeles y sus asociados, aunque no hay información
clara que la respalde. Independientemente de la verdad, es claro que este tipo de eventos restan
confianza al sistema de bitcoins. Si bien es cierto que los participantes actuales tienen un alto riesgo
al adoptar bitcoins, casos como el de MtGox generan mayor resiliencia en posibles nuevos usuarios
de adoptar la criptomoneda.

4. Minería de bitcoins

Como se mencionó anteriormente, la minería de bitcoins está relacionada con el mantenimiento de la


cadena de bloques y con la generación de nuevas bitcoins. Las personas o grupos de personas
dedicadas a este proceso se les denomina mineros y a grandes rasgos la minería consiste en tomar un
número de transacciones, agruparlas en un nuevo bloque y añadirlo a la cadena definitiva de bloques.
Cada bloque consta de un valor hash el cual estará ligado al bloque siguiente y al anterior. Para la
creación de un nuevo bloque se utilizan, entre otros datos, el valor hash del último bloque en la
cadena, el valor hash de un cierto número de transacciones no confirmadas (el minero tiene la libertad
de incluir cualquier número de transacciones) y un número en secuencia denominado “nonce”. Toda
esta información se encripta con lo cual se obtiene un nuevo valor hash, el cual es comparado con un
valor hash objetivo. Si el valor del primero es menor o igual al segundo entonces el bloque es añadido
al final de la cadena [12].
El valor hash objetivo se establece automáticamente de modo que en promedio se añada un bloque
cada 10 minutos. Además, en caso de que el valor hash del nuevo bloque sea mayor al objetivo, el
minero tiene la libertad de incrementar el valor del “nonce”, con lo cual obtiene un valor hash
completamente diferente. Este proceso continuara hasta que algún minero logre añadir un bloque
nuevo, es decir hasta que algún minero logre encontrar un valor hash menor al objetivo. Una vez
añadido el bloque a la cadena, se envía esta información a otros nodos en la red de bitcoins, quienes
validan el recién creado bloque, para así generar un consenso y estar de acuerdo que el último bloque
es ahora el recién integrado.
En ocasiones puede suceder que dos bloques se añadan a la cadena casi simultáneamente, en este
caso la cadena contará con dos vertientes. Esto se corrige automáticamente cuando un nuevo bloque
es añadido a alguno de los dos últimos bloques, de modo que el bloque truncado se considera inválido
y todas las transacciones dentro de él regresan al conjunto de transacciones por confirmar [13].
Ya que añadir un nuevo bloque a la cadena requiere tiempo y energía de procesamiento, el
incentivo está dado por la recompensa de cierto número de bitcoins (25 al momento) y por cualquier
comisión cobrada por los mineros. Por el momento el mayor incentivo es el número de bitcoins
generadas, pero cuando se hayan generado en su totalidad, las comisiones cobraran mayor
importancia.
Como se mencionó antes, la dificultad del proceso de minería se va ajustando en cada momento
para mantener la concatenación de bloques en aproximadamente 1 cada 10 minutos. De este modo
entre más mineros haya, más difícil será para cada uno concatenar un bloque pero, bajo la misma
premisa, será más difícil que un ataque se presente.
Al respecto, inicialmente la minería podía ser realizada por cualquier persona interesada desde la
comodidad de su computadora personal, sin embargo hoy en día este proceso es de tal magnitud (en
términos computacionales) que se requieren máquinas y procesadores especialmente diseñados para
minar bitcoins. Adicionalmente, se han creado grupos de mineros donde múltiples usuarios
contribuyen a la concatenación de un bloque y, en caso de tener éxito, se dividen la ganancia acorde
a la contribución en el procesamiento [14].

5. Ataques teóricos.

Uno de los ataques que pueden presentarse comúnmente sin las medidas de seguridad pertinentes es
el ataque carrera [15]. Este consta básicamente de un doble gasto cuando un usuario emite dos
diferentes órdenes de pago, a pesar de tener solo el número de bitcoins para una de ellas. Cuando una
de ellas se incorpora a algún bloque en la cadena, la otra será automáticamente rechazada en un bloque
posterior. De este modo es aconsejable esperar a tener la confirmación de que la transacción se
añadido satisfactoriamente a un bloque.
El ataque de Finney, nombrado por su descubridor Hal Finney, ocurre de manera similar, pero
requiere la participación de algún minero deshonesto [15]. Supongamos que un minero realiza una
transacción, pero sin tener la cortesía de informar al resto de la red sobre esta transacción, y además
consigue añadir dicha transacción a un bloque. Justo antes de informar sobre la aparición del nuevo
bloque al resto de la red, envía otra transacción fraudulenta la cual será invalidada eventualmente.
Nuevamente, este ataque es evitado al esperar que una transacción haya sido agregada a un bloque en
la cadena. Aun más, se aconseja esperar al menos la creación de 5 bloques más (6 en total) para que
la transacción se considere “definitiva”.
En relación con el número de mineros realizando este proceso existe el ataque del 51%. Este asume
que si un minero malicioso tuviera el control de la red (con más del 50% del poder computacional),
entonces existe una probabilidad no despreciable de que casi todos los bloques provengan de este
minero. Este tipo de control permitiría al minero controlar que transacciones incluir en la cadena y
hasta revertir transacciones previas creando una nueva vertiente de la cadena desde un cierto bloque.
Este ataque no puede ser prevenido más que contando con una gran diversidad de mineros o grupos
de estos. Al día de hoy no existe grupo alguno controlando más del 30% del sistema [14].

6. Comentarios finales

El sistema de bitcoins, posiblemente creado a raíz de la severa crisis financiera empezada en 2008,
se basa en la tecnología P2P, sin el requerimiento de un intermediario o regulador para su
funcionamiento.
La seguridad y pseudoanonimato están garantizados por la criptografía asimétrica de llaves
públicas y privadas que el sistema maneja. Al respecto, el uso de algoritmos hash impide que una
llave privada sea encontrada al azar, ya que el tiempo que tomaría encontrarla no es viable. Aun así,
en la práctica existe el riesgo de posibles fraudes y ataques como el caso de MtGox.
La minería es un proceso complejo que permite el mantenimiento del sistema que también está
relacionado con la creación de bitcoins, al menos hasta el año 2040. Asimismo, la minería ha
contribuido a la creación de equipos y procesadores de alto poder computacional, ya que es
prácticamente imposible hacerlo en una computadora tradicional.
Finalmente, pese a que ataques al sistema son teóricamente posibles, la teoría de probabilidad nos
permite cuantificar dicho riesgo. Con ello es posible establecer mecanismos y buenas prácticas para
la viabilidad del sistema.

Referencias.
1. https://bitcoin.org/bitcoin.pdf
2. https://coinmarketcap.com/
3. http://www.theguardian.com/technology/2014/mar/18/history-of-bitcoin-hacks-alternative-
currency
4. http://www.coindesk.com/information/is-bitcoin-legal/
5. http://www.economist.com/blogs/economist-explains/2013/04/economist-explains-how-
does-bitcoin-work
6. https://litecoin.info/Comparison_between_Litecoin_and_Bitcoin/Alternative_work_in_progr
ess_version
7. http://mathworld.wolfram.com/CryptographicHashFunction.html
8. http://chriswenham.com/explainers/2013/12/1/how-bitcoin-works
9. https://bitcoin.org/en/secure-your-wallet
10. http://www.wired.com/2013/11/mtgox/all/
11. http://fusion.net/story/4947/the-mtgox-bitcoin-scandal-explained/
12. https://en.bitcoin.it/wiki/How_bitcoin_works
13. https://en.bitcoin.it/wiki/Block_chain
14. https://blockchain.info/pools
15. http://codinginmysleep.com/bitcoin-attacks-in-plain-english/
Referencias complementarias.
 https://en.bitcoin.it/wiki/Main_Page
 https://litecoin.info/Main_Page
 http://www.mtgox.com/
 Design and security analysis of Bitcoin infrastructure using application deployed on Google
Apps Engine. Piotr Piasecki. Master’s thesis, 2012.

S-ar putea să vă placă și