zkNet (Privacy)
Overview
zkNet is a privacy protocol built on the R5 Network, specifically designed to obfuscate transactions using Private Internal Addresses. This distinctive feature enables users to interact within a private subnetwork with an independent ledger of accounts and transactions. zkNet caters to individuals who value their privacy and wish to manage their digital assets discreetly.
What are Private Internal Addresses (PIAs)?
In the zkNet ecosystem, each user is allowed a Private Internal Address. This address functions similarly to traditional blockchain addresses while incorporating the essential capability of obfuscating the user’s true identity on the main network. Here are some important attributes of Private Internal Addresses:
One PIA Per Wallet: Each mainnet wallet is permitted to own just one Private Internal Address at at a time. This limitation simplifies user management and helps maintain the transactional integrity of the zkNet environment.
PIA Addresses Generation: To generate a PIA address with a regular R5 account you will need to provide the protocol with an encryption "salt" - think of this as an ingredient used while creating your cryptographic PIA that helps with braking any links between it and your regular wallet.
Irrecoverability: Users possess the ability to "destroy" their Private Internal Address at will. However, once destroyed, the address cannot be reinstated. This helps with adding an extra layer of obfuscation, as PIAs can be used only once and discarded. Users can generate a new PIA after they destroy their current one.
Independent Ledger: Transactions conducted through a Private Internal Address do not appear on the public ledger of the main network but rather reside within zkNet's independent ledger, governed by a smart contract. This structural design creates a significant barrier between user activities on the main network and those conducted within the zkNet ecosystem.
How do PIAs look like?
PIAs are similar to regular R5 wallet addresses, but with a few key differences: 1) instead of having a 0x
prefix, PIAs use the zk
prefix instead; and 2) they are represented by a 66-byte string instead of the 44-byte string of regular R5 addresses.
Example of a PIA:
Compared to a regular R5 wallet address:
Mechanics of zkNet
zkNet’s architecture is modelled on that of a subnetwork, where each user transaction is executed within a controlled, private environment. The following mechanics are fundamental to its operation:
Isolation from the Main Network
zkNet transactions occur via the R5 Network, but all transaction details are isolated within zkNet’s private ledger. This separation significantly reduces the exposure of users' transaction histories to outside scrutiny. By processing transactions internally, ZKNet provides users with a layer of privacy that is not available when operating solely on the public blockchain.
Transaction Fidelity and Security
Every transaction made with a Private Internal Address is recorded in zkNet's independent ledger, which is governed by its smart contract. This ensures that:
Integrity of Transactions: All transactions are executed in a secure and trustworthy manner, as they adhere to the defined rules of the smart contract.
Reduced Traceability: By keeping transaction details private and away from the public ledger, zkNet minimises the likelihood of third-party tracking or analysis.
Features for Enhanced Privacy
In addition to the fundamental mechanics, zkNet incorporates several features that bolster user privacy:
Controlled Account Management: Users can easily create or destroy their Private Internal Addresses, giving them the autonomy to manage their accounts responsibly.
Transactional Shielding: Although zkNet significantly enhances privacy, it is essential to understand that it may not provide complete anonymity.
Want to go fully anonymous?
There is an ongoing effort to develop what is being called "deep transactions" within the zkNet protocol. These transactions will take place in independent zkNet Deep Oracle servers that only communicate with the zkNet protocol to validate deposits and withdrawals. The result is a fully anonymous "sub-protocol" that enables full privacy to users.
You can think of the zkNet protocol as a "foggy day" while deep transactions will be absolute darkness.
This is an ongoing development effort and has no release date yet.
Known Limitations
Although zkNet offers an obfuscation layer and it is more private than regular transactions, sophisticated analysis methods may still be able to trace and recover some information about zkNet transactions, more so if users do not adhere to strict privacy-preserving protocols while using zkNet.
Advanced smart contract analysis - with mapping, for example - will still reveal some metadata that can be further explored to reconstruct transaction history.
zkNet is not meant to be a full anonymiser, but to offer an additional layer of privacy to users wanting to manage their accounts discreetly.
zkNet FAQ
1) How safe is ZKNet?
zkNet is an experimental feature that aims to bring elective privacy to R5 users. The protocol was subjected to rigorous tests before being deployed, but that does not guarantee that it won't be susceptible to bugs and potential exploits. As with any other innovative and disruptive technology, there are risks involved, and it is not recommended you keep all your funds on the zkNet protocol.
2) How anonymous is it, really?
The protocol removes the transaction history and balances from the main ledger and uses a smart contract to track balances instead. While the protocol offers a high degree of privacy, advanced smart contract analysis - with mapping, for example - will still reveal some metadata that can be further explored to reconstruct transaction history. zkNet is not meant to be a full anonymiser, but to offer an additional layer of privacy to users wanting to manage their accounts discreetly.
3) Is there a way to go fully anonymous?
There is ongoing work on an addon to zkNet to enable "deep transactions" that are fully anonymous. Deep transactions will take place directly inside oracle servers and only communicate with the zkNet protocol when funds are either being deposited or withdrawn into/from the zkNet deep oracle. This is an ongoing development effort and has no release date yet.
4) Are there any usage fees?
No. The zkNet protocol is free to use and you will only pay the gas costs associated with your operations.
5) Can I deposit and withdraw from zkNet at any time?
Yes. There's no limitations to how much or how often you can deposit or withdraw to and from your zkNet PIAs.
6) Is there any admin-level access?
No. zkNet runs on a smart contract that has no admin-level access, so funds cannot be withdrawn, the contract cannot be paused, or there's no special functions only callable by the contract owner.
Last updated