LST Governance
Overview
vToken Voting is one of the features of Bifrost LST, which reserves the right for Bifrost LST holders to participate in on-chain governance. Taking Polkadot as an example, users holding vDOT can use DOT to participate in Polkadot's governance voting.
As a governance token for Polkadot, DOT holders can participate in Proposal voting while also participating in DOT staking. And vDOT, as a DOT Liquid Staking Token, retains the same rights as DOT. Using the Bifrost Dapp, you can automatically capture DOT staking rewards and also view proposals in Polkadot OpenGov and lock vDOT for voting participation.
This also applies in the same manner for vKSM holders.
Functionalities
vToken Voting covers the following features:
View ongoing Proposals on the main chain
Vote Aye/Nay/Abstain
Choose conviction
Lock vTokens and vote
Unlock vTokens after the lock period ends
What is ConvictionοΌ
βOne of these mechanisms is called conviction voting, and imbues greater voting power to token holders who are willing to lock their tokens on the protocol for longer lengths of time. Longer lock-ups display conviction in a vote. Conviction voting could allow a highly determined minority to overrule the vote of an apathetic majority in certain situations.β - from Polkadot Wiki
Learn more details about conviction at here.
How it works on Bifrost?
To better understand the principles of vToken Voting, we first need to understand the relationship between Bifrost LST and governance voting (using vDOT as an example):
Addresses that stake DOT on Polkadot have the right to participate in governance voting.
The DOT staked for vDOT is executed by derived addresses from Bifrost's sovereign address on Polkadot. Therefore, these addresses also have the right to participate in governance voting.
Bifrost's sovereign address (definition) is the parachain address on Polkadot: 13YMK2eeopZtUNpeHnJ1Ws2HqMQG6Ts9PGCZYGyFbSYoZfcm. The actual derived addresses used for DOT staking and voting are calculated based on the sovereign address and are also keyless addresses.
Bifrost executes governance voting on Polkadot by making XCM calls to the derived addresses.
vToken Governance Lock
When a user uses vToken for on-chain governance, the corresponding vToken will be locked based on the parameters chosen by the user. Locked vTokens cannot be transferred or redeemed, but it does not affect the yield from exchange rate increases.
An increase in the exchange rate of vToken does not automatically increase the supply. When the governance lock ends, the corresponding vToken will be unlocked.
Governance Lock Amount
Since a user's vToken can participate in multiple different governance referendums simultaneously, the lock duration varies. Therefore, the governance lock amount is calculated based on the comprehensive data of all vTokens currently held by the user. As a result, vDOT can participate in multiple Referenda votes simultaneously.
Now, based on the above conditions, let's understand the operating principle of vToken Voting:
vToken Voting Freamwork
Assuming a Bifrost user locks 10 vDOT to vote in favor of Referenda 1 with a 3x Conviction.
The SLP module will first calculate the amount of vDOT equal to 12 DOT (assuming a vDOT-DOT exchange rate of 1:1.2). Then, based on the user's vote in favor and the Conviction multiplier, it will make an XCM call to the corresponding derivative address under the Bifrost Sovereign address.
The amount of staked DOT in each derivative address represents the maximum voting power of that address (as shown in the figure below). At the same time, each Conviction multiplier corresponds to three derivative addresses, representing aye/nay/abstain voting intentions. Therefore, based on the user's demand, derivative address 1 will vote in favor of Referenda 1 with 12 DOT and lock 3x Conviction.
When Referenda 1 ends and the Conviction Lock is lifted, Bifrost users can call the Unlock function to unlock 10 vDOT. At the same time, Conviction unlocking will also be executed on Bifrost derivative address 1 on the relay chain.
Derived Address Information (Continuously Updated)
Polkadot
Derivative Address | Conviction | Attitude |
---|---|---|
14vtfeKAVKh1Jzb3s7e43SqZ3zB5MLsdCxZPoKDxeoCFKLu5 | 0.1 | Aye/Nay/Abstain |
14QkQ7wVVDRrhbC1UqHsFwKFUns1SRud94CXMWGHWB8Jhtro | 3x | Aye |
13hLwqcVHqjiJMbZhR9LtfdhoxmTdssi7Kp8EJaW2yfk3knK | 3x | Nay |
Kusama
Derivative Address | Conviction | Attitude |
---|---|---|
EckcmXbCj4huvNLP5btMFmJz8SzEt5s8hgKcL6LM8BtZeAf | 0.1 | Aye/Nay/Abstain |
J3Kp9LPQpRvVmJmmEuYJjW2UFnSQptZ3pbpSZbFLLgWF7WR | 3x | Aye |
DFw6MtEaT5PSZHzd43UW2YnEx4GNzAfCzejruhBt1tnBJaF | 3x | Nay |
For the subsequent optimization of Voting Conviction
In the relay chain, when changing Conviction through voting, the previous locked Conviction will be replaced by the new one. However, for Bifrost, since Bifrost uses multiple derivative addresses to vote, each individual derivative address represents only one Conviction multiplier. Therefore, we need an atomic transaction to switch Conviction:
Cancel the vote using address A, which has a Conviction of 3x.
Revote using address B, which has a Conviction of 0.1x.
To ensure the atomicity of this operation, we need to execute a batch_all call on Polkadot. This functionality will be optimized in future versions of vToken Voting.
Last updated