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.