Han bitcoin aplicado a los desarrolladores de la solución para el egoísta minero ataque?

La Mayoría no es suficiente papel propuesto un académico y de alguna manera las prácticas de ataque a Bitcoin mining sistema basado en la creación de horquillas ocultas. El documento afirma que si los mineros de trabajo en cualquier tenedor que recibieron en primer lugar, el ataque puede ser ejecutado por un grupo muy pequeño. Su propuesta de solución es: "cuando un minero aprende de las ramas sobrantes de la misma longitud, se debe elegir la que a la mina uniformemente al azar". Sin embargo esta solución no resuelve el problema por completo, sólo aumenta el tamaño de la piscina en la que desea ejecutar el ataque.

He leído sobre el ataque aquí y aquí, sin embargo, yo no encuentro respuestas a mis preguntas:

  • Es el ataque realmente práctico?
  • Tienen los desarrolladores de bitcoin aplicar la solución propuesta en el documento? (Si sí, ¿por qué la wiki no está actualizado? La wiki dice: "la generación de los nodos de construir en cualquiera de los bloques que han recibido su primer")
  • Tienen los desarrolladores de bitcoin aplicar otra solución para el problema? (La solución que se propone en el documento no soluciona completamente el problema)

EDITAR:

¿por qué la minería en ambos cadena de tenedores de manera uniforme aumentaría la minería de datos necesaria para poder egoísta de minería de ataque?

La minería en ambos cadena de tenedores de manera uniforme es una solución a sybil ataque de los egoístas, de los mineros. Egoísta quiere obligar a otros mineros a trabajar en su tenedor, por lo que crear un número significativo de energía cero y mineros para el Bitcoin minero de la red, como su sensor. Cuando uno de sus sensores detecta una nueva válido bloque, todos los sensores de difusión de la horquilla de la egoísta mineros. Por lo tanto, más de la mitad de los mineros (casi todos ellos) trabajo en egoísta mineros de la horquilla.

Tenga en cuenta que, la sibila de ataque y sus propuestas de solución es la menor parte del ataque. El principal ataque podría ser ejecutado sin ejecutar sybil ataque e incluso en el caso de la aplicación de sus propuestas de solución, si los egoístas, los mineros tienen el 33% de la minería de poder.

+424
Joyce Woods 18 abr. 2014 4:53:30
16 respuestas

por favor alguien puede ayudar aquí, ya que soy un principiante en btc. He enviado algunos bitcoins, pero después de más de 24 horas aún no está confirmado, pero muestra que ha sido visto por sus compañeros en multibit HD. He intentado en 5 ocasiones en la reparación de la cartera pero aún no hay resultados.

https://blockchain.info/tx/b57acae08aa1aaff70d8c74bf823e6a5b6f536b1524cc777d9f4e89794ca64bc

3b1b1c3822ab74cad22ca34731cb298d906e04acc741bb5e7fc38b2b333c2ccc

b03eb0087f4c75d4bdfa2e1788a92b1402037f210f17caf71b6a66d73597356c

Decidí transferir mis otros cartera a una nueva cartera y no se ve demasiado.

https://blockchain.info/tx/c7309ba1267012506fcb99de79f060935811fc74e049df6e22388b874903192a

Gracias

N. B: fess fue establecer como predeterminado, ha sido de más de 36 horas y la transacción no se refleja en la recepción de la cartera

+982
Kay Slater 03 февр. '09 в 4:24

He actualizado el bitcoin nodo a la versión para 140200 en la parte superior de que uno de mis aplicaciones se ejecutan. No hay ningún problema con el flujo de la aplicación estimatefee RPC puedo obtener -1 porque no importa lo que yo doy como el número de bloques. También la alternativa de la tarifa de la api de estimatesmartfee devuelve valores negativos. Cuando ejecuto la misma api en un nodo con la versión 140100 me da un resultado positivo ¿Cómo puedo resolver esto ?

+920
Luo Hao 13 ago. 2019 8:43:40

No sé cómo getblocktemplate funciona exactamente, pero parece incluir las operaciones en función de la prioridad.

La selección de las operaciones en función de su prioridad no es la más rentable método para la construcción de un bloque (como contraposición a la tarifa/byte), por lo que es getblocktemplate sólo va a ser utilizado por los mineros que no han descubierto la manera de construir sus propios bloques?

Por qué habría alguien de uso getblocktemplate de otra manera?

+850
Russell MacKenzie 14 oct. 2018 11:21:16

He comparado a los siguientes 9 tipos de transacciones de peso. Y luego me enteré de que No9 (P2WPKH => P2WPKH) fue el más claro.

  • Patrones de transacciones
// 1 transacción se compone de 1 txin y 1 txout

1. (en)P2PKH => (out)P2PKH [peso = 764]
2. (en)P2PKH => (out)P2SH-P2WPKH [peso = 756]
3. (en)P2PKH => (out)P2WPKH [peso = 752]
4. (en)P2SH-P2WPKH => (out)P2PKH [peso = 541]
5. (en)P2SH-P2WPKH => (out)P2SH-P2WPKH [peso = 533]
6. (en)P2SH-P2WPKH => (out)P2WPKH [peso = 529]
7. (en)P2WPKH => (out)P2PKH [peso = 449]
8. (en)P2WPKH => (out)P2SH-P2WPKH [peso = 441]
9. (en)P2WPKH => (out)P2WPKH [peso = 437]
  • Resultado
// He usado bitcoin core rpc (v0.17.1) como createrawtransaction, signrawtransactionwithkey y decoderawtransaction.

[INPUT = P2PKH]

// P2PKH => P2PKH
"tamaño": 191,
"vsize": 191,
"de peso": 764,

// P2PKH => P2SH-P2WPKH
"tamaño": 189,
"vsize": 189,
"de peso": 756,

// P2PKH => P2WPKH
"tamaño": 188,
"vsize": 188,
"de peso": 752,

[INPUT = P2SH-P2WPKH]

// P2SH-P2WPKH => P2PKH
"tamaño": 217,
"vsize": 136,
"de peso": 541,

// P2SH-P2WPKH => P2SH-P2WPKH
"tamaño": 215,
"vsize": 134,
"de peso": 533,

// P2SH-P2WPKH => P2WPKH
"tamaño": 214,
"vsize": 133,
"de peso": 529,

[INPUT = P2WPKH]

// P2WPKH => P2PKH
"tamaño": 194,
"vsize": 113,
"de peso": 449,

// P2WPKH => P2SH-P2WPKH
"tamaño": 192,
"vsize": 111,
"de peso": 441,

// P2WPKH => P2WPKH
"tamaño": 191,
"vsize": 110,
"de peso": 437,
  • Detalle de Resultado (transacción hex)
[INPUT = P2PKH]

// P2PKH => P2PKH
0200000001d0e13f4319cb8eb82cb4fae204aa92e86f4b300b86443ac6ca7b5e5713a805d5000000006a47304402203f59c75dce2657e2ea0f555bda618f60b5fc7c29d06b388a7dfb9fdd152628170220722b1395dda99e3b09e45937ae768298ba337fe825e9bf799cf84e69b09c31420121034f40428cabea81e7e1f0c7bc11fc4cfff4c22136205d9fde14bce2de34c3c0b0ffffffff01c0e4022a010000001976a9148329298662e6202d231b1a060c9c31740f1abf0088ac00000000

// P2PKH => P2SH-P2WPKH
0200000001d0e13f4319cb8eb82cb4fae204aa92e86f4b300b86443ac6ca7b5e5713a805d5000000006a473044022063141301b08eebcd69fbbf0c9247c43f9bf5294e0f01bfb2da6630cbd4ca0e0802207595dd76e04fe3ba8b74ff82802cd6dd9083438b32ca180349e847ce16272b240121034f40428cabea81e7e1f0c7bc11fc4cfff4c22136205d9fde14bce2de34c3c0b0ffffffff01c0e4022a0100000017a9149900febf4619963e50167e4e8574d66e5b5066218700000000

// P2PKH => P2WPKH
0200000001d0e13f4319cb8eb82cb4fae204aa92e86f4b300b86443ac6ca7b5e5713a805d5000000006a47304402206329cb55c7bc23bb5f0a610d4aac24ced6bd97ace9ee657f5f7f278a2e55b05002204f9b1329dbea5249e1190414963a78af7bd764cfddf7826cb5a8e908a39e787b0121034f40428cabea81e7e1f0c7bc11fc4cfff4c22136205d9fde14bce2de34c3c0b0ffffffff01c0e4022a01000000160014265d42333ea7c83b142cbc3f5e90618f2815b97400000000

[INPUT = P2SH-P2WPKH]

// P2SH-P2WPKH => P2PKH
02000000000101ff516fbcb5ee39d86569b32399ba77f86d8c840a58e9c00bafe9401fac50ba8f000000001716001402e386ba4c3ab0337779e8cf53ee29be1f76e56affffffff01c0e4022a010000001976a9144bd165e45738f90715dd58c66e609e3420745c4088ac024730440220485fda83adf6674683a5dcb3640eb6fade65ff87d8b86b9ff7ad78d7ee2adda3022050901b7877f51931bd21dd042a951327974616ae80cfd045eb9daffa4e3d3a160121032fd7684e4355ea5bb5d690b36177ef0c476031f776b5207aaed8c6f2773dccf500000000

// P2SH-P2WPKH => P2SH-P2WPKH
02000000000101ff516fbcb5ee39d86569b32399ba77f86d8c840a58e9c00bafe9401fac50ba8f000000001716001402e386ba4c3ab0337779e8cf53ee29be1f76e56affffffff01c0e4022a0100000017a914ea78eae3d8b5265a564f60a2d35c92fd80340758870247304402205768fd4a1a43377d602ab071ffd6c10e9cd653f32352734407d5f570633ec8fa02204ec4a3979318654c282122e883ea28f6f345347c771fdd5d178512a0acb3e6680121032fd7684e4355ea5bb5d690b36177ef0c476031f776b5207aaed8c6f2773dccf500000000

// P2SH-P2WPKH => P2WPKH
02000000000101ff516fbcb5ee39d86569b32399ba77f86d8c840a58e9c00bafe9401fac50ba8f000000001716001402e386ba4c3ab0337779e8cf53ee29be1f76e56affffffff01c0e4022a01000000160014795fe27ac90977d005752d76c9b37e0f4709107c0247304402202cf3cc0567f2b4cdc095ba4de1b450bb09e4fe6e8a7e5a9fae2bffd0e200c2350220257ce6193a87b6addcb44fca4245f38ab4470ee8149207460d2712336948cce80121032fd7684e4355ea5bb5d690b36177ef0c476031f776b5207aaed8c6f2773dccf500000000

[INPUT = P2WPKH]

// P2WPKH => P2PKH
02000000000101a33652b7a2408b854878dbf2936b2a29208267d7b747d3b9d6d52aea894c329e0000000000ffffffff01606b042a010000001976a9146626b697454680b06e3c0e2d07272137a97e8be188ac0247304402203c6b03fdb2b5a6b12820bc420af9c0f35d96100aff02b93b9f05d389d1b0f200022059bb8a679febe999216f510149047413dac4b49f6e0d3aa9ef33853141815c2f01210242586c4ad4cb0d7fbe0ecfe902024f8f1581564f8f257a7cc52bf26275283ed200000000

// P2WPKH => P2SH-P2WPKH
02000000000101a33652b7a2408b854878dbf2936b2a29208267d7b747d3b9d6d52aea894c329e0000000000ffffffff01606b042a0100000017a9141548a74c39bf89a83812613bc0e65a933c7e10df870247304402207ed9314ec843a98acd21260760c93418303f25f46ff6861cdc751ce49381988f02203f41929d6668b64b98da22a871ff9d968ab08cf7b81e221f1fc957355c442b5201210242586c4ad4cb0d7fbe0ecfe902024f8f1581564f8f257a7cc52bf26275283ed200000000

// P2WPKH => P2WPKH
02000000000101a33652b7a2408b854878dbf2936b2a29208267d7b747d3b9d6d52aea894c329e0000000000ffffffff01606b042a01000000160014d1c5773209f4b660714ea92e1aa6d5b0338a68aa0247304402205a94a9e82f19d96868ab20d44aa3c0c50b66e103ac36868b3c8c31455b95479e02207200f59dcc0d7745c1524371ed0ff1d49e7df3c30d5416fe9589fd180bd471ed01210242586c4ad4cb0d7fbe0ecfe902024f8f1581564f8f257a7cc52bf26275283ed200000000
  • Creo..

El actual peso máximo permitido para un bloque de 4 mb. Los mineros de considerar la cuota(en satoshi) por el peso de cada transacción, con el fin de maximizar sus ganancias.

https://github.com/bitcoin/bitcoin/blob/master/src/consensus/consensus.h#L15

+813
ghojutt 2 ago. 2010 13:59:26

He leído que es una variación de la versión anterior hash del bloque, merkle raíz, el tiempo, los bits, y nonce

Esto es exactamente correcto.

Comprobar manualmente hash del bloque de

(gracias a @exmachinalibertas) en este reddit comentario

  1. Agarrar un bloque (por ejemplo. bloque 3): Bloque 3 en json o Bloque 3 en hexadecimal Concatenar (en este orden, "little endian", formato hexadecimal) de la versión, anterior hash del bloque, merkle raíz, unix epoch tiempo, la dificultad de destino (bits), y nonce. Usted verá que usted puede copiar los primeros 160 caracteres del Bloque 3 en el hexagonal de enlace. 01000000bddd99ccfda39da1b108ce1a5d70038d0a967bacb68b6b63065f626a0000000044f672226090d85db9a9f2fbfe5f0f9609b387af7be5b7fbb7a1767c831c9e995dbe6649ffff001d05e0ed6d

  2. Ejecute el comando de terminal (unix):

    $ echo 01000000bddd99ccfda39da1b108ce1a5d70038d0a967bacb68b6b63065f626a0000000044f672226090d85db9a9f2fbfe5f0f9609b387af7be5b7fbb7a1767c831c9e995dbe6649ffff001d05e0ed6d | xxd -r -p | openssl sha -sha256 | xxd -r -p | openssl sha -sha256

  3. Revertir la salida de

4944469562ae1c2c74d9a535e00b6f3e40ffbad4f2fda3895501b58200000000 a 0000000082b5015589a3fdf2d4baff403e6f0be035a5d9742c1cae6295464449

Y ahí está el hash del bloque!

Me gustaría saber la cadena exacta que puedo poner algo como esto y exactamente donde la puedo encontrar

Esto probablemente no va a funcionar porque parece que está esperando una cadena y va a ser extraño a tratar y convertir los bytes de la cabecera de bloque de caracteres ASCII.

Nota: Usted tendrá que instalar openssl para la terminal. También, el xxd comando convertir la cadena hexadecimal de bytes para que el hash no se realiza en la bytes ASCII.

+797
Frololo 7 jul. 2010 19:39:11

No, ellos no.

Una de la vanidad de la dirección sólo está tratando de coincidencia de patrón a una parte específica de una dirección. La complejidad sigue siendo el mismo.

Para generar la vanidad de la dirección que toma usualmente millones de intentos por segundo para encontrar una clave pública que corresponda a su patrón. Esto se hace en bicicleta a través de claves privadas y la comprobación de la clave pública correspondiente.

Si fue atacado a hacer lo mismo entonces que se necesita para hacer un ciclo a través de cada combinación de su patrón, así, que es tan extensa.

+668
emin5 2 feb. 2011 0:54:51

Me imagino que un SPV nodo codifica la transacción(s) es interesado, en un BF y lo envía a la plena nodo. Lo que no entiendo es que ¿qué hace el completo nodo después de que?

El pleno del nodo pasa a través de cada transacción en el blockchain. (O, al menos, cada una de las transacciones que ocurrieron después de la cartera fue creado). Comprueba las siguientes cosas en contra de la flor de filtro.

  1. Prueba el hash de la transacción misma.
  2. Para cada salida de la prueba, los datos de cada elemento de la secuencia de comandos de salida. Esto significa que cada hash y clave en la salida de secuencia de comandos se ha probado de forma independiente. Importante: si una salida partidos, mientras que la prueba de una transacción, el nodo puede ser que necesite para actualizar el filtro mediante la inserción de la serializado COutPoint estructura. Ver abajo para más detalles.
  3. Para cada entrada, de la prueba de la serializado COutPoint estructura.
  4. Para cada entrada, de la prueba de cada elemento de los datos de entrada de secuencia de comandos (nota: la entrada de secuencias de comandos sólo contienen elementos de datos).
  5. De lo contrario, no hay ninguna coincidencia.

(Fuente.)

Si coincide, se envía al SPV nodo. El SPV nodo descarta que el número de falsos positivos.

Si el objetivo es preservar la privacidad de la SPV de la consulta, a continuación, algunos sofisticados enfoques tales como la recuperación de información o inconscientes de la memoria ram debe ser utilizado, pero que no son eficientes para el bitcoin configuración.

No sé de ningún protocolo que no requiere de la plena nodo para escanear a través de todo el blockchain para cada solicitud.

Si usted conoce a alguien, que me haga saber. :) Siempre interesado en escuchar sobre ese tipo de cosas.

+450
Koshik 10 nov. 2012 2:54:22

La aplicación en sí no se abre. Hace poco hice una restauración del sistema a un punto anterior en el tiempo, pero estoy bastante seguro de que no fue antes de que el punto de que he instalado el multibit aplicación. Todos los archivos de instalación están todavía en su lugar original, pero no puedo conseguir que se abra. He intentado abrir desde el cuadro de diálogo ejecutar y obtener el mensaje de error "windows no puede encontrar 'multibit.exe'". He intentado abrir tanto la regular y la elevación de los mensajes de comandos y mientras puedo ver multibit y sus archivos en el escritorio no aparece en toda la sección de aplicaciones de windows 8 pantalla de inicio. Me estoy inclinando hacia volver a instalar, pero no sé en qué orden hacerlo (desinstalar actual antes o después?) o lo de los archivos (si lo hubiera) se sobre-escrito. Todos mis bitcoins fueron en la aplicación de escritorio, pero yo no copia de seguridad de la cartera (que yo sepa). Todos los archivos de la cartera parecen estar disponibles en el appdata\roaming\multibit carpeta (en sin Título.* como yo no tenía copia de seguridad o cifrar con contraseña) y mi esperanza es que si ejecuto un trabajo real de la versión de multibit.exe que yo wll ser capaz de acceder a mis bitcoins. No creo que volver a instalar multibit afectarán a estos archivos, pero pensé que debía preguntar primero. Esta situación, que estoy totalmente en por mi culpa, me ha llevado muy ansioso. Cualquier consejo/ayuda/sugerencias se agradece enormemente.

+444
Tapio 19 jun. 2012 10:38:50

Red de rayos (LN) de canales de pago están anclados en la blockchain por sus propietarios en forma cooperativa la creación de una 2-de-2 multisig dirección y el envío de fondos a la misma. La financiación proviene, generalmente, de una de las partes, pero uno de los canales propietario puede, por ejemplo, a pagar a la otra propietario del canal con la financiación de la transacción mediante la asignación de la cantidad de pago en el canal de saldos iniciales. El canal de anclaje, a continuación, se mantiene sin cambios en el blockchain hasta que el pago canal está cerrado.

Los pagos en la LN, posteriormente se realiza por el canal de los propietarios de la renegociación de su balance de las acciones del anclaje de los fondos. Por tanto, siempre que los pagos se procesan en LN, no en la cadena de acción que se requiera, cuando una de las dos partes quiere enviar fondos fuera de la canal, en la cadena de acción que se requiera, ya sea, por el cierre de la canal, por cooperativamente el envío de parte de los fondos de la canal y volver a cometer el resto de la espalda a una nueva versión del mismo canal, o delegar a un tercero para hacer la cadena de pago por el uso de, por ejemplo, submarino swaps.

+439
Sarah Paquette 1 nov. 2013 14:46:43

Cuánto pago de la transacción se Segwit incorporado dentro de P2SH guardar tasa en comparación con P2PKH?


Actualización 1

He encontrado una pregunta similar.

o pueden estar anidadas en un legado P2SH 3... la dirección que están al revés-compatible (aunque menos eficiente)

Él dijo que los menos eficientes. Quiero saber cuánto? El tamaño de la transacción será menor de lo normal...?

¿Cómo comparar los costos de transacción entre Bech32 direcciones y el legado direcciones Bitcoin?


Actualización 2

He encontrado otro. Estoy leyendo.

SegWit tarifa de transacción/byte


Actualización 3

La siguiente página describe bloque de peso. P2SH se utiliza en el ejemplo. Creo que P2SH-envuelto segwit direcciones tiene un beneficio económico de la transacción.

Bloque de peso

https://en.bitcoin.it/wiki/Block_weight

Alguien ha publicado la siguiente tabla. No sé si es correcto o no. Pero parece segwit(p2sh) tiene un beneficio de lo que esperaba.

Rápido de la tabla. Los tamaños en bytes (bytes virtuales para segwit, incluyendo la segwit de descuento)

enter image description here

¿Cómo puedo calcular mis honorarios para una transacción enviada desde un Segwit dirección?

https://www.reddit.com/r/Bitcoin/comments/7m8ald/how_do_i_calculate_my_fees_for_a_transaction_sent/

+297
Ligon 29 dic. 2017 1:08:52

im bien tarde, pero puedo decir.

funciona, use la siguiente cadena

addnode IP:8333 añadir, pero el Puerto no necesita mostrar, porque todo el mundo usa el mismo puerto, ya que es la que establece como abierta en su router. el puerto rpc sólo debe definirse de una vez en startupt. en addnode de no usarlo, porque usted podría estar vinculado a una IP también a través de la bind= comando, el servidor que no sé qué hacer.

+283
stirling 25 dic. 2012 23:28:25

Estoy leyendo la wiki de Bitcoin, y veo que el inv estructura de los mensajes. Veo que tiene un contador de campo de los objetos y un inventario de campo. Este inventario de campo tiene una lista de objetos (transacciones o bloques), y me pregunto ¿qué envía a los vecinos como para comprobar si tienen la transacción o bloque se retransmite. Por ejemplo, es el bloque enviado con su hash o con una identificación?

+119
John Burley 16 nov. 2015 17:56:42

Actualmente estoy en windows y se preguntaba ¿cómo hacer que el cliente qt descargar el blockchain de datos a otro directorio? Desde mi unidad principal es un SSD de disco duro, no tengo mucho espacio libre. ¿Cómo puedo configurar esto para hacer la descarga en otro lugar?

También esto se aplica a otros qt clientes como litecoin, ppcoin, etc?

+107
dld 5 sept. 2013 12:16:11

El merkle ruta de acceso no se almacena de forma explícita dentro del bloque. Se calcula a partir de las transacciones en el bloque, cuando sea solicitado por un cliente.

+91
Benjol 12 abr. 2017 8:58:10

Estoy tratando de escribir código Python que utiliza el (Insight) Blockexplorer.com API , especialmente el POST de las funciones. Estoy probando el uso de la iOS RESTO de la aplicación, Restler (ver captura de pantalla).

La llamada me estoy tratando de hacer que está bien cuando puedo usar GET (https://testnet.blockexplorer.com/api/addrs/2NF2baYuJAkCKo5onjUKEPdARQkZ6SYyKd5,2NAre8sX2povnjy4aeiHKeEh97Qhn97tb1f/txs), sin embargo para el POST, estoy teniendo problemas. Yo uso "addrs" = "2NF2baYuJAkCKo5onjUKEPdARQkZ6SYykd5,2NAre8sX2povnjy4aeiHKeEh97Qhn97tb1f" como mi params (y he probado con objeto de dumping, JSON, es decir,"{ "2NF2baYuJAkCKo5onjUKEPdARQkZ6SYykd5,2NAre8sX2povnjy4aeiHKeEh97Qhn97tb1f" }", pero siempre estoy obteniendo el siguiente mensaje de error:

No válido addrs param:No se puede llamar método 'split' de indefinido. Código:1

Claramente, es de los parámetros del problema, así que ¿por qué? (Por lo que vale estoy no versado en JavaScript)


Captura de pantalla relevante de Restler (L) y documentación de la API (R):

Screenshot

+36
match 21 oct. 2017 15:52:24

El rendimiento en Bitcoin no está definido en las transacciones por segundo, más bien indirectamente, a través del bloque de límite de tamaño. Lo que importa en el tamaño de las transacciones en bytes. La mayor complejidad de la transacción (complejo significado más entradas y salidas, largas secuencias de comandos), el que más espacio ocupa. Un típico completo (casi 1 MB) de bloques de Bitcoin incluye alrededor de 2000 transacciones, o alrededor de 3 tx / seg. a 10 min / bloque. 7 tx / seg en el máximo absoluto, calculado en el supuesto de que una transacción contiene una entrada y una salida (la mayoría en el mundo real las transacciones contienen dos salidas -- la segunda el cambio). CCO aumenta el límite de tamaño de bloque de 8 MB, lo que significa que puede manejar 8 veces más (suponiendo que otras cosas igual).

+18
Signor Charles 1 ene. 2011 8:47:11

Mostrar preguntas con etiqueta