Connect Security Properties
PreCommit
votes via Vote Extensions, chains can
configure their application (or parts of their application) to depend on per-block price updates. This makes almost all forms of oracle attacks impossible,
and allows applications to avoid having to build their own UX roadblocks to ensure safety.
PreCommit
vote. In Connect’s case, that metadata is
locally observed prices for a series of CurrencyPairs
(e.g. ETH/USDC
).
Given blocks cannot progress without 2/3 of stake weight submitting votes, blocks also cannot progress without 2/3 of vote extensions.
Additionally, the x/oracle
module (where prices are stored on chain) requires at least 2/3 of voting power to have contributed to individual
price updates. This means that every price update has the same participation as block validity itself.
1/3
of stake to be manipulated to post an incorrect oracle price. This is because:
2/3
of stake is required to post any update (as described above)2/3 / 2 = 1/3
) of stake must be manipulated to post a malicious price.2/3
of stake. To do this, the final on-chain prices are re-checked by all validators on the network in the ProcessProposal
step to enforce some minimum deviation from their local prices are not exceeded. 2/3
of stake weight is required to vote “yes” on this check, raising the overall security back to that of the chain itself.
There are tradeoffs to increasing the security to this level. Validators may reject proposals more often if there is high volatility in price updates between them, which could result in longer periods of oracle downtime in periods of crypto market instability.