Pages:
Author

Topic: ¿Firmar transacciones offline? La parte más oscura de BTC - page 2. (Read 3049 times)

legendary
Activity: 1568
Merit: 1032
Beyond the flavor!
Lo pregunto porque todos los días intento aprender algo nuevo sobre el bitcoin y como se utiliza y las transacciones firmadas ha sido algo que siempre se me ha escapado. He preguntado a varios amigos y todos me mandan a leer más pero incluso se me hace difícil entender lo que leo al respecto, pues a la hora de hacer lo que leo no obtengo ningún resultado.
hero member
Activity: 597
Merit: 500
Si, yo a lo mejor te puedo ayudar (de hecho le he pagado una recompensa a un programador en el subforo de desarrollo para que una web con javascript hiciera exactamente eso).

Como la mayoría sabéis, Bitcoin es un concepto abstracto, un sistema de pago descentralizado, que puede entenderse de forma simplificada como una especie de base de datos (la cadena de bloques) que es compartida por todos los usuarios, ya que  todos los usuarios del cliente_qt se descargan y van actualizando dicha base de datos.

Pagar mediante bitcoins se asemejaría a realizar una modificación dentro de esa base de datos compartida de forma que, las unidades contables (bitcoins) que se encontraban en un registro (dirección bitcoin desde la que salen), pasan a estar en otro diferente (dirección bitcoin a la que llegan).

Pero para poder realizar esta operación de pago se deben cumplir dos condiciones. La primera es que quien ordena el pago sea el legítimo propietario de los bitcoins que se encuentran en la dirección de salida. Y la segunda es que toda la red de usuarios se aseguren de que tu pago no se trata de un intento de fraude en forma de doble gasto.

El posible intento de fraude se comprueba efectivamente en la cadena de bloques, ya que todas las unidades contables (BTC) y su histórico de movimientos son públicos.

Y la legítima propiedad se valida cuando todos los usuarios comprueban que el propietario de los bitcoins de la dirección de salida firma con la correspondiente clave privada. Esta clave privada se guarda en su billetera (archivo wallet.dat) y corresponde de forma unívoca con la dirección bitcoin que hay publicada en la cadena de bloques y que contiene los bitcoins que serán transferidos a la dirección de destino.

Así pues, aquel que posea la clave privada, estará en disposición de firmar una transacción válida de todos los bitcoins que su correspondiente y unívoca dirección bitcoin pueda contener en la cadena de bloques. Dicho en román paladino, aquel que posea la clave privada podrá gastar los bitcoins.

Por eso es de vital importancia que guardemos celosamente las claves privadas que dan acceso a nuestros bitcoins. Si alguien consigue acceder a esas claves tendrá acceso directo a nuestros ahorros.

Sabiendo esto, los cerebritos de esta comunidad desarrollaron mecanismos para reducir la exposición de las claves privadas a posibles atacantes. Las formas principales fueron cifrando la billetera y posibilitando la creación de parejas de claves públicas-privadas en ordenadores que nunca tendrán contacto con internet y por tanto, nunca habrán sido expuestos a troyanos, keyloggers, etc. Son las llamadas paperwallets. Estas paperwallets son muy interesantes ya que permiten enviar bitcoins a direcciones cuyas claves privadas jamás han sido expuestas al riesgo de hackeo, ya que sus propietarios las conservan a buen recaudo en forma de papel.

Pero tienen el inconveniente de que, si en algún momento queremos gastar esos bitcoins ahorrados en la dirección de la paperwallet, tenemos que firmar la correspondiente transacción con la clave privada que hay imprimida en el papel en un ordenador que tenga acceso a internet para poder publicar en la red dicha transacción. Y esto nos devuelve de nuevo al riesgo de los keyloggers, troyanos, etc.

Así que la solución para obtener una seguridad máxima es el poder construir y firmar una transacción válida desde un ordenador que jamás haya tenido o vaya a tener contacto con internet. Esto es, construir y firmar una transacción offline.

Por eso me gasté 1BTC en pagar a alguien para que hiciera algo tan extremadamente útil para evitar robos de claves y hackeos varios a novatos e inexpertos como yo.
legendary
Activity: 1568
Merit: 1032
Beyond the flavor!
No entiendo eso de firmar transacciones y menos transacciones offline. ¿Hay alguien con la suficiente paciencia y nivel pedagógico que pueda ayudarnos? (somos varios con la duda) 
Pages:
Jump to: