CIP-30: Implementing oSnap for Optimistic Governance in CoW DAO
author: Alex Gaines (againes@umaproject.org), John Shutt (john@umaproject.org), Manny Narang (manny@umaproject.org)
status: active
created: 2023-07-05
This proposal aims to integrate oSnap, an optimistic governance tool developed by UMA, into the CoW DAO governance system. By leveraging oSnap, CoW DAO can execute the results of Snapshot votes on-chain, eliminating reliance on multi-signature wallets and promoting a more decentralized and efficient execution process.
The motivation for this proposal is to enhance CoW DAO’s governance system by making it more efficient, secure, and decentralized. By adopting oSnap, CoW DAO can streamline its governance process and empower its token holders, thereby upholding the true spirit of decentralization.
UMA’s oSnap is a tool for making on-chain transactions based on off-chain voting decisions. After the integration of oSnap, the flow works like this:
The oSnap integration process can be completed in a single afternoon. The steps to integrate oSnap are:
Overall Cost: There are no fees associated with the implementation of oSnap. There are also no fees to use UMA’s oracle to verify oSnap requests. Therefore, the overall cost of implementation is zero.
Current DAO governance models often rely on multi-signature wallets for the execution of proposals, which can lead to delays and potential security vulnerabilities. Implementing oSnap, which allows for on-chain execution of off-chain votes, would eliminate the dependency on multi-sig wallets and the associated issues. Furthermore, oSnap’s dispute mechanism and incentives for correct submissions help maintain the integrity and accuracy of the decision-making process.
The integration of oSnap into CoW DAO’s governance aligns with the DAO’s mission of decentralization and community involvement. Implementing oSnap will not only streamline the governance process but also eliminate the need for reliance on multi-signature wallets, thereby promoting more direct community control. This approach aligns with the DAO’s guiding value of decentralization by reducing the need for intermediaries and giving more power to the token holders. Moreover, oSnap’s dispute mechanism provides an extra layer of security, ensuring that the outcomes of governance votes accurately reflect what was approved on Snapshot. Finally, the integration of oSnap is free and easy, making it a practical choice for enhancing CoW DAO’s governance.
The UMA team discussed oSnap with Chen from CoW Protocol, who brought up the importance of monitoring proposals. With oSnap, proposals go to the same closely monitored oracle systems as Polymarket, Sherlock, Cozy, and other oracle requests. Your DAO proposals will populate in UMA's oracle dapp making it easy for people to identify and dispute bad proposals. In practice, questionable Polymarket proposals tend to be disputed within 30 minutes, and those proposals are harder to evaluate than oSnap proposals. Your proposals will also be pulled into bot monitoring systems that members of our competitive disputer network have set up, and you can use our open source code to set up Slack, Discord, and PagerDuty alerts. The Risk Labs engineering team is continuously improving our monitoring and is currently developing a bot that will not only alert on proposals but will automatically dispute if a faulty or malicious proposal is identified.
Since its launch earlier this year, oSnap has been adopted by Across, BarnBridge, ShapeShift, and +DAO to control their on-chain treasuries, securing over $40 million in value. oSnap is also being used by Lossless Protocol to secure their next generation of wrapped tokens.
The below shows the multisend call and detailed transaction data for deploying and enabling the oSnap module for the CoW DAO safe. All deployment steps can be performed through the Zodiac UI.
Multisend Call:
{
"method": "multiSend",
"types": [
"bytes"
],
"inputs": [
"0x00000000000000addb49795b0f9ba5bc298cdda23600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000544f1ab873c00000000000000000000000028cebfe94a03dbca9d17143e9d2bd1155dc26d5d000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000189dc2070d900000000000000000000000000000000000000000000000000000000000004a4a4f9edbf00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000460000000000000000000000000ca771eda0c70aa7d053ab1b25004559b918fe662000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000001bc16d674ec8000000000000000000000000000000000000000000000000000000000000000000c04153534552545f54525554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a3000000000000000000000000000000000000000000000000000000000000000376492061737365727420746861742074686973207472616e73616374696f6e2070726f706f73616c2069732076616c6964206163636f7264696e6720746f2074686520666f6c6c6f77696e672072756c65733a2050726f706f73616c7320617070726f766564206f6e20536e617073686f742c2061732076657269666965642061742068747470733a2f2f736e617073686f742e6f72672f232f636f772e6574682c206172652076616c6964206173206c6f6e672061732074686572652069732061206d696e696d756d2071756f72756d206f6620333530303030303020616e642061206d696e696d756d20766f74696e6720706572696f64206f662031363820686f75727320616e6420697420646f6573206e6f742061707065617220746861742074686520536e617073686f7420766f74696e672073797374656d206973206265696e67206578706c6f69746564206f72206973206f746865727769736520756e617661696c61626c652e205468652071756f72756d20616e6420766f74696e6720706572696f6420617265206d696e696d756d20726571756972656d656e747320666f7220612070726f706f73616c20746f2062652076616c69642e2051756f72756d20616e6420766f74696e6720706572696f642076616c7565732073657420666f7220612073706563696669632070726f706f73616c20696e20536e617073686f742073686f756c642062652075736564206966207468657920617265206d6f726520737472696374207468616e207468652072756c657320706172616d657465722e20546865206578706c616e6174696f6e20696e636c75646564207769746820746865206f6e2d636861696e2070726f706f73616c206d7573742062652074686520756e697175652049504653206964656e74696669657220666f722074686520737065636966696320536e617073686f742070726f706f73616c20746861742077617320617070726f766564206f72206120756e69717565206964656e74696669657220666f7220612070726f706f73616c20696e20616e20616c7465726e617469766520766f74696e672073797374656d20617070726f7665642062792044414f20736f6369616c20636f6e73656e73757320696620536e617073686f74206973206265696e67206578706c6f69746564206f72206973206f746865727769736520756e617661696c61626c652e000000000000000000000000000000000000000000000000000000000000000000000000000000ca771eda0c70aa7d053ab1b25004559b918fe66200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024610b592500000000000000000000000085f520d59debd4c2902bb7f79acbc3dd4b5ab699"
],
"names": [
"transactions"
]
}
Detailed Transaction Data:
{
"version": "1.0",
"chainId": "1",
"createdAt": 1691615486406,
"meta": {
"name": "Transactions Batch",
"description": "",
"txBuilderVersion": "1.16.1",
"createdFromSafeAddress": "0xcA771eda0c70aA7d053aB1B25004559B918FE662",
"createdFromOwnerAddress": "",
"checksum": "0x1807bca7bc7dcea4d50fc7b8e4b680ca00513a9547b7e039f81484602c4d032d"
},
"transactions": [
{
"to": "0x000000000000aDdB49795b0f9bA5BC298cDda236",
"value": "0",
"data": null,
"contractMethod": {
"inputs": [
{
"name": "masterCopy",
"type": "address",
"internalType": "address"
},
{
"name": "initializer",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "saltNonce",
"type": "uint256",
"internalType": "uint256"
}
],
"name": "deployModule",
"payable": false
},
"contractInputsValues": {
"masterCopy": "0x28CeBFE94a03DbCA9d17143e9d2Bd1155DC26D5d",
"initializer": "0xa4f9edbf00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000460000000000000000000000000ca771eda0c70aa7d053ab1b25004559b918fe662000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000001bc16d674ec8000000000000000000000000000000000000000000000000000000000000000000c04153534552545f54525554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a3000000000000000000000000000000000000000000000000000000000000000376492061737365727420746861742074686973207472616e73616374696f6e2070726f706f73616c2069732076616c6964206163636f7264696e6720746f2074686520666f6c6c6f77696e672072756c65733a2050726f706f73616c7320617070726f766564206f6e20536e617073686f742c2061732076657269666965642061742068747470733a2f2f736e617073686f742e6f72672f232f636f772e6574682c206172652076616c6964206173206c6f6e672061732074686572652069732061206d696e696d756d2071756f72756d206f6620333530303030303020616e642061206d696e696d756d20766f74696e6720706572696f64206f662031363820686f75727320616e6420697420646f6573206e6f742061707065617220746861742074686520536e617073686f7420766f74696e672073797374656d206973206265696e67206578706c6f69746564206f72206973206f746865727769736520756e617661696c61626c652e205468652071756f72756d20616e6420766f74696e6720706572696f6420617265206d696e696d756d20726571756972656d656e747320666f7220612070726f706f73616c20746f2062652076616c69642e2051756f72756d20616e6420766f74696e6720706572696f642076616c7565732073657420666f7220612073706563696669632070726f706f73616c20696e20536e617073686f742073686f756c642062652075736564206966207468657920617265206d6f726520737472696374207468616e207468652072756c657320706172616d657465722e20546865206578706c616e6174696f6e20696e636c75646564207769746820746865206f6e2d636861696e2070726f706f73616c206d7573742062652074686520756e697175652049504653206964656e74696669657220666f722074686520737065636966696320536e617073686f742070726f706f73616c20746861742077617320617070726f766564206f72206120756e69717565206964656e74696669657220666f7220612070726f706f73616c20696e20616e20616c7465726e617469766520766f74696e672073797374656d20617070726f7665642062792044414f20736f6369616c20636f6e73656e73757320696620536e617073686f74206973206265696e67206578706c6f69746564206f72206973206f746865727769736520756e617661696c61626c652e00000000000000000000",
"saltNonce": "1691615260889"
}
},
{
"to": "0xcA771eda0c70aA7d053aB1B25004559B918FE662",
"value": "0",
"data": null,
"contractMethod": {
"inputs": [
{
"internalType": "address",
"name": "module",
"type": "address"
}
],
"name": "enableModule",
"payable": false
},
"contractInputsValues": {
"module": "0x85f520D59deBD4c2902BB7f79ACbc3Dd4b5AB699"
}
}
]
}
Tenderly Simulation https://dashboard.tenderly.co/public/safe/safe-apps/simulator/c71b303f-edd7-4a8b-82fe-8472e64acaac