ACP-113: Provable Virtual Machine Randomness #112
Replies: 5 comments 6 replies
-
Regarding a comment made by @ARR4N:
and @StephenButtolph suggestion to pass the window index to the VM, I think that we might want to think of a way to package both. |
Beta Was this translation helpful? Give feedback.
-
🔊 ACP-113 DEVELOPER COMMUNITY CALL ANNOUNCEMENT 🔊Meeting Date/Time: 08-08-2024, 14:30 UTC Purpose of the MeetingIn this meeting, we will discuss and determine the desired first use case ACP-113, which proposes a mechanism to generate verifiable, non-cryptographic random number seeds on the Avalanche platform. The platform's deterministic block execution limits the use of traditional random number generators within these contracts. This method ensures uniformity while allowing developers to build more versatile applications. Who is invited?Any protocol developer, ACP author, researcher, or Avalanche community member is invited to attend this meeting. LinksSign Up Form: Google Form Preparation MaterialMandatoryACP-113 ReadMe Highly RecommendedElementary understanding of the following topics would be helpful: AgendaThe call would cover the rationale and planned implementation of ACP-113 - provable virtual machine randomness. During the call, the following topics will be discussed: |
Beta Was this translation helpful? Give feedback.
-
The link above about Snowman++ link to a "Metal blockchain". What is this and what is the relation to the Avalanche network (other than they use its consensus and overall design)? Is it a friendly fork? Permissionless? Weird that we are linking to it instead of Avalanche's own docs... |
Beta Was this translation helpful? Give feedback.
-
despite this known vector of attack, would you use the VM randomness generated via ACP-113 in an on-chain implementation?
|
Beta Was this translation helpful? Give feedback.
-
In the security considerations section, it talks about how the number of options is large and it might require a number of validators to collude in order to target a specific value. But in many scenarios, the random number is actually modulo a small number, in some cases mod 2 (e.g. a coin flip simulation). If my understanding is correct, a validator could wait for their turn to propose a block, and then either include or exclude a specific tx with a 50% chance based on the value that their block's seed would resolve to. Is my understanding correct? If so, I think that the practical impact of the security risks here need a bit more consideration. I wouldn't be willing to use this directly (in a single tx) to resolve randomness if money was involved, but I think in a callback situation (e.g. user commits at block N and then server submits tx at block N+(1 to 3) similar to how Chainlink operates), that would reintroduce difficulty coordinating to attackers without actually requiring / paying fees for Chainlink. For the C-Chain anyway. I think for Avalanche L1s with a permission-ed validator set this is a clear win, especially compared to the option discussed here (stuffing a random number into the difficulty slot). How would the VRF values be exposed to users, I assume a new precompile? It's not mentioned in ACP-113. |
Beta Was this translation helpful? Give feedback.
-
Abstract
Avalanche offers developers flexibility through subnets and EVM-compatible smart contracts. However, the platform's deterministic block execution limits the use of traditional random number generators within these contracts.
To address this, a mechanism is proposed to generate verifiable, non-cryptographic random number seeds on the Avalanche platform. This method ensures uniformity while allowing developers to build more versatile applications.
Complete design specifications : #113
Beta Was this translation helpful? Give feedback.
All reactions