feat: initial draft for Proof-of-Stake in Witnet#96
Draft
aesedepece wants to merge 1 commit intowitnet:masterfrom
Draft
feat: initial draft for Proof-of-Stake in Witnet#96aesedepece wants to merge 1 commit intowitnet:masterfrom
aesedepece wants to merge 1 commit intowitnet:masterfrom
Conversation
38bd3db to
d30ba9a
Compare
Tommytrg
reviewed
Jun 26, 2023
parodyBit
requested changes
Jul 1, 2023
c1a5369 to
07d1e77
Compare
drcpu-github
reviewed
Sep 5, 2023
| value. | ||
|
|
||
| **()** Upon consolidating a block candidate, for each of the commitment transactions contained therein, the amount of | ||
| coins in each committer's stake entry in the `StakesTracker` MUST be decremented by an amount equivalent to the |
Contributor
There was a problem hiding this comment.
This statement does not align with the latest simulation results I shared and on which this description is based. You have to reset all coins of the selected stakers to age 1. Otherwise the most powerful stakers will always be eligibile to solve a data request.
Regardless of that, I'm not even sure what decrementing the amount of coins would look like? That sounds permanent and at some point you won't be able to solve data requests anymore regardless of the coin age?
07d1e77 to
670b5e3
Compare
drcpu-github
reviewed
Oct 3, 2023
| witnessing power, multiplied by the query's own replication factor (witnesses count), and the commitment round. | ||
| - When proposing a block, all the mining power of the proposing node is used at once. That is, if the block ends up | ||
| being consolidated, the average "mining age" of its proposer's stake is reset to zero. | ||
| - When resolving an oracle query, only the required collateral is used. That is, the average "witnessing age" of the |
guidiaz
reviewed
Oct 4, 2023
|
|
||
| #### UnstakeTransaction | ||
|
|
||
| **()** A new type of transaction, `StakeTransaction`, MUST be introduced, following this schema: |
Tommytrg
reviewed
Apr 25, 2024
|
|
||
| **()** The identifier of an `UnstakeTransaction` is the SHA256 hash of the Protocol Buffers serialization of its `body`. | ||
|
|
||
| **()** For an `UntakeTransaction` to be valid, it MUST contain one valid ECDSA Secp256k1 signature, such that the public |
Member
There was a problem hiding this comment.
Suggested change
| **()** For an `UntakeTransaction` to be valid, it MUST contain one valid ECDSA Secp256k1 signature, such that the public | |
| **()** For an `UnstakeTransaction` to be valid, it MUST contain one valid ECDSA Secp256k1 signature, such that the public |
aesedepece
commented
Jun 28, 2024
| power and provide a valid VRF proof that MUST satisfy all the following requirements: | ||
| 1. the VRF input is the concatenation of the previous block hash, the data request hash, and the current epoch, all | ||
| of them in big-endian format, | ||
| 2. the witnessing power of the block proposer is in the `rf / stakers`th quantile among the witnessing powers of all |
Member
Author
There was a problem hiding this comment.
Suggested change
| 2. the witnessing power of the block proposer is in the `rf / stakers`th quantile among the witnessing powers of all | |
| 2. the witnessing power of the committer is in the `rf / stakers`th quantile among the witnessing powers of all |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This introduces a pretty straightforward mechanism for unifying mining and witnessing eligibility through a single Proof-of-Stake consensus algorithm.
Because this mechanism requires a non-trivial bootstrapping period, a second WIP shall be drafted, describing such process and the details of the transition into 2.0.
The () things in front of every article in the specification are left empty on purpose while we shuffle things around, and will be changed later to include incremental article numbers we can refer to.