Skip to main content

How Tapestry Works

Architecture​

Tapestry uses state compression and Merkle trees to store social graph data onchain. This is the same technology used for compressed NFTs on Solana.

State Compression Overview​

State compression is a technique that allows for storing large amounts of data off-chain while maintaining a cryptographic proof of that data onchain. Here's how Tapestry implements this:

  1. Off-chain Storage: Social graph data (user profiles, connections, interactions) is stored in an off-chain graph database. This allows for fast queries and updates without incurring blockchain transaction costs for every operation.

  2. Merkle Trees: The off-chain data is organized into Merkle trees. A Merkle tree is a data structure where each non-leaf node is a hash of its child nodes, and leaf nodes contain the actual data or hashes of data.

  3. Onchain Root: The root of the Merkle tree, which represents a cryptographic summary of the entire dataset, is stored on the Solana blockchain. This root serves as an immutable, on-chain anchor for the off-chain data. Any attempt to tamper with the off-chain data will result in a mismatch with the on-chain Merkle root, making it immediately detectable and ensuring the integrity of the entire social graph.

Parallels with Compressed NFTs​

This approach is identical to how compressed NFTs work on Solana:

  • Compressed NFTs: Store metadata off-chain but keep a Merkle root on-chain for verification.
  • Tapestry Social Graph: Stores social data off-chain but keeps a Merkle root on-chain for verification.

In both cases, the goal is to reduce on-chain storage costs while maintaining the security and verifiability benefits of blockchain technology.

Benefits of This Approach​

  1. Scalability: Can handle millions of users and interactions without bloating the blockchain.
  2. Cost-Efficiency: Reduces on-chain storage costs significantly.
  3. Speed: Allows for fast reads and writes to the social graph.
  4. Verifiability: Any piece of social graph data can be cryptographically verified against the on-chain Merkle root.
  5. Decentralization: While data is stored off-chain, its integrity is ensured by the decentralized Solana network.

How It Works in Practice​

  1. When a user updates their profile or makes a new connection, the data is stored in the off-chain database.
  2. The Merkle tree is updated to include this new data.
  3. The new Merkle root is calculated and stored on-chain in a Solana transaction.
  4. To verify any piece of social graph data, a Merkle proof can be generated and checked against the on-chain root.

Conclusion​

By leveraging state compression and Merkle trees, Tapestry achieves a perfect balance between the scalability needs of a social graph and the security guarantees of blockchain technology. This approach ensures that Tapestry is as decentralized as compressed NFTs, while providing the performance and cost-efficiency required for a large-scale social protocol.