¿Te gustaría poder escuchar este artículo?
Sí es posible. Suscríbete y ten acceso a reproductor de audio de las noticias, contenido exclusivo, sin anuncios y más. Saber más
Tres ingenieros de software demostraron que en la plataforma Bancor cualquier usuario puede hacer inversiones ventajosas, conocidas como front running. Quienes hicieron la investigación fueron Ivan Bogatyy, Haseeb Qureshi y Preethi Kasireddy, que trabajan como ingenieros de software en Google Research, Airbnb y Coinbase, respectivamente.
Así fue publicado en el blog de Hacker Noon por Bogatyy. Según los ensayos presentados, no solamente los mineros y clientes de nodo completo de Ethereum pueden hacer front running, sino que también cualquier usuario puede obtener un algoritmo para ejecutarlo, al ser públicas todas las transacciones en Ethereum, incluyendo las transacciones pendientes vinculadas con el contrato inteligente de Bancor.
Published our research w @hosseeb showing any user can front-run Bancor (Ethereum token) in 150 lines of Python code https://t.co/CjgWNlmE5c
— Ivan Bogatyy (@IvanBogatyy) 10 de octubre de 2017
De acuerdo con lo publicado por Bogatyy, realizaron diversos ensayos para demostrarlo, y obtuvieron alrededor de unos $150 USD, los cuales fueron devueltos luego de detener el programa. También manifestó que un usuario pudo haber obtenido hasta el 117% de retorno de inversión si hubiera llevado a cabo el ataque entre julio y agosto. Basándose en aproximaciones matemáticas, Bogatyy manifestó que las inversiones de retorno estarían alrededor del 1% de la inversión.
En los mercados financieros tradicionales el término front running es utilizado para referirse a una práctica (considerada ilegal) ejecutada por intermediarios para obtener ganancias a costa de la información confidencial sobre las próximas operaciones de sus clientes. Esta práctica puede ser llevada a cabo por algún intermediario financiero, como los creadores de mercado y operadores de mesa de dinero (corredores de bolsa).
En el caso de los operadores, la práctica consiste en tomar posiciones propias a cuenta del cliente; de compra si ven que la orden del cliente va a hacer subir los precios del instrumento, o de venta, si ven que la orden del cliente va a hacer bajar los precios. Con ello, esperan generar ganancias con el nuevo nivel de precios.
Ahora bien, ¿cómo funciona el front running en Bancor? En palabras sencillas, podemos decir que se trata de la misma práctica ilegal implementada en los mercados tradicionales, pero aplicada a las transacciones en esta plataforma, y que consiste en sacar beneficios del impacto de una determinada transacción pendiente en el valor de una criptomoneda, a sabiendas del orden de transacciones pendientes.
Esto es posible porque las transacciones son públicas y para validar cada transacción se requieren de unos 20 segundos (el tiempo que se toma un minero para detectar un hash que verifica un bloque), lo que genera una serie de transacciones pendientes que se ordenarán de acuerdo al gas (comisión) que se pague por ellas, y no de forma cronológica. Por ello, aunque una transacción grande se haya realizado antes, es posible adelantarla en la cadena si se paga más gas en una nueva transacción, con miras a generar ganancias o evitar pérdidas. Algo que también hace posible el tipo de cálculo de precios utilizado en Bancor:
El protocolo Bancor permite el descubrimiento de precios y un mecanismo de liquidez para los tokens inteligentes de la cadena de bloques. Estos «tokens inteligentes» mantienen uno o más tokens en reserva y permiten a cualquier parte comprar o liquidar instantáneamente el token inteligente a cambio de cualquiera de sus tokens de reserva, directamente a través del contrato de token inteligente, a un precio continuamente calculado, según una fórmula que equilibra los volúmenes de compra y venta.
Asimismo, a medida que los tokens en Bancor (BNT) son comprados, su reserva de ethers aumenta y su valor también. “El contrato inteligente tiene una reserva Ethereum, y cuando más personas compran el token, las reservas crecen y el precio sube. En consecuencia, cuando la gente vende, el contrato ajusta el precio a bajar, de modo que la reserva nunca se agota por completo”, enfatizaron en la publicación de Hackernoon.
Esta discrepancia crea un vector de ataque: cualquier usuario que ejecute un cliente Ethereum de nodo completo puede detectar una transacción pendiente e insertar su propia transacción frente a ella mediante el pago de más gas. Si ve que una gran compra está a punto de suceder, usted sabe que el precio del BNT aumentará (siguiendo su fórmula determinista), por lo que si compra en esa transacción obtendrá una apreciación instantánea de sus tokens y un retorno garantizado de su inversión. Del mismo modo, si alguien envía una gran venta pendiente, un atacante puede vender sus tokens al frente.
Por ejemplo, luego de que se haga efectiva una jugosa compra de BNT, el valor de esta criptomoneda aumentará, y si algún minero o cualquier usuario que ejecute un nodo completo se da cuenta de que una transacción de este tipo está a punto de ser verificada, pueden movilizar su transacción pendiente y ubicarla delante de esta para que, luego de que la anterior se haga efectiva, se puedan conseguir ganancias, bien sea valiéndose de que pueden clasificar las transacciones hasta que se confirmen los bloques (mineros) o que pueden pagar más para aumentar el gas (clientes de nodos completos). También, puede darse el caso de que si entre las transacciones pendientes hay una gran venta de BNT, alguien que se percate de esto puede colocar su operación antes de esta, porque luego de la otra se haga efectiva, el valor de BNT disminuirá.
«Además, hasta que se confirme el bloque, el orden de las transacciones pendientes está en juego, y los mineros básicamente clasifican las transacciones por cuánto se les paga por gas», resaltó Bogatyy.
Cabe destacar que, meses atrás, Emin Gün Sirer y Phil Daian advirtieron que Bancor tenía fallas, incluyendo el hecho de que daba cabida al front running. En aquella ocasión, Gün Sirer y Daian manifestaron que los mineros, valiéndose de que pueden reordenar las transacciones, podrían adelantar operaciones propias e incluso automatizar el front running.
Por su parte, el equipo Bancor respondió a cada una de las razones que se habían utilizado de fundamento para alegar que esta plataforma era defectuosa. «Se necesitaría bastante tiempo para que los tokens inteligentes crezcan hasta el punto de que se realicen múltiples transacciones de compra / venta en un bloque promedio, y nos imaginamos que una gran parte de la cola larga de las monedas puede operar sin alcanzar ese umbral. Para esa escala, minReturn debería servir como mitigación suficiente, ya que cancelaría la transacción en un intento de ejecutarlo (…)» indicaron con respecto al front running.
Hasta ahora sólo se ha presentado una solución parcial al problema de las inversiones ventajosas que tienen cabida en esta plataforma. Esta es una interfaz Web3 que cuenta con la opción «minReturn«, la cual permite a los usuarios cancelar su transacción pendiente cuando detecten que alguien ha colado otra transacción delante de la suya. Dicha solución fue pensada para disminuir los ataques de personas conocedoras de esta falla en la plataforma y que sepan cómo aprovecharse de ella, sacándole ganancias a la misma.
Sin embargo, esto no impide que más adelante se presenten casos de front running, puesto que es una solución que no pone fin a la vulnerabilidad en Bancor. Asimismo, como los atacantes no necesariamente podrían ser mineros, sino cualquier usuario común de la plataforma, Bogatyy indicó que el equipo de Bancor planea definir un maxGasPrice universal (esto es, un precio máximo por gas, la unidad fundamental computacional en la red Ethereum).
Cabe mencionar que esta es sólo una de las formas en las que se puede manipular el precio para conseguir ganancias en el mundo de las criptomonedas. Junto al front running, también se puede mencionar al spoofing, un mecanismo que envía órdenes sin concretarse que suben y bajan los precios del criptoactivo de Bitcoin.
Finalmente, como afirmó Bogatyy, al parecer la vulnerabilidad en Bancor no ha sido explotada aún, pero con el fin de que la economía blockchain pueda desarrollarse de forma plena, es necesario que las vulnerabilidades en este ecosistema sean entendidas para poder protegerse de las mismas.