Ya veo que hay comentarios excelentes, pero déjame condensarlos y agregar las piezas faltantes:
¿Por qué hashear la prueba anterior en la prueba actual?
Como ya se indicó en ISMSDEV , keybase es esencialmente la construcción de una estructura de datos solo para anexos, un registro inmutable. La idea es que al incorporar la prueba anterior, no solo firme la declaración actual, sino que también confirme su conocimiento de la anterior.
¿Por qué una cadena así es algo bueno?
Las estructuras de datos solo para anexos tienen algunas propiedades agradables: la secuencia es fija y esto es fácil de probar y verificar. Supongamos que tiene una cadena como esta:
A -> B
Donde A
es la primera prueba y B
es una prueba que incorpora el hash de A
. Si ahora desea agregar más tarde una prueba X
que "sucedió" entre A
y B
, puede incrustar el hash de A
para convertirlo en un sucesor. Sin embargo, la cadena bifurcada ahora se parece a esto:
X
< - A
- > B
Si realmente desea que X
forme parte de la cadena, deberá crear un nuevo B'
que incorpore el hash de X
en lugar del A
. Esto se vería así:
A
- > X
- > B'
Ahora, lo bueno es que esto hará que la prueba existente de B
(la firma) sea incorrecta, ya que el contenido firmado cambió. Por lo tanto, la gente puede detectar esto, porque la cabeza ahora es B'
en lugar de B
.
Para que esto quede más claro, si tiene una cadena larga, como:
A
- > B
- > ... - > Z
, entonces puede verificar que ningún elemento de toda la cadena haya cambiado recordando solo el jefe actual de la cadena. Si en CUALQUIER punto de la cadena se cambia algo, todos los elementos siguientes deberán recrearse y el elemento superior (el hash). Por lo tanto, para un servicio que continuamente publica la cadena y, por lo tanto, la firma del titular, solo necesita recordar este y tan pronto como la cadena cambie (probablemente se agregaron nuevos elementos), solo tiene que verificar todo lo que ya tenía y después de eso, recuerda el nuevo.
Si está interesado en obtener más detalles, Keybase explica algunos más detalles de su enfoque aquí .
Acerca de comprometerse con la cadena de bloques de Bitcoin ...
Ok, así que lo que expliqué anteriormente ya se mantiene sin Bitcoin. Pero ¿por qué ahora también empujar a la cadena de Bitcoin? Esencialmente, los usuarios / clientes de Bitcoin están verificando y verificando continuamente que la cadena de Bitcoin sea un registro de solo apéndice, un registro público con marca de tiempo. Esto nos proporciona un registro público y cerrado de eventos que está protegido por una gran comunidad global. Ahora la gente comenzó a explotar esto al enviar datos, como hashes, a la cadena de bloques para poder marcar de forma segura e irrevocablemente sus datos. La parte importante aquí es que, a diferencia de una cadena de firmas que usted mismo como propietario de un servicio publica, no puede volver a escribir el historial. Para usted como usuario de Keybase, esto significa lo siguiente: Si, en algún momento, el hash de cabeza disponible a través del servicio de Keybase y el hash en la cadena de bloques de Bitcoin en ese momento divergen, ahora hay algo sospechoso. La gente de Keybase llama a esto "Ser honesto o ser atrapado". No puede lograr esto mediante la publicación en una página web, ya que puede cambiar en cualquier momento. Sin embargo, la cadena de bloques de Bitcoin es (casi *) inmutable.
(*) Por supuesto, Bitcoin tampoco es perfecto, pero la probabilidad o los ataques que logran la reescritura de la historia a gran escala son muy pequeños (ver ataque del 51%).
Entonces, ¿cuál es la imagen de bits
El panorama general es que las empresas como Keybase ponen mucho esfuerzo en crear software de cifrado que reduzca al mínimo la cantidad de confianza que debe depositar en los creadores / propietarios de servicios. Además de establecer la transparencia a través del código de fuente abierta, la publicación de las cadenas sig, hashes, etc. permite a los clientes incluso utilizar el servicio si no confían en él. La idea es que usted, como proveedor de servicios, no pueda engañar a su cliente.
Ok, esa fue una respuesta larga, pero espero que se aclaren las cosas. Simplemente sentí que hay algún contexto que debe mencionarse cuando se habla de esas cosas.