Bitcoin Forum
May 05, 2024, 06:28:38 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Los usuarios de SharedCoin pueden ser identificados  (Read 823 times)
lukyforvar (OP)
Hero Member
*****
Offline Offline

Activity: 804
Merit: 1002



View Profile WWW
July 10, 2014, 02:33:52 PM
 #1

Me he encontrado con esta notícia que es de hace un mes

http://www.coindesk.com/blockchains-sharedcoin-users-can-identified-says-security-expert/

Yo pensaba que en el SharedCoin no tiene por que tener una conexión entre la dirección A y B, pero si es verdad que casi todas las transacciones quedan en el mismo bloque o el siguiente y comparando importes se podría llegar a "suponer" la conexión.

¿Que opinais?

A mi se me ocurre pillar el código fuente de SharedCoin y hacer que todas las salidas de una transacción sean por el mismo importe y obligar al usuario a usar más de una dirección de destino.

Bitcoin, the weapon of freedom massive.
"In a nutshell, the network works like a distributed timestamp server, stamping the first transaction to spend a coin. It takes advantage of the nature of information being easy to spread but hard to stifle." -- Satoshi
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714933718
Hero Member
*
Offline Offline

Posts: 1714933718

View Profile Personal Message (Offline)

Ignore
1714933718
Reply with quote  #2

1714933718
Report to moderator
1714933718
Hero Member
*
Offline Offline

Posts: 1714933718

View Profile Personal Message (Offline)

Ignore
1714933718
Reply with quote  #2

1714933718
Report to moderator
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
July 10, 2014, 05:32:58 PM
 #2

A mi se me ocurre pillar el código fuente de SharedCoin y hacer que todas las salidas de una transacción sean por el mismo importe

La pega de esto es que si tienes una coin de 1.48463925 BTC, ¿cómo haces para que todas las salidas tengan el mismo importe? ¿De cuánto debe ser ese importe? ¿Qué pasa con el resto? ¿Los usuarios tendrán que hacerse un envío a sí mismos, antes del mix, para obtener una coin del importe necesario o un múltiplo exacto?

Una posible solución sería que las salidas fueran de varios importes para no obligar al usuario a hacer una transacción adicional antes. Por ejemplo un mix de estas coins:

- 0.37474355
- 2.47262636
- 0.04743845
- 0.63874734

Podría llevarse a cabo de la siguiente manera:

- Separar algo para la comisión, por ejemplo, dejando los 4 últimos dígitos de cada coin a cero. Con esto tendríamos inputs por importe de 0.3747, 2.4726, 0.0474 y 0.6387 BTC, y una comisión de 0.00015570.
- Generar outputs de, por ejemplo, 0.0001, 0.001, 0.01 y 0.1 BTC. Son unas cuantas, pero queda bastante anónimo (no del todo). Para reducir el número de outputs, se pueden añadir más importes: 0.0001, 0.0002, 0.0005, 0.001, 0.002, 0.005, 0.01, 0.02, 0.05, 0.1, 0.2 y 0.5. En este caso, y si queremos el menor número de posible de salidas, la cosa quedaría así:

0.5
0.5
0.5
0.5
0.5
0.2
0.2
0.2
0.1
0.1
0.05
0.05
0.02
0.02
0.02
0.02
0.02
0.01
0.005
0.005
0.002
0.002
0.002
0.002
0.002
0.001
0.0005
0.0005
0.0005
0.0002
0.0002
0.0002
0.0002
0.0001

Pero en el mundo real las outputs se segregarían más para aumentar la anonimidad.


y obligar al usuario a usar más de una dirección de destino.

Esto apenas soluciona nada en el contexto de esa noticia. Sí que complica un poquitín más el ataque pero al fin y al cabo, el usuario recupera el mismo importe y las entradas/salidas son igual de enlazables.
lukyforvar (OP)
Hero Member
*****
Offline Offline

Activity: 804
Merit: 1002



View Profile WWW
July 10, 2014, 06:48:00 PM
 #3

Bueno concretando, sería

  • Advertir de que todo lo que envies por menos 0.01 btc lo vas a perder, así ya cortamos hasta 2 decimales
  • Pedir por ejemplo 4 direcciones de destino como mínimo
  • Luego preparar rafagas en el output siempre iguales, por ejemplo output de 10 salidas todas con 1 btc o 0.3, o 0.01
  • A su vez cada output, puede producir mas output. Por ejemplo una transacción con output de 1btc podría a su vez generar otras 5 transacciones con 10 output de 0.02

Puedes saber los inputs, pero todos los output son siempre iguales, y como no sabes que usuario controla que dirección, no puedes correlacionar datos. Como vas a saber que 6 direcciones finales pertenecen a la misma cartera. Atomizas el envío en porciones iguales.

Luego cuando ya tengas los fondos en tu poder podrías además usar el sharedcoin actual para enviar el pago de verdad. Creo que sería muy complicado poder saber el verdadero fuente y destino de verdad.

De todas formas con sharedcoin actual también puedes jugar mucho, por ejemplo si yo quiero enviar 0.1  a una dirección.  Yo tengo 1 btc, y envío 0.39 a una dirección y el cambio me lo devuelve a otra 0.61. Luego a su vez con esas dos porciones también divido, y envío 0.1 a la de destino final y el resto se me queda en otras 3 direcciones. Creo que es dificil tracear así y saber cual es el verdadero origen y destino.

Bitcoin, the weapon of freedom massive.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!