Skip to content

Commit 227809a

Browse files
authored
refactor: chunk -> share (celestiaorg#1455)
1 parent 04b8b91 commit 227809a

File tree

4 files changed

+19
-19
lines changed

4 files changed

+19
-19
lines changed

developers/blobstream-offchain.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ that data's inclusion via Blobstream if needed. Read more in the
5454
[namespace specifications](https://celestiaorg.github.io/celestia-app/specs/namespace.html),
5555
and you can think of this like a chain ID. Learn more
5656
[information about `shares`](https://celestiaorg.github.io/celestia-app/specs/shares.html),
57-
which are small chunks of the encoded Celestia block. We use the same encoding
57+
which are small pieces of the encoded Celestia block. We use the same encoding
5858
here so that the commitments to the rollup block match those committed to by
5959
validators in the Celestia data root.
6060

learn/how-celestia-works/data-availability-layer.md

+13-13
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ commitments (_i.e._, Merkle roots) of the block data (_i.e._, the list of trans
2424

2525
To make DAS possible, Celestia uses a 2-dimensional Reed-Solomon
2626
encoding scheme to encode the block data: every block data is split
27-
into $k \times k$ chunks, arranged in a $k \times k$ matrix, and extended with parity
27+
into $k \times k$ shares, arranged in a $k \times k$ matrix, and extended with parity
2828
data into a $2k \times 2k$ extended matrix by applying multiple
2929
times Reed-Solomon encoding.
3030

@@ -35,19 +35,19 @@ as the block data commitment in the block header.
3535
![2D Reed-Soloman (RS) Encoding](/img/learn/reed-solomon-encoding.png)
3636

3737
To verify that the data is available, Celestia light nodes are sampling
38-
the $2k \times 2k$ data chunks.
38+
the $2k \times 2k$ data shares.
3939

4040
Every light node randomly chooses a set of unique coordinates in the
41-
extended matrix and queries full nodes for the data chunks and the
41+
extended matrix and queries full nodes for the data shares and the
4242
corresponding Merkle proofs at those coordinates. If light nodes
4343
receive a valid response for each sampling query, then there is a
4444
[high probability guarantee](https://github.com/celestiaorg/celestia-node/issues/805#issuecomment-1150081075)
4545
that the whole block's data is available.
4646

47-
Additionally, every received data chunk with a correct Merkle proof
47+
Additionally, every received data share with a correct Merkle proof
4848
is gossiped to the network. As a result, as long as the Celestia light
49-
nodes are sampling together enough data chunks (_i.e._, at least
50-
$k \times k$ unique chunks),
49+
nodes are sampling together enough data shares (_i.e._, at least
50+
$k \times k$ unique shares),
5151
the full block can be recovered by honest full nodes.
5252

5353
For more details on DAS, take a look at the [original paper](https://arxiv.org/abs/1809.09044).
@@ -75,9 +75,9 @@ DA layer.
7575
The requirement of downloading the $4k$ intermediate Merkle roots is a
7676
consequence of using a 2-dimensional Reed-Solomon encoding scheme. Alternatively,
7777
DAS could be designed with a standard (_i.e._, 1-dimensional) Reed-Solomon encoding,
78-
where the original data is split into $k$ chunks and extended with $k$ additional
79-
chunks of parity data. Since the block data commitment is the Merkle root of the
80-
$2k$ resulting data chunks, light nodes no longer need to download $O(n)$ bytes to
78+
where the original data is split into $k$ shares and extended with $k$ additional
79+
shares of parity data. Since the block data commitment is the Merkle root of the
80+
$2k$ resulting data shares, light nodes no longer need to download $O(n)$ bytes to
8181
validate block headers.
8282

8383
The downside of the standard Reed-Solomon encoding is dealing with malicious
@@ -86,7 +86,7 @@ block producers that generate the extended data incorrectly.
8686
This is possible as **Celestia does not require a majority of the consensus
8787
(_i.e._, block producers) to be honest to guarantee data availability.**
8888
Thus, if the extended data is invalid, the original data might not be
89-
recoverable, even if the light nodes are sampling sufficient unique chunks
89+
recoverable, even if the light nodes are sampling sufficient unique shares
9090
(_i.e._, at least $k$ for a standard encoding and $k \times k$ for a
9191
2-dimensional encoding).
9292

@@ -112,20 +112,20 @@ To this end, Celestia is using Namespaced Merkle trees (NMTs).
112112
An NMT is a Merkle tree with the leafs ordered by the namespace identifiers
113113
and the hash function modified so that every node in the tree includes the
114114
range of namespaces of all its descendants. The following figure shows an
115-
example of an NMT with height three (_i.e._, eight data chunks). The data is
115+
example of an NMT with height three (_i.e._, eight data shares). The data is
116116
partitioned into three namespaces.
117117

118118
![Namespaced Merkle Tree](/img/learn/nmt.png)
119119

120120
When an application requests the data for namespace 2, the DA layer must
121-
provide the data chunks `D3`, `D4`, `D5`, and `D6` and the nodes `N2`, `N8`
121+
provide the data shares `D3`, `D4`, `D5`, and `D6` and the nodes `N2`, `N8`
122122
and `N7` as proof (note that the application already has the root `N14` from
123123
the block header).
124124

125125
As a result, the application is able to check that the provided data is part
126126
of the block data. Furthermore, the application can verify that all the data
127127
for namespace 2 was provided. If the DA layer provides for example only the
128-
data chunks `D4` and `D5`, it must also provide nodes `N12` and `N11` as proofs.
128+
data shares `D4` and `D5`, it must also provide nodes `N12` and `N11` as proofs.
129129
However, the application can identify that the data is incomplete by checking
130130
the namespace range of the two nodes, _i.e._, both `N12` and `N11` have descendants
131131
part of namespace 2.

learn/how-celestia-works/overview.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ similar to [reducing consensus to atomic broadcast](https://en.wikipedia.org/wik
1818
The latter provides an efficient solution to the
1919
[data availability problem](https://coinmarketcap.com/alexandria/article/what-is-data-availability)
2020
by only requiring resource-limited light nodes to sample a
21-
small number of random chunks from each block to verify data availability.
21+
small number of random shares from each block to verify data availability.
2222

2323
Interestingly, more light nodes that participate in sampling
2424
increases the amount of data that the network can safely handle,

learn/how-celestia-works/transaction-lifecycle.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ that serves DAS requests.
6161
Light nodes connect to a celestia-node in the DA network, listen to
6262
extended block headers (i.e., the block headers together with the
6363
relevant DA metadata, such as the $4k$ intermediate Merkle roots), and
64-
perform DAS on the received headers (i.e., ask for random data chunks).
64+
perform DAS on the received headers (i.e., ask for random data shares).
6565

6666
Note that although it is recommended, performing DAS is optional -- light
6767
nodes could just trust that the data corresponding to the commitments in
@@ -70,11 +70,11 @@ In addition, light nodes can also submit transactions to the celestia-app,
7070
i.e., `PayForBlobs` transactions.
7171

7272
While performing DAS for a block header, every light node queries Celestia
73-
Nodes for a number of random data chunks from the extended matrix and the
73+
Nodes for a number of random data shares from the extended matrix and the
7474
corresponding Merkle proofs. If all the queries are successful, then the
7575
light node accepts the block header as valid (from a DA perspective).
7676

77-
If at least one of the queries fails (i.e., either the data chunk is not
77+
If at least one of the queries fails (i.e., either the data share is not
7878
received or the Merkle proof is invalid), then the light node rejects the
7979
block header and tries again later. The retrial is necessary to deal with
8080
false negatives, i.e., block headers being rejected although the block
@@ -87,6 +87,6 @@ then at least one honest full node will eventually have the entire block data)
8787
is probabilistically guaranteed (for more details, take a look at the
8888
[original paper](https://arxiv.org/abs/1809.09044)).
8989

90-
By fine tuning Celestia's parameters (e.g., the number of data chunks sampled
90+
By fine tuning Celestia's parameters (e.g., the number of data shares sampled
9191
by each light node) the likelihood of false positives can be sufficiently
9292
reduced such that block producers have no incentive to withhold the block data.

0 commit comments

Comments
 (0)