Bitcoin Forum
April 26, 2024, 02:45:01 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Firmar un texto con fecha con Bitcoin  (Read 948 times)
MA40 (OP)
Hero Member
*****
Offline Offline

Activity: 785
Merit: 524


--- I ❤ Ƀ ---


View Profile WWW
May 31, 2016, 07:07:28 AM
Last edit: May 31, 2016, 07:33:48 AM by MA40
 #1

Hola.

Aparte de todas las utilidades que se le puedan dar al Bitcoin como medio de pago, también puede ser utilizado para firmar un texto. Pero… ¿se puede vincular ese texto con una fecha? Si se consigue introducir esa firma en la cadena de bloques de la red Bitcoin, la fecha de la transacción podría demostrar que quien ordenó esa transacción, conocía ese texto en el momento de dar la orden.

Pues esa es la idea.

En realidad, este mensaje proviene de otro con un tema totalmente diferente; no obstante voy a incluir las partes que están relacionadas con este tema para que se entienda mejor y sirvan de inicio del hilo.

****************************************************************************
****************************************************************************

O a lo mejor es que no interesa que uno pueda dejar constancia de algo mediante una firma digital y poder usarlo luego como demostración, por ejemplo, imaginad que inventáis algo, pues si subís a la cadena de bloques una firma digital (ahora estoy no se puede hacer sin rodeos) podríais demostrar que los autores sois vosotros.
Hola Anillos2.

Me interesa esto que has dicho.

Ahora yo sé cómo firmar un mensaje usando una dirección Bitcoin; también sé cómo verificar un mensaje firmado. Lo que no sé es cómo poder demostrar la fecha de ese mensaje.

No sé si te he entendido bien… ¿Quieres decir que se puede subir un mensaje firmado a la cadena de bloques de la red Bitcoin? Eso le podría poner fecha a un mensaje firmado. ¿Sabes dónde puedo encontrar información al respecto?

Un saludo.
Lo que intenté es crear una "brain-wallet" con una frase que describe mi idea, el hash de un fichero, vuestro nombre, fechas... y luego de ahí sacar una dirección de Bitcoin y transferir algo de dinero a ella con un grifo o bien una transacción directa.

De esa forma se puede conseguir demostrar que ese conjunto de palabras o hash ya existían en un momento determinado de la historia (cuando se ingresa dinero en la dirección) y que no son una invención posterior. Luego se puede retirar el dinero de esa dirección. Eso si, tened la precaución de esconder la frase con la que creasteis la cartera de papel.

****************************************************************************
****************************************************************************

O a lo mejor es que no interesa que uno pueda dejar constancia de algo mediante una firma digital y poder usarlo luego como demostración, por ejemplo, imaginad que inventáis algo, pues si subís a la cadena de bloques una firma digital (ahora estoy no se puede hacer sin rodeos) podríais demostrar que los autores sois vosotros.

Me interesa esto que has dicho.

Ahora yo sé cómo firmar un mensaje usando una dirección Bitcoin; también sé cómo verificar un mensaje firmado. Lo que no sé es cómo poder demostrar la fecha de ese mensaje.

No sé si te he entendido bien… ¿Quieres decir que se puede subir un mensaje firmado a la cadena de bloques de la red Bitcoin? Eso le podría poner fecha a un mensaje firmado. ¿Sabes dónde puedo encontrar información al respecto?

Si te fijas, la firma y verificación de firmas no es algo nuevo de Bitcoin. Ya era posible desde que existe la criptografía asimétrica. El DNI electrónico, por ejemplo, lo hace perfectamente.

Lo que ofrece de nuevo Bitcoin, como ha indicado Anillos2, es la capacidad de localizar de forma inequívoca esa firma en el tiempo. Antes de Bitcoin, la "solución" era "confiar" en servidores de tiempo, o enviarlo a tu cuenta de correo de Gmail y "confiar" en que los administradores de Google sean honestos y no truquen los registros temporales de esos correos electrónicos.

La primera web que proporcionaba este servicio de registro temporal utilizando Bitcoin era https://proofofexistence.com , que es de pago. Yo mismo he programado algo similar, pero que es gratuito aunque solo se publica una vez al día, y para que sea gratuito requiere también que guardes un fichero Bitcoin-Merkle además del fichero original, por lo que resulta un poco más complejo. Lo estrictamente necesario, sin filigranas. Docforever: http://docforever.com

Sé que la web Stampery también proporciona este servicio de forma profesional: https://stampery.com

Y finalmente, también gratuito desde la semana pasada, y que también desde la semana pasada permite la descarga del fichero Bitcoin-Merkle por lo que tienes control total de la prueba. Tierion: https://tierion.com

Las utilidades son múltiples: protección defensiva contra patentes, cambio de la carga de prueba en algunos procesos judiciales, etc. Aunque bueno, este hilo quizás no sea el más adecuado para tratar este tema.

****************************************************************************
****************************************************************************

A partir de aquí, comienza el debate.

¿Qué sucedería si se enfrentara una fuerza imparable contra un muro inamovible?
ChessFaucet.com - Gana bitcoins jugando al ajedrez contra el ordenador. ♟♟♜♞♝♛♚♝♞♜♟♟
⚡ Lightning Address: MA40@coinos.io
1714099501
Hero Member
*
Offline Offline

Posts: 1714099501

View Profile Personal Message (Offline)

Ignore
1714099501
Reply with quote  #2

1714099501
Report to moderator
1714099501
Hero Member
*
Offline Offline

Posts: 1714099501

View Profile Personal Message (Offline)

Ignore
1714099501
Reply with quote  #2

1714099501
Report to moderator
Each block is stacked on top of the previous one. Adding another block to the top makes all lower blocks more difficult to remove: there is more "weight" above each block. A transaction in a block 6 blocks deep (6 confirmations) will be very difficult to remove.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714099501
Hero Member
*
Offline Offline

Posts: 1714099501

View Profile Personal Message (Offline)

Ignore
1714099501
Reply with quote  #2

1714099501
Report to moderator
1714099501
Hero Member
*
Offline Offline

Posts: 1714099501

View Profile Personal Message (Offline)

Ignore
1714099501
Reply with quote  #2

1714099501
Report to moderator
1714099501
Hero Member
*
Offline Offline

Posts: 1714099501

View Profile Personal Message (Offline)

Ignore
1714099501
Reply with quote  #2

1714099501
Report to moderator
MA40 (OP)
Hero Member
*****
Offline Offline

Activity: 785
Merit: 524


--- I ❤ Ƀ ---


View Profile WWW
May 31, 2016, 07:11:06 AM
Last edit: May 31, 2016, 09:10:17 AM by MA40
 #2

Primero me dirigiré a Anillos2.

He hecho lo siguiente (creo que lo he hecho bien):

En primer lugar, he entrado en la web https://www.bitaddress.org y me he creado una “Cartera mental” con la frase que está dentro de este archivo de texto, (hay que copiar exactamente los caracteres teniendo cuidado de no añadir ni omitir ninguno): http://www.edicionesma40.com/downloads/adivinanza.txt

Code:
En un campo de batalla, dos ejércitos de frente, sin más armas que la mente, una gran contienda estalla. (Adivinanza inventada por MA40)

Lo primero que me ha llamado la atención es que, aunque seleccionas que vas a generar una “Cartera mental”, el cursor sigue creando puntitos verdes en la pantalla para producir entropía hasta completar el 100%. Pienso que no debería ser así, ya que si la cartera se va a generar con una contraseña larga, la entropía del cursor no tiene nada que ver ¿no?

Bien. Una vez terminado el proceso de creación de la cartera, el resultado es el siguiente:

Code:
Bitcoin Address: 16Mi9oiPs7u624dj39HKbM9AJbGb4CQjtC
Private Key (Wallet Import Format): 5JoVQEFau1bZFao1edoCRusA4TUbYz5sVpo9vrByAWGFiZJrv1y

Otra duda que me entra es qué diferencia hay entre generar la cartera con “Dirección comprimida” o no. El resultado es muy parecido pero diferente. Yo he elegido crear la cartera sin comprimir la dirección.

Después de esto, he realizado una transacción de 0,01 BTC a esa cartera, véase aquí: https://blockchain.info/tx/13b52e89f105c1ad191f447fb128a6774b1c5724793600e85b06fbb42d51be56

Y por último, he vaciado la cartera, véase aquí: https://blockchain.info/tx/5532e849099772a24b15e57aa3ce3546aa24f4bcfb5315f28a71b75f96f43d4a

Pues bien. Ya se ha registrado la dirección Bitcoin “16Mi9oiPs7u624dj39HKbM9AJbGb4CQjtC” con fecha 30/05/2016. Así que, ya podremos demostrar que existía la frase de la Adivinanza en esa fecha y que el autor es MA40 ¿no?

Efectivamente, si volvemos a crear en https://www.bitaddress.org una cartera mental con la misma frase, el resultado es el mismo.

Lo que no sé, y en esto tengo mis dudas, es si esto tendría alguna validez ante un tribunal judicial.

Otra duda es: qué pasaría si desapareciera la web https://www.bitaddress.org, ¿se podría hacer la misma demostración en otro sitio?

Y por último.

Eso si, tened la precaución de esconder la frase con la que creasteis la cartera de papel.

No entiendo por qué hay que hacer esto. Si hemos vaciado la cartera y en la frase ya pone que yo soy el autor de la Adivinanza, ¿qué malo puede pasar si me roban la frase?

Un saludo.

P.D.: Mañana creo que podré poner el otro mensaje dirigiéndome a Shawshank.

¿Qué sucedería si se enfrentara una fuerza imparable contra un muro inamovible?
ChessFaucet.com - Gana bitcoins jugando al ajedrez contra el ordenador. ♟♟♜♞♝♛♚♝♞♜♟♟
⚡ Lightning Address: MA40@coinos.io
Nailuj2000
Member
**
Offline Offline

Activity: 65
Merit: 10


View Profile
May 31, 2016, 10:26:15 AM
 #3

El código fuente de bitaddress es javascript que puede bajarse.
A lo mejor es interesante editarlo, dejando sólo lo necesario de la parte de cartera mental, y hacer una versión que sirva sólo para subir un documento, o un texto y generar la clave privada.

Si saco un ratillo lo intento, y si lo consigo, o si voy consiguendoo algo lo pongo en el github.
Si os parece buena idea podeis empezar ya Smiley


Un saludo!
roterdam
Hero Member
*****
Offline Offline

Activity: 640
Merit: 500


interested to BUY CASASCIUS


View Profile
May 31, 2016, 03:21:23 PM
 #4

Pienso que no debería ser así, ya que si la cartera se va a generar con una contraseña larga, la entropía del cursor no tiene nada que ver ¿no?

en efecto lo de la entropia con el raton es para la opcion en la que el propia programa te genera una al azar, hay un fallo en esto pero no tien mas importancia.

Otra duda que me entra es qué diferencia hay entre generar la cartera con “Dirección comprimida” o no.?

Pues eso que esta comprimida.

Pues bien. Ya se ha registrado la dirección Bitcoin “16Mi9oiPs7u624dj39HKbM9AJbGb4CQjtC” con fecha 30/05/2016. Así que, ya podremos demostrar que existía la frase de la Adivinanza en esa fecha y que el autor es MA40 ¿no?

Si y no , vamos que el proceso no es asi .
Tu has usado la frase como clave privada, por lo que en cierta forma, si podrias demostrar que existia esa frase en esa fecha, pues hiciste una transaccion desde esa direccion que quedo registrada con su sello de tiempo en la cadena de bloques, pero para demostrarlo, deberias de mostrar tu clave privada.
Hay una forma mas potente de hacer esto, sin tener que mostrar tu clave privada, :
obtienes el resultado de una funcion de  hash de el archivo, texto o imagen que quieras acreditar, (sha256 u otra), y este hash lo incluyes en la transaccion en el campo de datos, tambien puedes subir este archivo a la red y poner una direccion abreviada hacia el par que cualquiera lo pueda comprobar.

Lo que no sé, y en esto tengo mis dudas, es si esto tendría alguna validez ante un tribunal judicial.

Pues depende del juez y de los conocimientos que tenga sobre bitcoin, pues si lo conoce bien perfectamente podria ser una prueba irrefutable, de hecho yo espero que asi vaya siendo cada vez mas.

Otra duda es: qué pasaría si desapareciera la web https://www.bitaddress.org, ¿se podría hacer la misma demostración en otro sitio?

si desde luego bitaddress es un programa en javascript que se ejecuta solo en el lado del cliente, son implementaciones de procedimientos estandar, de hecho todo lo podrias hacer con lapiz y papel.

No entiendo por qué hay que hacer esto. Si hemos vaciado la cartera y en la frase ya pone que yo soy el autor de la Adivinanza, ¿qué malo puede pasar si me roban la frase?

nada, no pasa nada si no vas a volver a usar esta direccion.

uff espero sea de ayuda..

MA40 (OP)
Hero Member
*****
Offline Offline

Activity: 785
Merit: 524


--- I ❤ Ƀ ---


View Profile WWW
May 31, 2016, 04:09:14 PM
 #5

uff espero sea de ayuda..

Sí, sí, gracias roterdam.

Además, ya sabes lo que se dice: “poca ayuda no es estorbo”.

Un saludo.

¿Qué sucedería si se enfrentara una fuerza imparable contra un muro inamovible?
ChessFaucet.com - Gana bitcoins jugando al ajedrez contra el ordenador. ♟♟♜♞♝♛♚♝♞♜♟♟
⚡ Lightning Address: MA40@coinos.io
Anillos2
Legendary
*
Offline Offline

Activity: 1260
Merit: 1003


View Profile
May 31, 2016, 04:15:58 PM
 #6

Quote
Lo primero que me ha llamado la atención es que, aunque seleccionas que vas a generar una “Cartera mental”, el cursor sigue creando puntitos verdes en la pantalla para producir entropía hasta completar el 100%. Pienso que no debería ser así, ya que si la cartera se va a generar con una contraseña larga, la entropía del cursor no tiene nada que ver ¿no?
No lo he comprobado, pero creo que los puntitos son indiferentes a la cartera mental, puesto que la idea de este tipo de carteras precisamente es generarse sólo de la cadena de caracteres que uses y nada más.

Es importante mirar bien la codificación de caracteres, mi consejo es que si usáis acentos en el texto, tengáis en cuenta si guardáis con Windows - 1252 o Unicode, más que nada porque puede alterar el resultado, si bien lo cierto es que si no funcionase con una codificación, podríais probar con otra. En todo caso, guardad siempre el texto en un fichero de texto plano (no con formato tipo "MS Word" o "LibreOffice Writer") y hacedle una copia de seguridad.

Si váis a incluir el hash de un fichero, intentad usar varios sistemas de hash, cuantos más, mejor, más difícil es que en el futuro se puedan detectar colisiones, puesto que una forma de colisionar en un sistema podría fallar si hay otros sistemas de respaldo.

MA40 (OP)
Hero Member
*****
Offline Offline

Activity: 785
Merit: 524


--- I ❤ Ƀ ---


View Profile WWW
June 01, 2016, 06:07:38 AM
Last edit: June 01, 2016, 02:37:14 PM by MA40
 #7

Hola.

En este mensaje, me dirigiré a Shawshank.

He empezado a hacer una prueba de firma en https://proofofexistence.com, pero cuando me ha pedido un pago de 5 mBTC, la he abandonado.

Nota: Se trata de registrar la autoría del archivo http://www.edicionesma40.com/downloads/adivinanza.txt

A continuación he hecho la misma prueba en http://docforever.com, y después de un día, por fin tengo el resultado.

Code:
File:			adivinanza.txt
Type: text/plain
Size: 136 bytes
Last modified: 30/5/2016
ID SHA256: b0bf84acabf53dbe8b27b153b59c8f4df739532d5bf23e7ccafeea4e8907f18e

Quote
Well done!

You can now prove the existence of your document by accessing the Bitcoin Blockchain.

https://www.blocktrail.com/BTC/tx/0c3d710757c9b5dd129cf2e11f62860fab4e6e3580bad5fe0e827c7c973b203f

Y el archivo Bitcoin-Merkle es éste: http://www.edicionesma40.com//downloads/BitcoinMerkle_b0bf84acabf53dbe8b27b153b59c8f4df739532d5bf23e7ccafeea4e8907f18e.txt

Lo que no sé es qué hacer ahora con todo esto. ¿Cómo puedo demostrar que yo soy el propietario del archivo “adivinanza.txt”?

Por último, me he registrado en https://tierion.com; no entiendo muy bien esta página, la culpa es de mi inglés tan “corto”.

No sé si estaré equivocado pero la impresión que me he llevado es que sirve para registrar archivos que están alojados en una URL ¿es así? Si es así, también le veo su utilidad, lo que pasa es que no sé cómo utilizar la web. He hecho una prueba pero sin ningún resultado, lo que he hecho es, en “SETTINGS”, introducir los datos que aparecen en la siguiente imagen, pero como he dicho, después de un día, no ha habido ningún cambio.



Nota: Aunque, volviéndolo a mirar, parece más bien que lo que se registra es algo relacionado con la información que se obtiene por medio de un formulario. En fin, no tengo ni idea, si alguien pudiera arrojarme algo de luz…

Un saludo.

¿Qué sucedería si se enfrentara una fuerza imparable contra un muro inamovible?
ChessFaucet.com - Gana bitcoins jugando al ajedrez contra el ordenador. ♟♟♜♞♝♛♚♝♞♜♟♟
⚡ Lightning Address: MA40@coinos.io
MA40 (OP)
Hero Member
*****
Offline Offline

Activity: 785
Merit: 524


--- I ❤ Ƀ ---


View Profile WWW
June 01, 2016, 07:13:48 AM
 #8

Por cierto, alguien me ha preguntado cuál es la respuesta a mi adivinanza.

Quote
En un campo de batalla,
dos ejércitos de frente,
sin más armas que la mente,
una gran contienda estalla.

La respuesta es: “El Ajedrez”.

Os animo a que se la pongáis a vuestros amigos y familia, luego me podéis decir aquí si la han adivinado.

Un saludo.

¿Qué sucedería si se enfrentara una fuerza imparable contra un muro inamovible?
ChessFaucet.com - Gana bitcoins jugando al ajedrez contra el ordenador. ♟♟♜♞♝♛♚♝♞♜♟♟
⚡ Lightning Address: MA40@coinos.io
Shawshank
Legendary
*
Offline Offline

Activity: 1623
Merit: 1608



View Profile
June 01, 2016, 09:49:26 AM
 #9

Lo que no sé es qué hacer ahora con todo esto. ¿Cómo puedo demostrar que yo soy el propietario del archivo “adivinanza.txt”?

Realmente lo que puedes demostrar no es que tú seas el propietario del fichero "adivinanza.txt" (¿¿de quién son las ideas??), sino que el "contenido" del fichero "adivinanza.txt" ya existía antes de recibir la primera confirmación de la transacción con txid 0c3d710757c9b5dd129cf2e11f62860fab4e6e3580bad5fe0e827c7c973b203f .

La demostración aparece en la propia página en docforever.com cuando descargas el fichero Bitcoin-Merkle. Esa demostración está preparada para ejecutarse únicamente sobre una máquina Linux. Para Windows, se me ocurre que quizás funcione instalando Cygwin, que es un emulador de línea de comandos de Linux, lanzar esos mismos comandos y comprobar que los resultados son los esperados. NO RECOMIENDO INSTALAR CYGWIN SI NO TIENES UN CONOCIMIENTO MEDIO-ALTO DE INFORMÁTICA.

Date cuenta que el fichero Bitcoin-Merkle es necesario porque la web agrupa potencialmente cientos de ficheros en una única transacción. De esta forma es posible demostrar la existencia de miles de ficheros con una única transacción Bitcoin que registre la raíz Merkle de todos los documentos recibidos a lo largo del día. Así funcionan también Stampery y Tierion. Sin embargo, proofofexistence.com crea una transacción por cada documento, por lo que no necesita de fichero Bitcoin-Merkle, su demostración es inmediata porque el hash de tu documento aparece directamente en la cadena de bloques, pero a cambio sale más caro.

Quote from: MA40
Por último, me he registrado en https://tierion.com; no entiendo muy bien esta página, la culpa es de mi inglés tan “corto”.

No sé si estaré equivocado pero la impresión que me he llevado es que sirve para registrar archivos que están alojados en una URL ¿es así? Si es así, también le veo su utilidad, lo que pasa es que no sé cómo utilizar la web. He hecho una prueba pero sin ningún resultado, lo que he hecho es, en “SETTINGS”, introducir los datos que aparecen en la siguiente imagen, pero como he dicho, después de un día, no ha habido ningún cambio.
No sé si lo habrán cambiado, pero la última vez que me conecté a Tierion, me pareció que solo proporcionan un API. Es decir, dan una interfaz de programación de aplicaciones y me dio la impresión de que no proporcionaban una interfaz gráfica para la verificación de documentos. Es decir, te ofrecen los cimientos para construir tu propia aplicación. Ellos se encargan del almacenamiento y verificación, y tu programa debería llamar a su API, generar la interfaz gráfica, etc.





Lightning Address: shawshank@getalby.com
MA40 (OP)
Hero Member
*****
Offline Offline

Activity: 785
Merit: 524


--- I ❤ Ƀ ---


View Profile WWW
June 01, 2016, 10:08:51 AM
 #10

Gracias Shawshank

NO RECOMIENDO INSTALAR CYGWIN SI NO TIENES UN CONOCIMIENTO MEDIO-ALTO DE INFORMÁTICA.

Uff, entonces mejor NO. Undecided

Shawshank, me gustaría tener tu opinión sobre la primera demostración de autoría de la Adivinanza, la de la “Cartera mental”. ¿Podría ser? De todas formas, en el caso de que no quieres pronunciarte sobre ella, no pasaría nada, lo entendería perfectamente. Wink

Un saludo.

¿Qué sucedería si se enfrentara una fuerza imparable contra un muro inamovible?
ChessFaucet.com - Gana bitcoins jugando al ajedrez contra el ordenador. ♟♟♜♞♝♛♚♝♞♜♟♟
⚡ Lightning Address: MA40@coinos.io
Shawshank
Legendary
*
Offline Offline

Activity: 1623
Merit: 1608



View Profile
June 01, 2016, 10:21:09 AM
 #11

Shawshank, me gustaría tener tu opinión sobre la primera demostración de autoría de la Adivinanza, la de la “Cartera mental”. ¿Podría ser? De todas formas, en el caso de que no quieres pronunciarte sobre ella, no pasaría nada, lo entendería perfectamente. Wink

¿Te refieres a tu propuesta de crear un hash del contenido del fichero, crear una clave privada a partir de ese hash, y enviar unos pocos satoshis a esa dirección? En ese caso, sí, es una demostración válida.

Sin embargo, esa es la forma antigua de demostración en Bitcoin. Ahora existe una operación (llamada OP_RETURN) que es la que utilizan todos los programas de notaría que he comentado antes. El formato es OP_RETURN <datos> donde los datos son un máximo de 80 bytes, y normalmente se utilizan para registrar los 32 bytes de un hash SHA256.

Por ejemplo, en https://www.blocktrail.com/BTC/tx/0c3d710757c9b5dd129cf2e11f62860fab4e6e3580bad5fe0e827c7c973b203f se puede ver que en la sección de datos del OP_RETURN aparece el texto "FOREVER " seguido de 32 bytes de datos que representan un hash SHA256 (usando así un total de 40 bytes).

Lightning Address: shawshank@getalby.com
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!