Arweave ZNS Storage
Zelf Name Service (ZNS) facilitates data (mnemonic keys, etc) encryption in a ZelfProof, its indexation in the Arweave protocol, and self-custody by the end user.
Last updated
Zelf Name Service (ZNS) facilitates data (mnemonic keys, etc) encryption in a ZelfProof, its indexation in the Arweave protocol, and self-custody by the end user.
Last updated
Permanent Data Storage:
Arweave's core value proposition is permanent data storage. Storing ZelfProofs on Arweave ensures that critical identity data remains tamper-proof and always accessible.
Decentralization and Security:
Arweave operates on a decentralized blockchain-like network, ensuring no central authority controls the data. This aligns with ZNS’s goal of decentralized identity management.
Data Integrity and Immutability:
Arweave guarantees that once uploaded, data cannot be altered or deleted. This immutability secures ZelfProofs from unauthorized modifications.
Cost Efficiency:
Arweave offers a one-time payment for permanent storage, making it a cost-effective solution compared to traditional cloud services that charge recurring fees.
Data Accessibility:
ZelfProofs stored on Arweave are always accessible via standard web protocols, ensuring seamless integration with ZNS services without additional backend infrastructure.
Blockchain Compatibility:
Arweave’s architecture integrates well with other blockchain ecosystems, enabling smooth interoperability for applications extending beyond ZNS.
1. Transaction Node
Each transaction is represented as a node containing the following key fields:
id
: The unique transaction ID. This can be used to fetch the transaction data directly from Arweave using the URL format:
https://arweave.net/{id}
.
Example:
https://arweave.net/pgjhRRZ8tz6BGajDbk9CQY1eJlHuFZ9pisPphDcint4
owner.address
: The wallet address of the transaction creator. This is the address that uploaded the data to Arweave.
data.size
: The size of the stored data (in bytes). In this case, it’s 18369
bytes.
2. Tags
Tags are metadata associated with the transaction. In this case, they provide critical information about the zelfProof
and its linked data:
Content-Type
:
Indicates the MIME type of the stored data. Here, it’s image/png
.
zelfProof
:
A cryptographic proof linked to the zelfName
. This proof is essential for identity verification, encryption, and secure wallet interactions. It’s stored in an encrypted format, ensuring privacy and security.
ethAddress
, solanaAddress
, and btcAddress
:
Wallet addresses for Ethereum, Solana, and Bitcoin, respectively, associated with this zelfName
. These addresses allow users to interact with various blockchain ecosystems.
evm
:
A list of Ethereum Virtual Machine (EVM)-compatible networks supported by this zelfProof
. For example: ETH, BNB, MATIC, AVAX
.
zelfName
:
The unique identifier for the user (johan1234789.zelf
). This links the zelfProof
to the user’s account and serves as a lookup key.
When a user creates a ZelfProof in ZNS, the generated Zero Knowledge Face Proof is uploaded to Arweave.
The upload process generates a unique transaction ID (TX ID), which serves as a permanent reference to the stored ZelfProof.
Users can retrieve their ZelfProof by querying Arweave using this TX ID, ensuring quick and secure data access.
To access the backup data for a specific zelfName
:
Query Arweave’s GraphQL API:
Filter by the zelfName
tag to locate the transaction.
Example query:
Use the returned id
to access the transaction:
URL: https://arweave.net/{id}
This implementation establishes Arweave as the backbone of Zelf’s decentralized backup system, enabling users to securely store and retrieve their zelfProofs,
and access to their wallets. This approach ensures a robust, reliable, and permanent solution giving users seamless access to their cryptographic assets and identities.