La tecnología fundamental que permite operar Snax, es conectando directamente las transacciones en la cadena de bloques con las cuentas en las plataformas de redes sociales como Twitter, Reddit y demás
La cadena Snax te permite hacer transacciones a cualquier nombre de cuenta en cualquier de las redes sociales públicas que están integradas con Snax (Sin necesidad de facturar previamente a la cuenta que recibe, a eso lo llamamos las transacciones sociales). Tú puedes estar seguro de que la transacción se recibe en la cuenta de destino sin necesitar ninguna intervención por parte de una entidad centralizada) aparte, por supuesto, de la red social en si misma)
Este articulo explicara como el Sistema sin certificación para la aprobación del protocolo de Snax funciona, tomando para ello como referencia el modelo de Twitter
No Hay que Autorizar, solo Verificar
Este es el principio mas importante a la hora de construir un sistema publico de criptografía, incluyendo sistema de cadena de bloques. Los sistemas de autentificación usando oAuth 2.0, por ejemplo Open ID connect, funcionan muy bien en servidores centralizados, sin embargo pueden ser difíciles de implementar en un sistema descentralizado
Estos sistemas están designados para solucionar un problema específico, cuando un usuario (client) necesita de autorización con cierto servicio (centralized server). Sin embargo, en los sistemas de autentificación y verificación en cadena de bloques, cualquier usuario tiene que ser verificado no solo por un servidor, sino por una entidad que observa (third party) todo el proceso
El protocolo Snax de verificación soluciona los siguientes problemas:
- Identificación de los usuarios, de cualquier plataforma publica en la cadena Snax
- Prueba o recibo de identificación de usuario a cualquier tercer parte en cualquier momento
- Registro e identificación de la cuenta sin requerir de necesarios accesos a la red social o plataforma
Primer Paso. Identificacion.
Tomando Twitter como ejemplo de una las redes socialaes o plataformas publicas, ya que viene intehgrada en Sanx desde su lanzamiento. En el hecho que tengas cuenta en Twitter y que quieres completar el proceso de registro en cadena Snax usando esa cuenta. La identificacion se hara bajo el siguiente algoritmo:
- El usuario registra su juego de llaves público y privadas (priv_key, pub_key).
- Selecciona una de las cuentas que no han sido asignadas (snax_name) en la cadena de bloques Snax (La cuenta snax_name quedara registrada en la cadena de bloques)
- El usuario genera la llave (K).
- Y calcula su función o requerimiento de hash o recursos
H (K, snax_name)=hmac_sha256 (K || hmac_sha256 (K || snax_name)) - El usuario admite haber recibido su Hash creando un Tweet desde su cuenta, reconociendo su intención de identificación por la cadena Snax
- El usuario entonces manda la siguiente información a un oráculo
- Su juego de llaves (K, snax_name)
- Su clave publica pub_key, para la cuenta pública Snax snax_name se va a quedar registrada.
- Su nombre de cuenta N en Twitter y un link de la identificación en Twitter (este proceso es opcional ya que el link se pude identificar en el oráculo usando el API del Tweet
- El oráculo entonces calcula tus recursos Hash y los compara con los encontrados en el Tweet de identificación, si los recursos son iguales, el Oráculo considerar la operación finalizada
- EL oráculo certifica el registro e identificación de la plataforma de Twitter con un contrato inteligente bajo el sujeto (K, snax_name, pub_key, N, L).
- El contrato creado en la plataforma registra la cuenta snax_name con la llave publica generada pub_key y suma la información a la cadena sobre la identificación del usuario en Twitter N, con la llave publica K, y el link al Tweet L.
Proceso de Registro e Identificación de Snax
Segundo Paso. Registro.
Es esencial explicar porque cualquier tercer parte no pueda confiar en un Sistema centralizado de ese Oráculo, que ha completado el registro del usuario. Consideremos las siguientes posibilidades para abrir una Ventana a aun ataque
- El Oráculo ha sido infectado
- Falsificación del registro de un usuario por un atacante
La principal línea de defense contra este tipo de ataques, viene de la imposibilidad de forzar el recibo de datos (K, snax_name) que haría posible la identificación vía Hash o recursos generados H. Como la identificación del Tweet tiene recursos generados hash H, publicados en Twitter por el usuario de la cuenta, un intruso no tiene la habilidad de generar el juego de llaves (K, snax_name), salvo aquello que le ha sido proporcionado por el usuario de la cuenta
De esta manera cualquier tercer parte involucrada, en cualquier momento, puede verificar la identidad del dueño de la cuenta Twitter N usando el siguiendo el algoritmo:
- Registro de la información en la cadena sobre la identificación del usuario (K, snax_name).
- Crear el hash H (K, snax_name).
- Ir al link público que se generó en el perfil de la cuenta L.
- Verificar que la cuenta ha generado ese Tweet L y que de verdad pertenece a la cuenta de usuario asociada N.
- Verificar la presencia del hash H en el tweet L. Si el hash generado es idéntico la identificación es valida
Tercer Paso. Usar la cuenta de Snax como identificación.
Ya que hemos aprobado la identificación del usuario, el nombre en la cadena a la hora del registro snax_name puede ser usado para la identificación del usuario en Twitter N. Por ejemplo la cena Snax usa snax_name para la cuenta N para la emisión de los tokens Snax emission of the SNAX tokens.
Este proceso Tambien hace posible crear la transacción de cualquier cuenta de la red social o plataforma, integrada en la plataforma Snax, sin necesidad de facturar al recibidor de la transacción. El contrato inteligente de la plataforma de una forma automática completara la transacción de snax_name desde la que la identificación del recibidor se ha completado. Si la identificación aún no ha sido completada, entonces el contrato de la plataforma esperara a que se registre la operación
Conclusion
Hemos visto como el Sistema sin registro de Autentificacion del protocol por Snax funciona en un nivel macro
Por supuesto, el acto de la publicación de la identificación de usuario (ef. el Tweet generado en la cuenta) puede ser un inconveniente para el usuario, sin embargo no hemos sido capaces de generar ningún sistema alternativo que funcionase correctamente
Este problema puede solucionarse integrando el sistema sin registro de autentificación de Snax (o un protocolo similar) en una API existente de distintas redes sociales. No es un Sistema complicado en líneas generales, requiere que la plataforma cree un sistema público de autentificación API que esté disponible por recuesta para la plataforma
Si tienes cualquier pregunta sobre como la emission de Snax funciona, como recibir recompensas por publicaste o como ser un productor de bloques para la red Snax únete en nuestro canal de discord https://discord.gg/qygxJAZ. No te olvides de seguirnos en Twitter y apoyar este post
Tambien puedes encontrar referencias sobre preguntas y respuestas https://snax.one/faq.
Link al articulo original
https://hackernoon.com/snax-trustless-authentication-protocol-f925216ae7d2
Congratulations @onedac! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word
STOP
Vote for @Steemitboard as a witness to get one more award and increased upvotes!