BITSPANISH (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 14, 2015, 10:51:01 PM |
|
Buenas Noches. Hoy quería poner en común con todos vosotros una duda que tengo hace tiempo, y a la que no encuentro solución, por más que reflexiono. Lllevo tiempo reflexionando, y dándole vueltas, sin que llegue a una conclusión razonada, y satisfactoria. La duda se centra en la generación ce Carteras Bitcoin en Papel. Sí y ya se que no es el término más adecuado para denominarlas. Lo que no consigo razonar es cómo la cadena de bloques da por creada una determindada dirección generada. Y el cómo se evita una posible duplicidad; entre otras cosas. Pongamos que genero una dirección Bitcoin, junto con su correspondiente calve priva Lo hago desde https://www.bitaddress.orgCargo la página y desconecto el ordenador. Posteriormente genero la dirección. Hasta ahí ningún problema. Pero: ¿Cómo se cerciora la cadena de bloque sde que esa dirección a sido creada? ¿Cómo se evita que cree otra dirección duplicada? Supongamos que yo creo de esta forma una determinda dirección, y no realizo ninguna transacción. Simplemente dejo la cuenta a cero. La cadena de bloques no tiene ninguna constancia de que esa dirección existe. Otra persona desde las antipodas (por poner un ejemplo) pasado un tiempo se dispone a generar una dirección por el mismo método. Y como consecuencia de las circunstancias que confluyan, esa ersona genera la misma dirección. Esto podría ser más facible si el númeor de usuarios de Bitcoin se multiplicase forma exponencial. Es sólo cuestión del numero de usuarios que generen direcciones de esta forma. ¿Las dos claves privadas podrían coincidir? Si llegados a este punto (un una dirección dulicada) yo envio fondos a esa direccion sin saber que otra persona la a duplicado. Habiendo dejado esa persona (de la misma forma) la carte/dirección sin añadir fondos. ¿Qué ocurriría?
|
|
|
|
EcuaMobi
Legendary
Offline
Activity: 1876
Merit: 1475
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 14, 2015, 11:50:16 PM |
|
Hay dos puntos muy importantes que debes saber:
1) El blockchain no necesita saber que una dirección sin saldo existe. Cuando se envía bitcoins por primera vez a esa dirección recién se sabe que existe y la clave privada correspondiente permite crear una transacción que gaste de esa dirección. El blockchain registra transacciones, no direcciones. Por lo tanto si creas varias direcciones y las dejas sin saldo entonces nadie sabe que las creaste y nadie necesita saberlo.
2) Es difícil hacerse una idea del número de direcciones posibles. El número es 2^160, es decir: 1,461,501,637,330,902,918,203,684,832,716,283,019,655,932,542,976 ó 1.46 millones de millones de millones de millones de millones de millones de millones de millones. Te podrás dar cuenta de que es imposible que se genere exactamente la misma dirección 2 veces (a menos que el software que lo genere esté defectuoso) así que nadie necesita saber que generaste cierta dirección para evitar crear la misma.
|
|
|
|
BITSPANISH (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 14, 2015, 11:58:04 PM |
|
2) Es difícil hacerse una idea del número de direcciones posibles. El número es 2^160, es decir: 1,461,501,637,330,902,918,203,684,832,716,283,019,655,932,542,976 ó 1.46 millones de millones de millones de millones de millones de millones de millones de millones. Te podrás dar cuenta de que es imposible que se genere exactamente la misma dirección 2 veces (a menos que el software que lo genere esté defectuoso) así que nadie necesita saber que generaste cierta dirección para evitar crear la misma. Siempre y cuando el número de direcciones generadas no crezca exponencialmente, y llegue a... Esto podría ser más facible si el númeor de usuarios de Bitcoin se multiplicase forma exponencial. Es sólo cuestión del numero de usuarios que generen direcciones de esta forma.
|
|
|
|
EcuaMobi
Legendary
Offline
Activity: 1876
Merit: 1475
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 15, 2015, 12:09:48 AM |
|
2) Es difícil hacerse una idea del número de direcciones posibles. El número es 2^160, es decir: 1,461,501,637,330,902,918,203,684,832,716,283,019,655,932,542,976 ó 1.46 millones de millones de millones de millones de millones de millones de millones de millones. Te podrás dar cuenta de que es imposible que se genere exactamente la misma dirección 2 veces (a menos que el software que lo genere esté defectuoso) así que nadie necesita saber que generaste cierta dirección para evitar crear la misma. Siempre y cuando el número de direcciones generadas no crezca exponencialmente, y llegue a... Esto podría ser más facible si el númeor de usuarios de Bitcoin se multiplicase forma exponencial. Es sólo cuestión del numero de usuarios que generen direcciones de esta forma. No. Por más que crezca el número de usuarios y que cada uno se dedique sólo a generar direcciones en varios ordenadores ni si quiera se acercarían al límite. Sé que es difícil entender un número tan grande. Supongamos que 7mil millones de personas generan una dirección cada milisegundo. Se demorarían casi un millón y medio de millones de millones de millones de milenios en generar todas las direcciones posibles. Tal vez luego de unos cuántos miles de millones de años se repetiría alguna.
|
|
|
|
alexr_96
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 15, 2015, 12:32:47 AM |
|
¿Cómo se cerciora la cadena de bloque sde que esa dirección a sido creada?
Las direcciones ya existen, solo que aun no han sido descubiertas las claves privadas que las abren. ¿Cómo se evita que cree otra dirección duplicada?
No es necesario que se evite esto, las matematicas hacen que esta situación sea casi imposible. Te dejo una lectura que te va a ayudar a resolver tus dudas: "¿Para que buscar la llave privada de una dirección X si puedo hurgar en muchas claves privadas en poco tiempo? y la primera que encuentre con muchos bitcoin la saqueo."
Me dijo que no es un secreto que cualquiera puede generar hasta 10.000 claves privadas en un segundo. Y que siendo eso así serian 315.360.000.000 claves que puede generar una computadora promedio al año. De modo que con más computadoras de casa trabajando todos los días del año se podía hacer en poco tiempo que la gente le perdiera la fe al sistema bitcoin. Porque las probabilidades de que estas computadoras dieran con un address que dispusiera de dinero no eran pocas.
Por muy inmensa que sea la cantidad de claves privadas posibles creo que el riesgo existe y es considerable.
Ojito a las consecuencias que conlleva usar la palabra "inmensa" en matemáticas ya que no somos muy conscientes de lo que implica. Un número muy grande es muy fácil de escribir ―solamente hay que escribir 30 o 40 ceros― pero la magnitud de dicha cifra generalmente se nos escapa a la mayoría. Analicemos qué significan los números muy grandes de bitcoin. En otro hilo del foro se comentaba que pueden existir 2¹⁶⁶ direcciones bitcoin diferentes. ¿Qué supone este número? Bien, voy a redondear siempre de forma desfavorable para la seguridad de las direcciones bitcoin en los cálculos. 2¹⁶⁶ son 9·10⁴⁹ direcciones. Como has postulado, vamos a suponer que podemos generar 10000 claves en cada segundo y además imaginemos que eso lo hacen los 7·10⁹ habitantes del planeta. Esto significaría que se estarían generando 7·10¹³ direcciones por segundo; puesto que un año contiene unos 31557600 s, el número de direcciones halladas por año alcanzaría la cifra de 31557600×7·10¹³=3·10²¹ direcciones por año, redondeando al alza. La edad que se le estima actualmente al universo es de unos 13 mil millones de años o 13·10⁹. Bien, esto supone que para obtener todas las claves privadas (de forma que aseguras al cien por cien el controlar la dirección que quieres atacar) se requiere esperar 9·10⁴⁹÷(3·10²¹×13·10⁹)=2·10¹⁸ (redondeado). Es decir, necesitaríamos esperar un par de trillones de universos para que la humanidad trabajando en su conjunto con la potencia de cómputo que has propuesto pudiera encontrar una clave privada con total seguridad. Si la probabilidad fuera de un 50 %, el tiempo requerido se reduciría a la mitad, nada menos que un trillón de universos. Si la probabilidad la reducimos a un valor ínfimo, supongamos que nos basta con una billonésima de probabilidad (la lotería de navidad toca a un número de cada cien mil), tendríamos que estar procesando durante la vida temporal de dos millones de universos. Ahora bien, podría ser factible aumentar la capacidad de cómputo por persona, bien, si la potencia de cómputo que hemos supuesto para cada ser humano se multiplicase por un billón y todos estuviéramos computando direcciones sin parar, la humanidad en su conjunto, los siete mil millones de personas de hoy, provocarían unas 6500 repeticiones de claves privadas a lo largo de la vida del universo, es decir, durante los 13 mil millones de años que tiene éste, o lo que es lo mismo, se produciría una colisión ―repetición― de direcciones cada 2 millones de años en este último supuesto. Pasemos ahora a las consideraciones energéticas. Pongamos que los equipos informáticos de dichas personas requieren de media unos 100 W para obtener 10000 claves en cada segundo, eso significa que el coste energético es de 0,01 Julios por cada clave generada, luego las 9·10⁴⁹ claves requerirán 9·10⁴⁷ Julios. Según la wikipedia la potencia de nuestra estrella es aproximadamente 3,8·10²⁶ vatios ―o, dicho de otra manera, el Sol produce en un segundo 760.000 veces la producción energética anual a nivel mundial―, por lo que necesitarías 9·10⁴⁷÷3,8·10²⁶=2·10²¹, dos mil trillones de soles, para obtener dicha energía en un segundo; si consideramos que la galaxia media contiene cien mil millones de estrellas necesitaríamos la energía que aportan dos mil millones de galaxias en un segundo, o si te puedes permitir esperar un año para obtener todas las claves privadas requerirías utilizar la energía que emiten 633 galaxias, o bien la que te aportan "solamente" 5773 soles si aguantas la edad de nuestro universo (13 mil millones de años) buscando todas las claves privadas. No he realizado el cálculo del tamaño en bytes del archivo de texto que contendría todas las claves privadas que se van generando, pero con lo anterior os podréis hacer una idea de su magnitud. En definitiva, cualquier suceso catastrófico para tu vida o para tu dinero que se te pueda ocurrir es enormemente más probable que el que se dé una colisión entre claves privadas ―el que se generen dos claves iguales―.
|
|
|
|
SUPERANTONIO
Legendary
Offline
Activity: 1548
Merit: 1037
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 15, 2015, 06:06:56 AM |
|
Una dirección bitcoin NO se "GENERA", una dirección bitcoin "ES" Si para crear una dirección bitcoin hubiera que comprobar de una u otra forma en blockchain que esta libre, se eliminaría la posibilidad de colisión pero también se eliminaría la posibilidad de crear una cartera fría. Ante esa tesitura el protocolo opta por sacrificar la posibilidad de colisión pero dar la posibilidad de generar una cartera 100% fria. La puedes generar con lápiz y papel si quieres, o con unos dados ![Grin](https://bitcointalk.org/Smileys/default/grin.gif) Lo que te ocurre, también me pasó a mi, es que lo de la "colisión" te parece preocupante por que la mente humana entiende que "es posible" que ocurra y así es, pero las "grandes" matemáticas dicen que cuando una posibilidad tiende tantísimo a "0" en la realidad eso es "0" Aún así, si la capacidad de computo creciera tannnnto como para que eso fuera un posible problema; como se trata de una red de consenso se podría hacer un Hard Fork (muy muy Hard) para aumentar el tamaño de una dirección. Al igual, por ejemplo, que si el precio llegara a ser tannnn alto como para los 8 decimales se quedaran cortos se podrían ampliar; eso si, los 21.000.000 completos no se generarían en el 2140, tardaría mas (la ultima milmillonésima).... Perdón por el OT pero en estas reflexiones es importante recordar que estamos en una red de consenso, dominada por unos pocos, eso si, pero de consenso. Saludos
|
]
|
|
|
dserrano5
Legendary
Offline
Activity: 1974
Merit: 1029
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 15, 2015, 06:49:06 AM |
|
Y para complicar más el hilo ![Cheesy](https://bitcointalk.org/Smileys/default/cheesy.gif) , las direcciones no existen. Son solo una convención para que a nosotros nos resulte más fácil trabajar con bitcoin. Internamente, hacer una transacción es plantear un problema matemático, y quien lo solucione podrá plantear otro (o sea, enviar otra transacción). Por eso "la cadena de bloques" (los nodos, realmente) no tiene que verificar que las direcciones existan o no, solo se verifica que las soluciones (transacciones) propuestas a los problemas existentes (transacciones pendientes de confirmar) son correctas.
|
|
|
|
escalicha
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 15, 2015, 07:59:40 AM |
|
Absolutamente de acuerdo con la dificultad de que dos claves privadas colisionen, y para añadírle un toque extra de dificultad:
Хорошо, если коротко, в два раза хорошо.
Saludos
PD: alguien tenía que hacer la broma.
|
|
|
|
BITSPANISH (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 15, 2015, 05:08:36 PM |
|
De acuerdo.
Doy por hecho (de momento) que es casi imposible que se produzca un problema de duplicidad como el que estamos tratando.
¿En el muy improbable caso de que se produjese una duplicidad en las direcciones, también se produciría una duplicidad en las claves privadas?
¿O la generación de claves privadas (con respecto a una clave pública) es aleatoria?
Otro supuesto.
Pongamos que creo una cartera en frio, y realizo a la susodicha una pequeña transferencia.
¿Esa transferencia invalidaría la improbable duplicidad?
Lo digo porque una vez que el sistema valide una transferencia (por pequéña que sea), si en un futuro (muy dificil) se produjese esa duplicidad, todas las transacciones irían a parar a la primera dirección creada.
¿No?
|
|
|
|
EcuaMobi
Legendary
Offline
Activity: 1876
Merit: 1475
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 15, 2015, 05:17:32 PM |
|
De acuerdo.
Doy por hecho (de momento) que es casi imposible que se produzca un problema de duplicidad como el que estamos tratando.
¿En el muy improbable caso de que se produjese una duplicidad en las direcciones, también se produciría una duplicidad en las claves privadas?
¿O la generación de claves privadas (con respecto a una clave pública) es aleatoria?
Otro supuesto.
Pongamos que creo una cartera en frio, y realizo a la susodicha una pequeña transferencia.
¿Esa transferencia invalidaría la improbable duplicidad?
Lo digo porque una vez que el sistema valide una transferencia (por pequéña que sea), si en un futuro (muy dificil) se produjese esa duplicidad, todas las transacciones irían a parar a la primera dirección creada.
¿No?
La generación de direcciones empieza por una clave privada. Se genera una clave privada aleatoria y a partir de ella se calcula (no se genera) la dirección correspondiente. En el supuesto caso de que se genere la misma clave privada siempre se obtendrá la misma dirección (que puede ser representada en varios formatos pero sigue siendo la misma). Si esto llegara a pasar cualquiera de las personas que tengas acceso a esta clave privada pueden crear transacciones gastando el saldo de esa dirección. Y de hecho esto ha pasado antes, pero sólo cuando el software que genera las direcciones está defectuoso (específicamente el método de generación de números aleatorios) o es malicioso. Ya que las direcciones se generan al azar el hecho de que tu dirección tenga saldo no influye en nada la generación de otras direcciones. Como se ha dicho no se verifica el blockchain a la hora de generar direcciones. Si alguien más llegara a generar la misma clave privada y por tanto dirección, el efecto sería el mismo como si tú hubieras compartido la clave privada con él: cualquiera de los 2 podría gastar de la misma dirección y el uno le podría robar su saldo al otro. Pero eso no va a pasar si el software es confiable.
|
|
|
|
BITSPANISH (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 15, 2015, 05:28:37 PM |
|
Hola.
Eso es lo quería oir.
A igual clave púbica, igual clave privada. Vale.
Te comento otra cosa. Si esto en lo cierto entonces si yo por ejemplo genero (creo) una cartera en Blockchain, o con algún software cliente (multibit por ejemplo), y alguien más adelante (es sólo una hipotesis) se pone a generar una cartera en frío y crea una duplicidad.
¿Esa persona que ha creado la duplicidad tendría acceso a los fondos de mi cartera?
P.D. Te pregunto, porque veo que entiendes algo bastante...
|
|
|
|
EcuaMobi
Legendary
Offline
Activity: 1876
Merit: 1475
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 15, 2015, 05:36:34 PM |
|
Si esto en lo cierto entonces si yo por ejemplo genero (creo) una cartera en Blockchain, o con algún software cliente (multibit por ejemplo), y alguien más adelante (es sólo una hipotesis) se pone a generar una cartera en frío y crea una duplicidad.
¿Esa persona que ha creado la duplicidad tendría acceso a los fondos de mi cartera?
Sí, eso ya respondí en mi post anterior. Si eso llegara a pasar entonces él tendría acceso a los fondos de tu cartera. Pero como ves eso es sólo una hipótesis que nunca va pasar. Sería como ganarse el premio gordo de la lotería 10 veces seguidas.
|
|
|
|
BITSPANISH (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 15, 2015, 05:45:28 PM |
|
A lo que me refería (y disculpa si te parezco pesado) es que esa (pequeña posibilidad de 1 entre varios trillones) hipotética duplicidad entre carteras afectaria a cualquier cartera ya existente; fuese cual fuese su naturaleza de origen (blockchain, multibit, bitadress).
Porque si siempre (independientemente del modo de gestión y generación de una cartera) una clave pública se abre siempre con la misma clave privada (predefinida por el protocolo).
|
|
|
|
Anillos2
Legendary
Offline
Activity: 1260
Merit: 1003
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 15, 2015, 06:20:58 PM |
|
A lo que me refería (y disculpa si te parezco pesado) es que esa (pequeña posibilidad de 1 entre varios trillones) hipotética duplicidad entre carteras afectaria a cualquier cartera ya existente; fuese cual fuese su naturaleza de origen (blockchain, multibit, bitadress).
Porque si siempre (independientemente del modo de gestión y generación de una cartera) una clave pública se abre siempre con la misma clave privada (predefinida por el protocolo).
Si, la probabilidad de que una cartera generada al azar colisione con otra existente es la misma y no importa si esa se creó de una forma o de otra, símplemente una dirección de BTC son números, nada más, la probabilidad de acertar un número entre varios sextillones es siempre la misma. Siempre la misma, pero mínima, no hay nada que temer.
|
|
|
|
MichioKaku
Newbie
Offline
Activity: 40
Merit: 0
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 15, 2015, 09:22:51 PM |
|
Creo que alguien dijo para comparar, que eran más direcciones que átomos en el universo. No sé si será verdad pero suena un número lo suficientemente grande. ![Grin](https://bitcointalk.org/Smileys/default/grin.gif)
|
|
|
|
dserrano5
Legendary
Offline
Activity: 1974
Merit: 1029
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 15, 2015, 10:19:13 PM |
|
Creo que alguien dijo para comparar, que eran más direcciones que átomos en el universo. No sé si será verdad pero suena un número lo suficientemente grande. ![Grin](https://bitcointalk.org/Smileys/default/grin.gif) Casi tantas como átomos en la tierra. Los del universo son muy muchos ![Tongue](https://bitcointalk.org/Smileys/default/tongue.gif) . ![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2FtJpLqwc.png&t=665&c=M2RhIvJdHDx9ng)
|
|
|
|
BITSPANISH (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 15, 2015, 10:22:55 PM |
|
Si, la probabilidad de que una cartera generada al azar colisione con otra existente es la misma y no importa si esa se creó de una forma o de otra, símplemente una dirección de BTC son números, nada más, la probabilidad de acertar un número entre varios sextillones es siempre la misma. Gracias; esa es la respuesta que quería oir. https://es.bitcoin.it/wiki/Clave_privadaCada dirección Bitcoin tiene asociada una clave privada, almacenada en el archivo monedero de la persona poseedora del saldo. La clave privada está relacionada matemáticamente con la dirección Bitcoin, de tal modo que la dirección Bitcoin se deriva de la clave privada siguiendo unas reglas fijas, mientras que la operación inversa, deducir una clave privada a partir de la dirección Bitcoin, es imposible. Bueno, pues hemos llegado a un consenso. Para generar Carteras Frías / Carteras en Papel sólo conozco 1 forma. Y según tengo entendido; la más segura que hay actualmente. *Bitaddress https://www.bitaddress.org/¿Qué opinión y seguridad os merece Bitaddress? ¿Conoceís alguna más?
|
|
|
|
EcuaMobi
Legendary
Offline
Activity: 1876
Merit: 1475
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 15, 2015, 10:31:29 PM |
|
Bueno, pues hemos llegado a un consenso. Para generar Carteras Frías / Carteras en Papel sólo conozco 1 forma. Y según tengo entendido; la más segura que hay actualmente. *Bitaddress https://www.bitaddress.org/¿Qué opinión y seguridad os merece Bitaddress? ¿Conoceís alguna más? Hay varias opciones. Esa es bastante conocida y confiable. Sólo asegúrate de bajártela de la página oficial y de ejecutarla complemente desconectado de la red. También puedes revisar esta aplicación para Android que desarrollé: https://bitcointalk.org/?topic=811397https://play.google.com/store/apps/details?id=com.ecuamobi.deckwalletEs muy segura porque es de código abierto, no tiene permisos de conectarse a la red, el input principal (el orden de las cartas de una baraja) es ingresado sin usar el teclado así que no es vulnerable a keyloggers y la entropía proviene de barajar las cartas y no de un software que podría tener errores en el generador de números pseudo-aleatorios.
|
|
|
|
alexr_96
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 15, 2015, 10:37:32 PM |
|
Bueno, pues hemos llegado a un consenso. Para generar Carteras Frías / Carteras en Papel sólo conozco 1 forma. Y según tengo entendido; la más segura que hay actualmente. *Bitaddress
Lo primero, cartera fría y cartera en papel no es lo mismo. Una cartera en papel se puede generar de cualquier modo que puedas generar una dirección bitcoin. Con el cliente oficial, multibit, armory, electrum, blockchain, bitaddress, con dados... Exportas la clave y la escribes en un papel.
|
|
|
|
BITSPANISH (OP)
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 15, 2015, 10:38:59 PM |
|
Hola EcuaMobi Me estás ayudando mucho. Gracias por tu paciencia. Tendré en cuenta: En principio Bitaddress me genera mucha confianza. No lo digo por la fama que tiene, si no porque con Live Cd puedo genrar una Cartera en Frío de uan forma muy fiable. En principio me da más seguridad que tu aplicación. En cualquier caso la echaré una ojeada. Gracias otra vez EcuaMobi
|
|
|
|
|