How does Algorand determine if an account/node is selected for participation in each round? To my knowledge, the VRF outputs a float [0,1]. How does the system use this to decide participation in each round?
Algorand how is round membership computed from the output of a VRF
30 Views Asked by Ian At
1
There are 1 best solutions below
Related Questions in CRYPTOCURRENCY
- React component to display crypto price live data
- is there coinmarketcap api error when we try to fetch data from a date range?
- Crypto automatic purchase
- Probability of Brute-Forcing Matching Private Keys to Specific Public Addresses in Cryptocurrency?
- JS KuCoin API - Invalid KC-API-SIGN - How to do the signature
- Delay in Processing Bitget WebSocket Messages in Node.js
- URL link of Near Protocol block 1
- Not able to get account information with MEXC API
- Farcaster Frames: Stopping a Frame after a Specific Number is Inputted
- Is there a way to get the wallet address transaction history with the dollar value at the time of purchase?
- Can't seem to add put my token to market on Solana?
- verifying a wallet A's BIP39 seed phrase by restoring to another wallet while wallet 'A' is still active. OK to do? Wallet 'A' funds remain safe?
- Flutter detect crypto wallet provider
- TON transfer bug when using 32 (DESTROY_ACCOUNT_IF_ZERO) flag?
- Can my ETH be frozen by Metamask's Validator Staking Contract?
Related Questions in CONSENSUS
- How is service discovery not a subset of centralized configuration?
- vcf-consensus script error: The sequence N not found in the fasta file
- Any terrible thing will happen if change Chaincode state in invokeChaincode?
- How does raft handle committing entries from previous one?
- Bitcoin and Ethereum inter-block time difference
- How a distributed storage system like Raft filter duplicate requests even after client session expiration
- Recommend algorithm of fair distributed resources allocation consensus
- Raft Vs MongoDB Primary Election
- consensus score and WSP score in python
- Consensus number of FIFO queue
- Where can I configure iot_consensus_throttle_threshold_in_byte in IoTConsensus of Apache IoTDB?
- Doesn't Paxos end up with the same instructions in the exact same order?
- How do developers manage to update new source code on blockchain due to the difficulty of distributed and decentralized consensus process
- Minimum number of nodes to achieve Byzantine Fault Tolerance
- Simple Consensus with Timeouts
Related Questions in ALGORAND
- TealScript - Budget increase
- TealScript - How to work with uint64 and uint256 and how to do conversions between them?
- TealScript - arc4 Transaction parameter either Pay or Asset transfer
- Algrand Smart Contract Method Calling
- Does Algorand have a clear-cut distinction between ALGO and ASA tokens?
- Cannot find reference 'get_accounts' in '__init__.py' in PyCharm
- How do I check of an account had opted-in to an ASA using the python algosdk?
- Cannot import 3rd party JavaScript module
- How to create a child app with parameters in Algorand?
- Algorand how is round membership computed from the output of a VRF
- Algorand ARC-19 and ARC-69. What exaclty is the difference?
- How do we pass the string as an application argument? (Algorand, JS SDK)
- Block-chain memorised 5.000.000 of hash
- How do I get the units of an Algorand Standard Assets (ASA) automatically deposited into the reserve address?
- DiscordJS "interactionCreate" listener not working
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
At high-level, you can indeed see the VRF output as a random variable sampled uniformly from [0,1]. Algorand converts this uniform random variable into a binomial random variable of parameters:
This random variable indicates the number of seats in the committee the account gets (i.e., the number of time the key was selected).
Since a binomial random variable with parameters (n,p) is the sum of independent Bernouilli random variables with parameter p, this computation yields the same result as if each Algo was individually selected with probability p (which ensures it is the same to have 1 big account with n Algos or n small accounts with 1 Algo).
The code for the conversion of vrfOutput into number of seats in the committee can be found there: https://github.com/algorand/go-algorand/blob/master/data/committee/sortition/sortition.go