Closed evan-forbes closed 3 years ago
Here is an non-exhaustive list:
It think that is it.
@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.
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:
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.
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.
So there is a chance in the future, maybe post main net, that we will return to this, right?
Maybe, but I would say not until after our first major post-launch hard fork.
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.