celestiaorg / celestia-specs

Celestia Specifications
Creative Commons Zero v1.0 Universal
51 stars 14 forks source link

Codify the decision that validators will download all block data #180

Closed evan-forbes closed 3 years ago

evan-forbes commented 3 years ago

On various chats and synchronous calls, it was decided that validators will not perform data availability sampling, and will instead download all of the block data. I couldn't find this decision written down formally anywhere and figured that here is the place to do it.

While I couldn't find any, we might also need to change portions of the spec that rely on the assumption that validators will not be downloading all of the block data.

liamsi commented 3 years ago

Here is an non-exhaustive list:

It think that is it.

adlerjohn commented 3 years ago

Relevant: https://github.com/celestiaorg/lazyledger-core/issues/423

Wondertan commented 3 years ago

@adlerjohn, @liamsi, can you pls reiterate here why it is not possible/secure for validators to DASing only, without downloading the whole block. The reason didn't fix in my mind and also this would be useful for anyone external reading the issue.

liamsi commented 3 years ago

also this would be useful for anyone external reading the issue.

Good point. Most of the discussions around that were in chats between John, Mustafa and me and in calls.

can you pls reiterate here why it is not possible/secure for validators to DASing only, without downloading the whole block.

It's not that this would be insecure or even impossible. In fact, @musalbas original paper assumes DAS "validators" (quotes bc/ the paper is actually consensus agnostic and it could also be miners etc).

The reasons to not do this are:

adlerjohn commented 3 years ago

It has to do with accountability. If validators do DAS, they can end up voting on a block that's unavailable (if they're the first to do DAS), or worse, invalid. In such a case, only the proposer is accountable, as the validators had no way of knowing prior to voting that the block was invalid. So the cost of getting a Commit for an invalid block (and thus fooling potentially millions of light clients that expect instant finality from a Commit) is maybe a few thousand dollars if the proposer is the 100th by voting power.

musalbas commented 3 years ago

Actually, the real reason is because validators doing DAS would have to wait for fraud proofs. Block interval times would therefore have to at minimum be the conservative maximum network delay to generate and receive a fraud proof.

Wondertan commented 3 years ago

So there is a chance in the future, maybe post main net, that we will return to this, right?

adlerjohn commented 3 years ago

Maybe, but I would say not until after our first major post-launch hard fork.