El fundador de Ethereum, Vitalik Buterin, sugiere la idea de NFT privados mediante los cuales el propietario no sería conocido a través de los datos de la cadena de bloques.
El concepto se agregó a una publicación de Ethereum Research centrada en agregar una “Extensión ERC721 para zk-SNARK”.
Extensión ERC721 para zk-SNARK
La extensión a ERC721 (el estándar NFT) fue propuesta por Nerolation, quien afirmó que creía que su metodología era “la implementación exacta de lo que Vitalik describió” cuando hablaba de POAP privados.
Vitalik habló sobre la necesidad potencial de tokens Soulbound privados (SBT) en su artículo que presenta el concepto SBT al mundo.
“La privacidad es una parte importante para que este tipo de ecosistema funcione bien… Si, algún día en el futuro, vacunarse se convierte en un POAP, una de las peores cosas que podríamos hacer sería crear un sistema en el que el POAP se anuncie automáticamente… dejar que su decisión médica se vea influenciada por lo que se vería bien en su círculo social particular”.
La sugerencia de usar tokens ERC721 compatibles con ZK-SNARK intenta resolver esto mediante el uso de direcciones sigilosas que incluyen un hash de la dirección del usuario, la identificación del token y un secreto del usuario.
Luego, la información se agrega a un árbol Merkle en cadena, y los tokens se almacenan en “una dirección que se deriva de la hoja del usuario en el árbol Merkle”.
Para demostrar la propiedad del token (NFT), una dirección tendría que dar a la dirección sigilosa “acceso a una clave privada” para que cuando se firme un mensaje, la información recopilada se pueda pasar a una hoja del árbol de Merkle. Luego, el circuito podría comparar las “raíces calculadas y proporcionadas por el usuario para la verificación”.
Direcciones ocultas regulares
En su respuesta a Nerolation, Vitalik explicó que cree que existe una solución más elegante y directa al problema, que utilizará “tecnología mucho más liviana”. Propuso usar ” direcciones sigilosas regulares” sin necesidad de complejos árboles de Merkle.
Vitalik explicó que cada usuario tiene una clave privada que se puede usar como punto base de un grupo de curvas elípticas para crear una nueva clave privada, como se hace comúnmente con las direcciones ocultas regulares.
Entonces se puede generar una “clave secreta de un solo uso” y la clave pública emparejada derivada de la base de la curva elíptica.
El remitente y el receptor puede entonces “calcular un secreto compartido” combinando las claves privada y secreta.
Se genera una nueva dirección utilizando este secreto compartido al combinar la información anterior.
El remitente puede enviar un token ERC20 a esta dirección como concluye Vitalik;
“El destinatario escanear todos los valores S enviados , generará la dirección correspondiente para cada valor S y, si encuentra una dirección que contenga un token ERC721, registrará la dirección y la clave para poder realizar un seguimiento de sus ERC721 y enviarlos rápidamente en el futuro.”
Vitalik afirmó que los árboles Merkle o ZK-SNARK son innecesarios ya que “no hay posibilidad de crear un” conjunto de anonimato “para un ERC721”. Su método significa que los datos en cadena mostrarán que se ha enviado un ERC721 a alguna dirección, pero no revelarán el propietario válido del token.