Búsqueda

martes, enero 28, 2014

Transferencias de dinero en la red

Hace unos meses recibí un correo de uno de vosotros (hola Fernando), avisándome sobre algo que ocurría en el primer episodio de la serie Arrow (para los despistados, es una versión televisiva del superhéroe de DC, Flecha Verde). En dicho episodio se realizaba una transferencia bancaria (de forma fraudulenta) a través de un ordenador, y se nos mostraba una pantalla, donde veíamos dos barras de progreso (una para la cuenta origen, y otra para la cuenta destino) y un contador de dinero que iba creciendo rápidamente, dolar a dolar.

Esta forma de mostrar una transferencia bancaria online, no es exclusiva de la serie. Se ha convertido en un estereotipo, y la podemos ver en casi cualquier película o serie de televisión, con distintas variantes. En todas ellas vemos una barra de progreso avanzar a la vez que un contador de dinero se incrementa o decrementa a gran velocidad, pero siempre de unidad en unidad.

Como cualquiera que haya utilizado alguna vez la web de un banco sabrá, la realidad es muy diferente. Y el motivo es muy sencillo: el dinero no «viaja» por la red dolar a dolar. Cuando se realiza una transferencia, en realidad se están haciendo apuntes en las cuentas afectadas. A una se le resta una cantidad y a otra se le suma esa misma cantidad. Y no importa si la transferencia es de 1 euro o de 1.000.000. En lo que a los ordenadores se refiere, es exactamente lo mismo, y tardan lo mismo en hacer la operación. Sólo cuando los números implicados son muy grandes y exceden la longitud de su «unidad básica» de aritmética (y con 64 bits, estaríamos hablando de números de 20 dígitos o más), hay que trocear la operación. Pero aún así, el tiempo de cálculo sería casi inapreciable (la suma y la resta son operaciones muy «baratas» en cuanto a proceso).

En realidad, lo que más tiempo puede llevar es la comunicación en sí a través de la red. Es decir, el tiempo que tardan los datos (números de cuenta e importe, por ejemplo) en ir desde nuestro terminal al servidor correspondiente, y el tiempo que tarda el resultado en llegar, una vez completada la operación. Y ese tiempo es también independiente del importe (alguien podría decir que no es exactamente así, pero la diferencia debida a los pocos bytes de más que podrían suponer el mandar un número más grande, comparado con el resto de datos y metadatos, es casi despreciable).

Es interesante hacer notar que, cuando la transferencia es de un banco a otro, no siempre en inmediatamente efectiva. ¿Qué quiere decir esto? Que aunque la información haya viajado en pocos segundos, dependiendo de los acuerdos entre bancos, o incluso de la legislación, es posible que una vez realizada la transferencia, en realidad pasen unas horas (o días) hasta que el dueño de la cuenta destino vea efectivamente su saldo incrementado (como también, muchos de vosotros ya habréis experimentado). Y eso ya no depende de elementos técnicos (la información ha viajado correctamente), si no de procedimientos internos de cada banco.

17 comentarios:

  1. Quizá (y esto es importante) se inspiren en las primeras transferencias bancarias electrónicas, durante la década de los 90's, cuando tener un Modem de poco más o menos 27kbps ya era un lujo, entonces no viajaba tan aprisa la información, sobre todo cuando hablamos de mandarla de California, Texas, o Miami a Suiza; de todas formas es siempre exagerado como lo planteaban. Ahora lo de factores burocráticos, harina de otro costal.

    ResponderEliminar
  2. No se inspiran en nada, solo es para dar emoción, es mas si quisiésemos hacer algo así el volumen de datos compartido seria insostenible, dado que tendríamos que llamar al servidor cada dolar que pasamos y eso en muchas cuentas podría producir una caída del servidor, algo que los bancos no se pueden permitir, pero, claro, no queda tan bien en pantalla una transferencia instantánea, que algo que tarda un tiempo en producirse creando tensión en el espectador, ya sabéis espectáculo.

    Me encanta tu blog Alf de lo mejorcito de Internet.

    ResponderEliminar
  3. Además, hacer la transferencia dólar a dólar permite que en el último momento el héroe corte la comunicación (o le pegue un balazo al monitor, que eso también funciona) y así el dinero no llegue a manos de los malosos. Estoy seguro que lo he visto en alguna película, de James Bond, creo.

    ResponderEliminar
  4. Sí, como dice Peis, es un recurso para dar emoción al proceso. Me recuerda a la también ridícula forma en la que los ordenadores de algunas películas calculan una contraseña dificilísima (buff, a lo mejor de 8 cifras!!). Primero aciertan una cifra, .... luego otra cifra.... suspense, suspense.. ay, ay, ¡ya solo le quedan 4 cifras!

    ResponderEliminar
    Respuestas
    1. Existía antes este tipo de ataque que explotaba el hecho de que contra más cifras correctas se ponían, más tardaban algunos sistemas en dar una respuesta de acceso denegado. Ahora ya no es posible porque se diseña todo para que siempre tarde lo mismo. También se hacían ataques parecidos monitorizando el consumo de corriente de un dispositivo al que se quería acceder.

      Eliminar
    2. ¿Por qué usar algoritmos para reventar contraseñas si puede usarse el método deductivo? Ahí tienen a Casaubón con Abulafia ;)

      Eliminar
  5. ... la pregunta que habría que hacerse es: si to cristo ha hecho alguna vez una transferencia en internet y sabe cómo funciona ... ¿por qué en las peliculas usan todavía este 'artificio'? ... guionistas sin recursos

    ResponderEliminar
    Respuestas
    1. Supongo que usan el "si es que siempre se ha hecho así". Básicamente es lo mismo que aviones que cuando caen en picado hacen ruido estridente (como de SupreRatón, vamos) sin que sea cierto. O pantallas de ordenador que proyectan las latras a la cara (no sé de dónde lo han sacado). U otras tantas que nadie ha visto pero hacen así.

      Eliminar
  6. Ja, ja... Esto me recuerda a los políticos de por aquí cuando se quejan del dinero de nuestros impuestos que "se va a Madrid y no vuelve". Que no, hombre, que el dinero de los impuestos no va a Madrid ni a ninguna parte porque es dinero virtual. Simplemente, se transfiere de una cuenta particular a una cuenta de Hacienda. Pero con este discurso nos hacen creer que aún se recauda como en tiempos de Robin Hood.

    Jeipi

    ResponderEliminar
  7. (...) Sólo cuando los números implicados son muy grandes y exceden la longitud de su «unidad básica» de aritmética (y con 64 bits, estaríamos hablando de números de 20 dígitos o más),

    ¿20 digitos? En http://es.wikipedia.org/wiki/Anexo:Pa%C3%ADses_por_PIB_%28nominal%29 dicen que, según el Fondo Monetario Internacional, el PIB nominal de todo el mundo fue en 2012 de 71.896.504 millones de dolares. Ésta cantidad (contando que le pongan dos cifras decimales) tendría 16 cifras. Una cantidad de dinero de 20 digitos sería más de mil veces dicho PIB nominal mundial en 2012.

    ResponderEliminar
    Respuestas
    1. Precisamente. Una transferencia de dinero nunca va a usar cifras tan grandes, por lo que nunca se va a necesitar "trocear" las operaciones aritméticas. Van a ser siempre una suma y una resta básica, y por tanto, se tardará lo mismo, independientemente de la cantidad de dinero transferido.

      Eliminar
  8. Tengo entendido que en temas bancarios se suelen usar muchas más cifras decimales, aunque quizá es sólo para realizar los cálculos intermedios.

    ResponderEliminar
    Respuestas
    1. ¿Qué sentido tendría usar más decimales de los que permite el submúltiplo más pequeño de la unidad monetaria? ¿Y qué cálculos intermedios son necesarios en una suma y una resta?

      Cuando hay divisiones de por medio, sí que puede ser necesario usar muchos decimales, si realizamos muchas operaciones de sumas y divisiones, para evitar acumular errores de redondeo. Pero en una transferencia, no.

      Eliminar
  9. En realidad el retraso en la transferencia sí tiene que ver con lo que tarda la información en viajar. Aunque en realidad también es por el proceso que sigue el banco. En fin, que me lío. En la vida real, salvo para transferencias de grandes cantidades de dinero, la transferencia no se hace en el momento de un banco a otro, sino que primero se hace un apunte en el banco de origen, y en algún momento posterior intercambian un "lote" a través de una "cámara de compensación"... Y ya, si es entre varios países, las entidades afectadas y los protocolos de comunicación pueden ser varios y variados.
    Eso sí, lo que nunca nunca sucedería es que fuera dólar a dólar :-)

    ResponderEliminar
  10. ...iba creciendo rápidamente, dolar a dolar.

    En realidad (al igual que en otras series o películas) la cantidad no va creciendo dolar a dolar, sino centavo a centavo.

    ResponderEliminar