Entropy Chain
The entropy chain is another set belonging to the entropy registry set. It is a set used to determine which entropy to deliver to a user entropy that has not yet been assigned a secure entropy (reveal or settle seed). v1.0.0 has the following attributes:
bytes32 entropyByUsers; //end-user entropy seed
uint256 entropyByBlockNumber; //Seed block.number. Interacts with 'struct_blockCount' and is used to divide the token quota per block.
address SourceAddress; //address of the user who sent the seed.
uint256 leftgas; //Each gas fee to Tx is applied to calculate the median and average values of the entropy chain.
entropyByUsers is the same as usersEntropy of Entropy Registry. entropyByBlockNumber is the block number that the Transaction(TX) succeeded. SourceAddress is the account address of the user or contract that generated the TX.
The number assigned to the element number of the Entropy Chain is the number of the Assined_entropy chain (Entropy registry No.).
leftgas These are the gas fees sent by TX to EntroBeam, which EntroBeam aggregates and shuffles to determine which user seeds to mix with the secure entropy. Refer to Revealing Entropy for details.
The length of the entropy chain is not fixed. The initial value connects ten transactions, but the length increases as user participation increases. In general, the point to be problematic is that if the length of the entropy chain is
, the probability of predicting which secure entropy will be generated may appear to be
. But it is far from that. Number of user transactions is
, When multiple transactions occur, and reveal entropy values accumulate, users get the number of cases
, which exponentially reduces the probability of predicting the secure entropy.
Entropy chains are indexed by numbers assigned to the entropy registry. To verify that the entropy registry and entropy chain have been successfully searched, users should check whether usersEntropy and entropyByUsers match. It seems like a duplicate state, but it allows for a more clear check.
I.g., Entropy Chain.length is 8
The entropy chain has a feature of an array, but the starting element number is 1. zero was initialized when the contract was deployed. However, the entropy chain does not match the entropy registry number because the array order gets jumbling as the transaction progresses increases. Only the internal order of the entropy chain changes, the order of the entropy registry never changes.
Formation of Entropy Chain: The length value of the entropy chain is a variable. This value determines how many entropy registries an entropy chain can have. If entropy chain.length is not full, the Reveal Seed process will not occur. In cases, the length may overflow, but this intentional algorithm guarantees more entropy reliability. once entropy chain.length get to started full or overflows, Each time a transaction occurs creates secure entropy. Of course, if the length is increased, there is a delay until the length fills again. The initial value is ten and checked at any time in the FormationNumber variable through Block Explorer.
Minimal block count number(upcomingRevealBlockNo): Even if the Entropy Register Tx is created immediately after the length of the entropy chain is filled, secure entropy generation does not happen. If the block number of the last element of the entropy chain is '11' and the 'minimal block count number' is 1, for secure entropy to be generated, TX must occur in 11+1 blocks or more. The 'minimum number of blocks' is a variable. The higher this value, the higher the contract can obtain entropy reliability, but the user has to wait that much longer. The initial setting is 1, even if the value increases in the future, it should be maintained at an appropriate level considering the user wait time. However, sometimes or always, in the case where more TXs than the length of the entropy chain occurs within blocks less than the 'minimal block count number', the entropy chain accepts all TXs without reverting them. And when the contract draws lots in the entropy chain, it calculates all the elements entered in the entropy chain. It exceeds the set length of the entropy chain, but the longer the chain, the higher the reliability of the entropy, so there is no reason for the contract to reject TXs. Although the length of entropy increases, the order in which users receive secure entropy does not change, and the process proceed sequentially. As a result, the length of the entropy chain is constant and, at the same time, has the feature of a variable.
Calculate total median values & max/min average value: Determines which seed within the entropy chain will be drawn to generate the secure entropy. The used seed(entropy registry) delete from the entropy chain. Refer to Revealing Entropy for details.
Deleting and adding Registry Elements to the chain: In the figure, Entropy registry [18] is added as 'new seed' in the next transaction, this process was handled by the Entropy registry [19] transaction. The seed used to generate the secure entropy is removed from the chain, and a ‘new seed’ is added to the chain. The ‘new seed’ is the most recent transaction, stored in the entropy registry, and performs all processes such as operating the entropy chain, but is not registered in the entropy chain to prevent it from participating in the creation of secure entropy.
Check Entropy: There are several valuable ways to check that the seed sent by the user has arrived and that the secure seed has been received. Refer to Getting started for details.
Copy link