Skip to content

Commit

Permalink
fix punctuation in the Account Compression Program doc (#6375)
Browse files Browse the repository at this point in the history
  • Loading branch information
jarrensj committed Mar 11, 2024
1 parent d26491f commit 8ae0c89
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions docs/src/account-compression.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@
title: Account Compression Program
---

This on-chain program provides an interface for composing smart-contracts to create and use SPL ConcurrentMerkleTrees. The primary application of using SPL ConcurrentMerkleTrees is to make edits to off-chain data with on-chain verification.
This on-chain program provides an interface for composing smart contracts to create and use SPL ConcurrentMerkleTrees. The primary application of using SPL ConcurrentMerkleTrees is to make edits to off-chain data with on-chain verification.

## Motivation

- The high throughput of the Solana blockchain has increased the creation of Non fungible assets i.e NFTs due to their custodial ownership and censorship resistance characteristics. However, the practical use cases of these NFTs are limited by network storage costs when these are created at scale. It's rather inexpensive to mint a single non fungible token, however as you increase the quantity the cost of storing the asset's data on-chain becomes uneconomical.
- The high throughput of the Solana blockchain has increased the creation of non-fungible assets i.e. NFTs due to their custodial ownership and censorship-resistance characteristics. However, the practical use cases of these NFTs are limited by network storage costs when these are created at scale. It's rather inexpensive to mint a single non-fungible token; however, as you increase the quantity the cost of storing the asset's data on-chain becomes uneconomical.

- To fix this we must ensure the cost per token is as close to zero as possible. The solution is to store a compressed hash of the asset data on chain while maintaining the actual data off chain in a database. The program provides a way to verify the off chain data on chain and also make concurrent writes to the data. In order to do this we introduced a new data structure called a Concurrent Merkle Tree that avoids proof collision while making concurrent writes.
- To fix this, we must ensure the cost per token is as close to zero as possible. The solution is to store a compressed hash of the asset data on-chain, while maintaining the actual data off-chain in a database. The program provides a way to verify the off-chain data on-chain and also to make concurrent writes to the data. In order to do this, we introduced a new data structure called a Concurrent Merkle Tree, which avoids proof collision while making concurrent writes.


## Background

The account compression program is currently being used for the [Metaplex Bubblegum Program](https://github.com/metaplex-foundation/metaplex-program-library/blob/master/bubblegum/)
The account compression program is currently being used for the [Metaplex Bubblegum Program](https://github.com/metaplex-foundation/metaplex-program-library/blob/master/bubblegum/).

To solve the problem of the high on-chain storage cost per unit of these assets, we need to store a compressed fingerprint on-chain that can verify the off-chain asset data. To do this we need
To solve the problem of the high on-chain storage cost per unit of these assets, we need to store a compressed fingerprint on-chain that can verify the off-chain asset data. To do this we need:
- Concurrent Merkle Trees
- The concurrent merkle trees allow us to compress all the data into a single root hash stored on-chain while allowing concurrent replacements and appends to the data.
- Program indexer
Expand Down

0 comments on commit 8ae0c89

Please sign in to comment.