Centralized Blob Signer Validation #563
l-monninger
started this conversation in
Ideas
Replies: 1 comment 6 replies
-
Looks sensible. I don't have a preference on whether the signature format is app-specific vs. native in M1 DA. On technical details:
In the signed blob format,
OK. If we need to evolve this in the future, the changes will be managed under MIP-13 |
Beta Was this translation helpful? Give feedback.
6 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Summary
While the centralized launch of the network does not require us to validate blob publishers are staked, as in MD-6, it is still advisable to validate that the centralized node(s) indeed published a blob to Celestia to prevent against DOS attacks.
Because other nodes who do not publish will also need to verify these blobs, the most conventional solution is simply to use an owned keypair to sign all blobs and share the public key with the community.
Signed Blob
Format
Celestia does not appear to have well-documented API support for checking who submitted a given blob. Presumably, this is possible via the transaction API, however, it is unclear how to query for a transaction matching a certain blob. Thus, for simplicity, the transaction itself can be signed. Signed blobs can take the following form.
Where to Sign
Within the context of the current
m1-da-light-node
, we may take one of two approaches to conducting this signing:m1-da-light-node
expect signed blocks to be returned.m1-da-light-node
message types as is, encapsulating signature verification from the application level.I would suggest Option 1, as it gives both us and others more flexibility down the road.
How to Sign
Because we are working towards a presumed requirement that blob publishers be staked, I believe it is simplest to reuse the the
ETH_SIGNING_KEY
and thus sign under thesecp256k1
standard.In the future, we will want to discuss more completely how this affects node operator user journeys. Currently, the presence or absence of this value will also turn on or off the settlement loop. However, we would likely want to control this under a separate variable going forward as users--based on proposed reward models--can rationally choose to be staked and to publish blobs without settling.
Beta Was this translation helpful? Give feedback.
All reactions