-
Notifications
You must be signed in to change notification settings - Fork 186
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bring Randomness Recipe up to snuff #182
Conversation
Also requesting review from @burdges |
We've never encountered any situation in which Randomness Collective Flip provides secure randomness. Are you answering https://github.com/w3f/polkadot-genesis-audits-issues/issues/13 here? As I wrote there, I've only noticed Randomness Collective Flip being used in It's plausible AURA or PoW users might employ Randomness Collective Flip, but really both should adopt BABE if they need randomness with any security properties. BABE has configurations that emulate either AURA or PoW. It's likely AURA or PoW speeds early development over BABE however, so maybe that's the use case? Anyone know any use cases for the Randomness Collective Flip pallet? There are several randomness sources worth considering:
|
Actually all randomness sources fail badly for parachains with few collators, but randomness collective flip fails really badly. We need the parachain to draw randomness from the relay chain, but it'll be months before anything like that can be implemented: paritytech/cumulus#72 |
@burdges Thanks for the review. Can you say more about configuring babe to work like PoW? Is it possible or advisable to use Babe only for the randomness beacon, while using something different for actual block authoring?
That link seems to be dead (or maybe just private). I was not intentionally addressing it. |
BABE has two types of block, round robin blocks similar to AURA and VRF authorized blocks similar to Ouroboros Praos. If you turn off the round robin blocks, then your VRF authorized blocks simulate PoW with PoS. This is the theorem of the Ouroboros Praos paper. It's not a perfect simulation because nodes must lock stake and wait a couple epoch to start, but within the set of already staked nodes that's what happens.
Why bother? We'll eventually feed randomness from the relay chains back into parachains, which makes such concerns irrelevant. I think. |
The Substrate Recipes are about all kinds of blockchains, not just Polkadot. A stand-alone chain may want a babe-like randomness beacon with PoW |
I doubt it. You need PoS for BABE so why do any PoW then? You might extend BABE with PoW authorized blocks in addition to the AURA and Praos authorized blocks, but not sure why. I could imagine randomness beacon designs for PoW chains, but we've no real interest in designing or implementing one afaik. |
5a9b5f5
to
149a23a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Made minor edit on some links. Overall lgtm.
@@ -16,4 +16,7 @@ theme = "src/theme" | |||
|
|||
[output.linkcheck] | |||
follow-web-links = true | |||
exclude = [ "www4\\.comp\\.polyu\\.edu\\.hk/~csxluo/" ] | |||
exclude = [ | |||
"https://github.com/substrate-developer-hub/recipes/", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I made almost the same change in the PoW recipe. I wish we didn't have to do it this way, but I don't have any better idea.
There are still both |
The
gen-random
pallet has been kicking around the recipes as a vestigial remnant for months. This PR completes it and updates it to alpha.3Any time randomness comes up, important warnings about complex cryptographic principles come up. To address that I'l lstate some goals for this recipe.
Goals:
Non-Goals: