The Key Generation (KeyGen) system is designed to enable users to generate public-private key pairs within their web browsers, without the key pairs ever leaving the browser or being shared with the web server. The system ensures that the user's identity and IP address remain unassociated with the generated keys. Additionally, the system allows users to make a donation to our non-profit organization and receive a signed public key as proof of their donation, while maintaining their anonymity.
Key Generation Process
The following steps outline the key generation process:
Key Pair Generation: The user visits the KeyGen website at https://freenet.org/identity, where a public-private key pair is generated using JavaScript within the user's web browser. The website does not have access to the generated key pair.
Mnemonic Encoding: The generated private key is presented to the user as a series of mnemonic words using BIP39 encoding. The user can print the page or write down the mnemonic words. The mnemonic words are not shared with the web server.
RSA Blind Signature: The JavaScript code uses an RSA blind signature to encode the public key before sending it to the server.
Donation and Signing: The user makes a donation to our non-profit organization through the same web page. The server uses an RSA blind signature to sign the blinded public key before sending it back to the browser.
Unblinding and Display: The browser unblinds the signed public key, resulting in a public key that has been signed by the server as proof of the user's donation. The server cannot associate the transaction with the user's public key. The unblinded signature is displayed to the user using BIP39 mnemonic encoding, which they can print or write down.
Purpose
The KeyGen system aims to allow users to invest in the reputation of their public keys while maintaining their anonymity. By generating the key pairs within the browser and using RSA blind signatures, the system ensures that users can make donations and receive signed public keys without revealing their identities to the server.
Overview
The Key Generation (KeyGen) system is designed to enable users to generate public-private key pairs within their web browsers, without the key pairs ever leaving the browser or being shared with the web server. The system ensures that the user's identity and IP address remain unassociated with the generated keys. Additionally, the system allows users to make a donation to our non-profit organization and receive a signed public key as proof of their donation, while maintaining their anonymity.
Key Generation Process
The following steps outline the key generation process:
Key Pair Generation: The user visits the KeyGen website at
https://freenet.org/identity
, where a public-private key pair is generated using JavaScript within the user's web browser. The website does not have access to the generated key pair.Mnemonic Encoding: The generated private key is presented to the user as a series of mnemonic words using BIP39 encoding. The user can print the page or write down the mnemonic words. The mnemonic words are not shared with the web server.
RSA Blind Signature: The JavaScript code uses an RSA blind signature to encode the public key before sending it to the server.
Donation and Signing: The user makes a donation to our non-profit organization through the same web page. The server uses an RSA blind signature to sign the blinded public key before sending it back to the browser.
Unblinding and Display: The browser unblinds the signed public key, resulting in a public key that has been signed by the server as proof of the user's donation. The server cannot associate the transaction with the user's public key. The unblinded signature is displayed to the user using BIP39 mnemonic encoding, which they can print or write down.
Purpose
The KeyGen system aims to allow users to invest in the reputation of their public keys while maintaining their anonymity. By generating the key pairs within the browser and using RSA blind signatures, the system ensures that users can make donations and receive signed public keys without revealing their identities to the server.