DECENTRALIZED
GOVERNANCE
Smart Contracts that power Decentralized On-
chain Governance
Gene Leybzon 4/7/2022
DISCLAIMER
§ The views and opinions expressed by the Presenter are those of the Presenter.
§ Presentation is not intended as legal or financial advice and may not be used as legal or
financial advice.
§ Every effort has been made to assure this information is up-to-date as of the date of
publication.
PLAN FOR TODAY
1.DAO and Decentralized Governance
2.Smart Contracts for Decentralized
Governance
DEFINING DAO
“A decentralized autonomous organization (DAO), sometimes called
a decentralized autonomous corporation (DAC), is
an organization represented by rules encoded as a computer program that is
transparent, controlled by the organization members and not influenced by a
central government, in other words they are member-owned communities
without centralized leadership.”
- Wikipedia
• DAOs often use blockchain technology to provide a secure digital ledger to track
digital interactions
• DAO governance is coordinated using tokens or NFTs that grant voting powers
• DAOs can be subject to coups or hostile takeovers that upend their voting
structures especially if the voting power is based upon the number of tokens one
owns
DECENTRALIZED GOVERNANCE
Decentralized
Governance
frameworks for managing collective
action and common resources
rules of decentralized organizations
are primarily enforced by code,
rather than the legal system
often use direct voting
Benefits:
• Gives power directly to token holders
• Eliminates some risks of censorship,
manipulation, bribery
• Reduce reliance on external legal frameworks
and systems
• Helps to align interests with group goals
• Greater autonomy
• Efficiency of decision making
• Improved transparency
GOVERNANCE BY VOTING
On Chain
More secure
No trusted third party is required to
count or enact votes
Passed proposals can be executed
automatically
Works well for approving protocol
changes or other high-risk votes
Reduces risk of vote tampering
Off Chain
Votes are not submitted as
blockchain transactions
No transaction fees are necessary
for off chain votes
More participation, particularly from
smaller holders and wider
community
Off chain votes can be recorded via
decentralized data storage systems,
reducing risk of vote tampering
Works well for sentiment polls or
other low risk votes
NOTABLE DAOS
Name Token Use cases Network Launch Status
Dash DASH
Governance, fund
allocation [24]
Dash
(cryptocurrency)
May 2015[25] Operational since
2015[26][27][28]
The DAO DAO Venture capital Ethereum April 2016
Defunct late 2016
due to hack[29]
Augur REP
Prediction
market, Sports
betting, Option
(finance), Insurance
Ethereum July 2018 Operational
Steem STEEM
Data distribution,
Social media, Name
services, Industrial
Steem March 2016 Operational
Uniswap UNI
Exchange,
Automated Market
Making
Ethereum November 2018 Operational[30]
ConstitutionDAO PEOPLE
Purchasing an
original copy of
the Constitution of
the United States
Ethereum November 2021[31] Defunct[32]
IS IT LEGAL?
EXAMPLE OF VOTING PROPOSAL
FLOW
MAKER GOVERNANCE
EXPERIENCE
(DAI STABLECOIN)
APPROACHES FOR DAO
GOVERNANCE
No-Code
DAO Stack
Aragon
Colony
DAOHaus
xDAO
Snapshot
Coding Solutions
Zodiac
Tally
Gnosis Safe
Openzeppelin
TALLY.XYZ VOTING EXPERIENCE
(DEMO)
TALLY.XYZ VOTE STATISTICS
ADDING YOUR DAO TO TALLY.XYZ
MAJOR GOVERNANCE FRAMEWORKS
AND APPROACHES
On-chain
voting
Off-chain Voting Vote delegation Protocols
Compound Governor ✓ ✓ COMP voting
OpenZeppelin
Governor
✓ ✓ Many
Curve Voting Escrow ✓ ✓ Curve Finance
mStable
Multisigs ✓ Synthetix
Yearn Finance
Sushiswap
Snapshot Polls ✓ Balancer
Sushiswap
Yearn Finance
TALLY.XYZ SUPPORTED
PROTOCOLS
Compound (COMP)
Uniswap (UNI)
Indexed Finance (NDX)
PoolTogether (POOL)
Radicle (RAD)
Idle Finance (IDLE)
Inverse Finance (INV)
Unslashed Finance (USF)
…
BALLOT CONTRACT 1/6
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/// @title Voting with delegation.
contract Ballot {
struct Voter {
uint weight; // weight is accumulated by delegation
bool voted; // if true, that person already voted
address delegate; // person delegated to
uint vote; // index of the voted proposal
}
// This is a type for a single proposal.
struct Proposal {
bytes32 name; // short name (up to 32 bytes)
uint voteCount; // number of accumulated votes
}
BALLOT CONTRACT 2/6
constructor(bytes32[] memory proposalNames) {
chairperson = msg.sender;
voters[chairperson].weight = 1;
// For each of the provided proposal names,
// create a new proposal object and add it
// to the end of the array.
for (uint i = 0; i < proposalNames.length; i++) {
// `Proposal({...})` creates a temporary
// Proposal object and `proposals.push(...)`
// appends it to the end of `proposals`.
proposals.push(Proposal({
name: proposalNames[i],
voteCount: 0
}));
}
}
BALLOT CONTRACT 3/6
function giveRightToVote(address voter) external {
require(
msg.sender == chairperson,
"Only chairperson can give right to vote."
);
require(
!voters[voter].voted,
"The voter already voted."
);
require(voters[voter].weight == 0);
voters[voter].weight = 1;
}
BALLOT CONTRACT 4/6
/// Delegate your vote to the voter `to`.
function delegate(address to) external {
// assigns reference
Voter storage sender = voters[msg.sender];
require(!sender.voted, "You already voted.");
require(to != msg.sender, "Self-delegation is disallowed.");
while (voters[to].delegate != address(0)) {
to = voters[to].delegate;
// We found a loop in the delegation, not allowed.
require(to != msg.sender, "Found loop in delegation.");
}
// Since `sender` is a reference, this
// modifies `voters[msg.sender].voted`
Voter storage delegate_ = voters[to];
// Voters cannot delegate to wallets that cannot vote.
require(delegate_.weight >= 1);
sender.voted = true;
sender.delegate = to;
if (delegate_.voted) {
// If the delegate already voted,
// directly add to the number of votes
proposals[delegate_.vote].voteCount += sender.weight;
} else {
// If the delegate did not vote yet,
// add to her weight.
delegate_.weight += sender.weight;
}
}
BALLOT CONTRACT 5/6
function vote(uint proposal) external {
Voter storage sender = voters[msg.sender];
require(sender.weight != 0, "Has no right to vote");
require(!sender.voted, "Already voted.");
sender.voted = true;
sender.vote = proposal;
// If `proposal` is out of the range of the array,
// this will throw automatically and revert all
// changes.
proposals[proposal].voteCount += sender.weight;
}
BALLOT CONTRACT 6/6
function winnerName() external view
returns (bytes32 winnerName_)
{
winnerName_ = proposals[winningProposal()].name;
}
NEXT STEPS
(AGENDA FOR OUR MEETUP NEXT
MONTH)
Governor Bravo
OpenZeppelin
ABOUT PRESENTER
Gene Leybzon
https://www.linkedin.com/in/leybzon/
https://www.meetup.com/members/90
74420/
https://www.leybzon.com
https://clarity.fm/geneleybzon

More Related Content

PPTX
Blockchain, DAO, Holacracy and HR Organsiation Design
PPT
Blockchain Explained
PPTX
DAOs on Ethereum: The Future of Venture Finance
PDF
Gnoken dao presentation updated
PDF
What is a blockchain?
PDF
Blockchain Technology | Blockchain Explained | Blockchain Tutorial | Blockcha...
PPTX
Blockchain
PPTX
BLOCKCHAIN
Blockchain, DAO, Holacracy and HR Organsiation Design
Blockchain Explained
DAOs on Ethereum: The Future of Venture Finance
Gnoken dao presentation updated
What is a blockchain?
Blockchain Technology | Blockchain Explained | Blockchain Tutorial | Blockcha...
Blockchain
BLOCKCHAIN

What's hot (20)

PPTX
Blockchain Essentials and Blockchain on Azure
PDF
Blockchain
PDF
Les grands principes de la Blockchain
PDF
Ethereum in a nutshell
PPTX
The Blockchain - The Technology behind Bitcoin
PPTX
The Blockchain and the Future of Cybersecurity
PDF
Blockchain 101 | Blockchain Tutorial | Blockchain Smart Contracts | Blockchai...
PDF
Understanding Blockchain: Distributed Ledger Technology
PDF
PPTX
Understanding Blockchain
PDF
01 - Introduction to Hyperledger : A Blockchain Technology for Business
PPTX
Consensus Algorithms - Nakov @ jProfessionals - Jan 2018
PDF
Blockchain Explained | Blockchain Simplified | Blockchain Technology | Blockc...
PDF
Blockchain Introduction
PDF
Blockchain and Decentralization
PDF
Blockchain
PPTX
Block Chain
PDF
Blockchain
PDF
An Introduction to Blockchain Technology
PDF
Ethereum-Cryptocurrency (All about Ethereum)
Blockchain Essentials and Blockchain on Azure
Blockchain
Les grands principes de la Blockchain
Ethereum in a nutshell
The Blockchain - The Technology behind Bitcoin
The Blockchain and the Future of Cybersecurity
Blockchain 101 | Blockchain Tutorial | Blockchain Smart Contracts | Blockchai...
Understanding Blockchain: Distributed Ledger Technology
Understanding Blockchain
01 - Introduction to Hyperledger : A Blockchain Technology for Business
Consensus Algorithms - Nakov @ jProfessionals - Jan 2018
Blockchain Explained | Blockchain Simplified | Blockchain Technology | Blockc...
Blockchain Introduction
Blockchain and Decentralization
Blockchain
Block Chain
Blockchain
An Introduction to Blockchain Technology
Ethereum-Cryptocurrency (All about Ethereum)
Ad

Similar to Onchain Decentralized Governance.pptx (20)

PPTX
Onchain Decentralized Governance 2.pptx
PDF
The Anatomy of a DAO–Understanding the inner workings of decentralized organi...
PPT
Decentralised ethereum blockchain voting application
PDF
Chris Adams: Landscape of DAO Tooling, Frameworks and Integration
PPTX
G3 DAO ETTA Mid Term.pptx Decentralised Autonomous Organisation
PDF
Chris Adams: Landscape of DAO Tooling, Frameworks and a Peek into the Future
PDF
IRJET- A Decentralized Voting Application using Blockchain Technology
PPTX
Dissertation ppt on BLOCKCHAIN BASED ONLINE VOTING SYSTEM
PDF
Charlie Cummings & Jan Brezina: The Future of DAO Governance
PDF
set zeroth review blockchain electoral system.pdf
PDF
All about blockchain
 
PDF
What is Decentralized Autonomous Organization (DAO) & How DAO works?
PPTX
Blockchain Based voting system PPT.pptx
PDF
blockchainbasedvotingsystemppt-230107161224-95283de7.pdf
PPTX
project presentation -2 nov (2).pptx
PDF
SECURE BLOCKCHAIN DECENTRALIZED VOTING FOR VERIFIED USERS
PDF
web3fundamentals-220606173127-34d32a41.pdf
PPTX
HubCityDAO: Web3 Fundamentals
PDF
Blockchain and smart contracts, what they are and why you should really care ...
PPTX
CASE STUDY ON EVOTING USING BLOCKCHAIN1.pptx
Onchain Decentralized Governance 2.pptx
The Anatomy of a DAO–Understanding the inner workings of decentralized organi...
Decentralised ethereum blockchain voting application
Chris Adams: Landscape of DAO Tooling, Frameworks and Integration
G3 DAO ETTA Mid Term.pptx Decentralised Autonomous Organisation
Chris Adams: Landscape of DAO Tooling, Frameworks and a Peek into the Future
IRJET- A Decentralized Voting Application using Blockchain Technology
Dissertation ppt on BLOCKCHAIN BASED ONLINE VOTING SYSTEM
Charlie Cummings & Jan Brezina: The Future of DAO Governance
set zeroth review blockchain electoral system.pdf
All about blockchain
 
What is Decentralized Autonomous Organization (DAO) & How DAO works?
Blockchain Based voting system PPT.pptx
blockchainbasedvotingsystemppt-230107161224-95283de7.pdf
project presentation -2 nov (2).pptx
SECURE BLOCKCHAIN DECENTRALIZED VOTING FOR VERIFIED USERS
web3fundamentals-220606173127-34d32a41.pdf
HubCityDAO: Web3 Fundamentals
Blockchain and smart contracts, what they are and why you should really care ...
CASE STUDY ON EVOTING USING BLOCKCHAIN1.pptx
Ad

More from Gene Leybzon (20)

PPTX
Generative AI Application Development using LangChain and LangFlow
PPTX
Chat GPTs
PPTX
Generative AI Use cases for Enterprise - Second Session
PPTX
Generative AI Use-cases for Enterprise - First Session
PPTX
Non-fungible tokens (nfts)
PPTX
Introduction to Solidity and Smart Contract Development (9).pptx
PPTX
Ethereum in Enterprise.pptx
PPTX
ERC-4907 Rentable NFT Standard.pptx
PPTX
Web3 File Storage Options
PPTX
Web3 Full Stack Development
PPTX
Instantly tradeable NFT contracts based on ERC-1155 standard
PPTX
Non-fungible tokens. From smart contract code to marketplace
PPTX
The Art of non-fungible tokens
PPTX
Graph protocol for accessing information about blockchains and d apps
PPTX
Substrate Framework
PPTX
Chainlink
PPTX
OpenZeppelin + Remix + BNB smart chain
PPTX
Chainlink, Cosmos, Kusama, Polkadot: Approaches to the Internet of Blockchains
PPTX
Dex and Uniswap
PPTX
Accessing decentralized finance on Ethereum blockchain
Generative AI Application Development using LangChain and LangFlow
Chat GPTs
Generative AI Use cases for Enterprise - Second Session
Generative AI Use-cases for Enterprise - First Session
Non-fungible tokens (nfts)
Introduction to Solidity and Smart Contract Development (9).pptx
Ethereum in Enterprise.pptx
ERC-4907 Rentable NFT Standard.pptx
Web3 File Storage Options
Web3 Full Stack Development
Instantly tradeable NFT contracts based on ERC-1155 standard
Non-fungible tokens. From smart contract code to marketplace
The Art of non-fungible tokens
Graph protocol for accessing information about blockchains and d apps
Substrate Framework
Chainlink
OpenZeppelin + Remix + BNB smart chain
Chainlink, Cosmos, Kusama, Polkadot: Approaches to the Internet of Blockchains
Dex and Uniswap
Accessing decentralized finance on Ethereum blockchain

Recently uploaded (20)

PDF
giants, standing on the shoulders of - by Daniel Stenberg
PPTX
SGT Report The Beast Plan and Cyberphysical Systems of Control
DOCX
Basics of Cloud Computing - Cloud Ecosystem
PDF
zbrain.ai-Scope Key Metrics Configuration and Best Practices.pdf
PDF
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
PDF
EIS-Webinar-Regulated-Industries-2025-08.pdf
PDF
Dell Pro Micro: Speed customer interactions, patient processing, and learning...
PDF
Build Real-Time ML Apps with Python, Feast & NoSQL
PDF
Ensemble model-based arrhythmia classification with local interpretable model...
PDF
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
PDF
The AI Revolution in Customer Service - 2025
PDF
LMS bot: enhanced learning management systems for improved student learning e...
PDF
4 layer Arch & Reference Arch of IoT.pdf
PDF
NewMind AI Weekly Chronicles – August ’25 Week IV
PDF
Rapid Prototyping: A lecture on prototyping techniques for interface design
PDF
“The Future of Visual AI: Efficient Multimodal Intelligence,” a Keynote Prese...
PDF
Data Virtualization in Action: Scaling APIs and Apps with FME
PDF
Auditboard EB SOX Playbook 2023 edition.
PDF
MENA-ECEONOMIC-CONTEXT-VC MENA-ECEONOMIC
PPTX
AI-driven Assurance Across Your End-to-end Network With ThousandEyes
giants, standing on the shoulders of - by Daniel Stenberg
SGT Report The Beast Plan and Cyberphysical Systems of Control
Basics of Cloud Computing - Cloud Ecosystem
zbrain.ai-Scope Key Metrics Configuration and Best Practices.pdf
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
EIS-Webinar-Regulated-Industries-2025-08.pdf
Dell Pro Micro: Speed customer interactions, patient processing, and learning...
Build Real-Time ML Apps with Python, Feast & NoSQL
Ensemble model-based arrhythmia classification with local interpretable model...
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
The AI Revolution in Customer Service - 2025
LMS bot: enhanced learning management systems for improved student learning e...
4 layer Arch & Reference Arch of IoT.pdf
NewMind AI Weekly Chronicles – August ’25 Week IV
Rapid Prototyping: A lecture on prototyping techniques for interface design
“The Future of Visual AI: Efficient Multimodal Intelligence,” a Keynote Prese...
Data Virtualization in Action: Scaling APIs and Apps with FME
Auditboard EB SOX Playbook 2023 edition.
MENA-ECEONOMIC-CONTEXT-VC MENA-ECEONOMIC
AI-driven Assurance Across Your End-to-end Network With ThousandEyes

Onchain Decentralized Governance.pptx

  • 1. DECENTRALIZED GOVERNANCE Smart Contracts that power Decentralized On- chain Governance Gene Leybzon 4/7/2022
  • 2. DISCLAIMER § The views and opinions expressed by the Presenter are those of the Presenter. § Presentation is not intended as legal or financial advice and may not be used as legal or financial advice. § Every effort has been made to assure this information is up-to-date as of the date of publication.
  • 3. PLAN FOR TODAY 1.DAO and Decentralized Governance 2.Smart Contracts for Decentralized Governance
  • 4. DEFINING DAO “A decentralized autonomous organization (DAO), sometimes called a decentralized autonomous corporation (DAC), is an organization represented by rules encoded as a computer program that is transparent, controlled by the organization members and not influenced by a central government, in other words they are member-owned communities without centralized leadership.” - Wikipedia • DAOs often use blockchain technology to provide a secure digital ledger to track digital interactions • DAO governance is coordinated using tokens or NFTs that grant voting powers • DAOs can be subject to coups or hostile takeovers that upend their voting structures especially if the voting power is based upon the number of tokens one owns
  • 5. DECENTRALIZED GOVERNANCE Decentralized Governance frameworks for managing collective action and common resources rules of decentralized organizations are primarily enforced by code, rather than the legal system often use direct voting Benefits: • Gives power directly to token holders • Eliminates some risks of censorship, manipulation, bribery • Reduce reliance on external legal frameworks and systems • Helps to align interests with group goals • Greater autonomy • Efficiency of decision making • Improved transparency
  • 6. GOVERNANCE BY VOTING On Chain More secure No trusted third party is required to count or enact votes Passed proposals can be executed automatically Works well for approving protocol changes or other high-risk votes Reduces risk of vote tampering Off Chain Votes are not submitted as blockchain transactions No transaction fees are necessary for off chain votes More participation, particularly from smaller holders and wider community Off chain votes can be recorded via decentralized data storage systems, reducing risk of vote tampering Works well for sentiment polls or other low risk votes
  • 7. NOTABLE DAOS Name Token Use cases Network Launch Status Dash DASH Governance, fund allocation [24] Dash (cryptocurrency) May 2015[25] Operational since 2015[26][27][28] The DAO DAO Venture capital Ethereum April 2016 Defunct late 2016 due to hack[29] Augur REP Prediction market, Sports betting, Option (finance), Insurance Ethereum July 2018 Operational Steem STEEM Data distribution, Social media, Name services, Industrial Steem March 2016 Operational Uniswap UNI Exchange, Automated Market Making Ethereum November 2018 Operational[30] ConstitutionDAO PEOPLE Purchasing an original copy of the Constitution of the United States Ethereum November 2021[31] Defunct[32]
  • 9. EXAMPLE OF VOTING PROPOSAL FLOW
  • 11. APPROACHES FOR DAO GOVERNANCE No-Code DAO Stack Aragon Colony DAOHaus xDAO Snapshot Coding Solutions Zodiac Tally Gnosis Safe Openzeppelin
  • 14. ADDING YOUR DAO TO TALLY.XYZ
  • 15. MAJOR GOVERNANCE FRAMEWORKS AND APPROACHES On-chain voting Off-chain Voting Vote delegation Protocols Compound Governor ✓ ✓ COMP voting OpenZeppelin Governor ✓ ✓ Many Curve Voting Escrow ✓ ✓ Curve Finance mStable Multisigs ✓ Synthetix Yearn Finance Sushiswap Snapshot Polls ✓ Balancer Sushiswap Yearn Finance
  • 16. TALLY.XYZ SUPPORTED PROTOCOLS Compound (COMP) Uniswap (UNI) Indexed Finance (NDX) PoolTogether (POOL) Radicle (RAD) Idle Finance (IDLE) Inverse Finance (INV) Unslashed Finance (USF) …
  • 17. BALLOT CONTRACT 1/6 // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; /// @title Voting with delegation. contract Ballot { struct Voter { uint weight; // weight is accumulated by delegation bool voted; // if true, that person already voted address delegate; // person delegated to uint vote; // index of the voted proposal } // This is a type for a single proposal. struct Proposal { bytes32 name; // short name (up to 32 bytes) uint voteCount; // number of accumulated votes }
  • 18. BALLOT CONTRACT 2/6 constructor(bytes32[] memory proposalNames) { chairperson = msg.sender; voters[chairperson].weight = 1; // For each of the provided proposal names, // create a new proposal object and add it // to the end of the array. for (uint i = 0; i < proposalNames.length; i++) { // `Proposal({...})` creates a temporary // Proposal object and `proposals.push(...)` // appends it to the end of `proposals`. proposals.push(Proposal({ name: proposalNames[i], voteCount: 0 })); } }
  • 19. BALLOT CONTRACT 3/6 function giveRightToVote(address voter) external { require( msg.sender == chairperson, "Only chairperson can give right to vote." ); require( !voters[voter].voted, "The voter already voted." ); require(voters[voter].weight == 0); voters[voter].weight = 1; }
  • 20. BALLOT CONTRACT 4/6 /// Delegate your vote to the voter `to`. function delegate(address to) external { // assigns reference Voter storage sender = voters[msg.sender]; require(!sender.voted, "You already voted."); require(to != msg.sender, "Self-delegation is disallowed."); while (voters[to].delegate != address(0)) { to = voters[to].delegate; // We found a loop in the delegation, not allowed. require(to != msg.sender, "Found loop in delegation."); } // Since `sender` is a reference, this // modifies `voters[msg.sender].voted` Voter storage delegate_ = voters[to]; // Voters cannot delegate to wallets that cannot vote. require(delegate_.weight >= 1); sender.voted = true; sender.delegate = to; if (delegate_.voted) { // If the delegate already voted, // directly add to the number of votes proposals[delegate_.vote].voteCount += sender.weight; } else { // If the delegate did not vote yet, // add to her weight. delegate_.weight += sender.weight; } }
  • 21. BALLOT CONTRACT 5/6 function vote(uint proposal) external { Voter storage sender = voters[msg.sender]; require(sender.weight != 0, "Has no right to vote"); require(!sender.voted, "Already voted."); sender.voted = true; sender.vote = proposal; // If `proposal` is out of the range of the array, // this will throw automatically and revert all // changes. proposals[proposal].voteCount += sender.weight; }
  • 22. BALLOT CONTRACT 6/6 function winnerName() external view returns (bytes32 winnerName_) { winnerName_ = proposals[winningProposal()].name; }
  • 23. NEXT STEPS (AGENDA FOR OUR MEETUP NEXT MONTH) Governor Bravo OpenZeppelin