¿Cuáles son los vectores de ataque potenciales más importantes en los oráculos?

Específicamente, con mi pregunta quiero apuntar a Oracelize.it como posiblemente el servicio de Oracle más "vanguardista". Esta especificación se realiza para excluir ataques triviales en la posible respuesta.

Respuestas (2)

Un posible vector de ataque está en OraclizeAddrResolver. Esencialmente, Oracle almacena, en Blockchain, la dirección de su último contrato de Oracle. También contienen el poder de cambiar esta dirección. Un atacante, que podría ser Oraclize.it o alguien que comprometa su servidor, podría atacar trivialmente a cualquier persona que use Oraclize actualizando la dirección de Oracle a la dirección de un contrato malicioso.

El contrato de OraclizeAddrResolver es propiedad de un contrato multigrado especial en el que se deben firmar más de 3 claves diferentes para que se produzca una actualización de OraclizeConnector, al menos 2 de ellas deben ser parte de un subconjunto de 4 claves especiales. Esas claves se mantienen fuera de línea teniendo en cuenta la seguridad (no en nuestros servidores). Incluso si Oraclize es el atacante, la superficie de ataque es mínima: los ayudantes de oraclizeAPI verifican que nuestra tarifa no sea> 1 ETH (este es el máximo que podríamos robar de cada contrato basado en Oraclize) + todo lo que hacemos se almacena permanentemente en la cadena de bloques para una total transparencia (nuestra reputación se rompería).
¿Esto se lee como si pudieras robar <= 1 ETH por llamada, no por contrato? raw.githubusercontent.com/oraclize/ethereum-api/master/… Sin mencionar que también arroja un multiplicador de tx.gasprice, que está definido por el usuario, por lo que puede configurarlo tan alto como desee, al costo. de darle al minero de la transacción de explotación (que podría ser usted mismo) una propina generosa.

Hay muchas formas en las que podría acceder a un servicio de Oracle, pero si los contratos funcionan en el modelo de Oraclize en el que solo está tomando datos de otro sitio web, la otra opción es atacar ese sitio web. Cuando crea un servicio de Oracle, tiene una idea del tipo de objetivo en el que podría convertirse, por lo que al menos puede intentar protegerlo adecuadamente. Mientras que si está ejecutando una fuente de datos meteorológicos, probablemente no se le pase por la cabeza que las personas podrían usarla para dirigir cantidades significativas de efectivo anónimo en línea.

El peligro aquí ni siquiera se detiene en el sitio que es atacado, porque una vez que un feed es atacado, los otros comenzarán a revocar las claves API y a reforzar sus términos de servicio en lugar de tomarse la molestia y los gastos de hacerlos seguros. suficiente para estos fines, y las personas que confían en sus resultados para liquidar sus contratos van a ser SOL. Esta es una de las razones por las que diseñamos Reality Keys con una capa potencial de intervención humana entre la fuente de datos original y el contrato, en lugar de simplemente decir "Esto es lo que nos dijo la fuente de datos, buena suerte".

Muy buenos puntos, sin embargo, creo que necesitan más discusión. En el modelo de Oraclize, especifica una fuente de datos (ds) y una fórmula relevante. A la que te refieres específicamente es a la URL. Los anuncios pueden ser potencialmente cualquiera, ¡incluso un moderador humano o Reality Keys en sí mismo! Cuando se habla de datos externos, algunas líneas de confianza son intrínsecamente abiertas, ya que alguien en quien usted confía crea los datos en última instancia; nuestro modelo quiere reducirlos solo a ds. Para evitar cualquier problema, es una buena práctica confiar en más de uno, ya que Oraclize es solo el proveedor confiable que intermedia el intercambio de datos.