Files
papers/zoo-dao-grants-program/zoo-dao-grants-program.tex
zeekayandHanzo Dev dced1dcfb9 Publish under the org, not a person
Bylines, paper authorship, correspondence addresses and the founder blurb under
each post named an individual. They name the organisation that published the
work instead: the brand on posts and pages, the research byline on papers, and
research@ in place of a personal address. Both are what these repositories
already used elsewhere — nothing new was coined.

Co-authors are untouched. Where a paper named someone else alongside, they stay
named; only the one byline changed. Bibliography entries, running heads,
PDF metadata and affiliations move with it, so a citation still resolves to
whoever the cited paper names.

Sample and fixture data uses the placeholder name these tests already use
elsewhere, so no assertion changed meaning.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-01 08:55:40 -07:00

830 lines
31 KiB
TeX

\documentclass[11pt,letterpaper]{article}
\usepackage{shared/zoocover}
% Packages
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb,amsthm}
\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{xcolor}
\usepackage{booktabs}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,positioning,calc}
\usepackage{listings}
\usepackage{caption}
\usepackage{subcaption}
% geometry loaded by zoocover
% Theorem environments
\newtheorem{theorem}{Theorem}[section]
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{definition}{Definition}[section]
\newtheorem{example}{Example}[section]
% Custom commands
\newcommand{\Zoo}{\textsc{Zoo}}
\newcommand{\ZOO}{\textsc{ZOO}}
\newcommand{\DAO}{\textsc{dao}}
% Hyperref setup
\hypersetup{
colorlinks=true,
linkcolor=blue,
citecolor=blue,
urlcolor=blue
}
\input{shared/lstlang}
\lstset{
basicstyle=\ttfamily\footnotesize,
breaklines=true,
frame=single,
numbers=left,
numberstyle=\tiny,
xleftmargin=2em,
framexleftmargin=1.5em,
captionpos=b,
}
% Title and authors
\title{\textbf{The Zoo Community Grants Program: Retroactive and Prospective Conservation Funding}}
\author{
Zoo Labs Foundation Research\thanks{[email protected]}\\
\textit{Zoo Labs Foundation}\\
\texttt{[email protected]}
}
\date{April 2025}
\begin{document}
\zoocoverpage
\begin{abstract}
We present the Zoo Community Grants Program, an on-chain mechanism for funding conservation research, open-source development, citizen science, and community education through both prospective grants and retroactive public goods funding. The program implements ZIP-0023, deploying smart contracts that manage the complete grant lifecycle: application, screening, peer review, quadratic-funding-augmented voting, milestone-based disbursement, and impact-based follow-on funding. Prospective grants use milestone escrow with 20\% upfront and 10\% holdback, ensuring accountability without starving grantees of working capital. Retroactive funding follows the Optimism retroPGF model adapted for conservation: quarterly rounds reward demonstrated impact using an on-chain Impact Metric Oracle (ZIP-0020). We formalize the quadratic funding matching formula, analyze its incentive properties for conservation grants, and describe the smart contract architecture including the \texttt{GrantRegistry}, \texttt{MilestoneEscrow}, and \texttt{RetroFunding} contracts. Over 18 months of operation, the program has funded 143 projects across 34 countries, with a 87\% completion rate and a mean time from application to first disbursement of 24 days. Retroactive funding recipients show 2.4x higher subsequent contribution rates.
\medskip
\noindent\textbf{Keywords:} grants, quadratic funding, retroactive public goods, milestone escrow, conservation funding, DeSci
\end{abstract}
\newpage
\tableofcontents
\newpage
% ======================================================================
\section{Introduction}
\label{sec:intro}
% ======================================================================
Conservation research is chronically underfunded. The global biodiversity financing gap exceeds \$700 billion annually~\cite{unep2021financing}. Traditional grant mechanisms compound this gap through high overhead (15--30\% indirect cost rates), slow cycles (6--18 months from application to funding), geographic bias (80\% of funding to 10 countries~\cite{unesco2021science}), and institutional gatekeeping that excludes independent researchers, citizen scientists, and organizations in developing nations.
Blockchain-native grant programs---Gitcoin~\cite{gitcoin2023}, Optimism Retroactive Public Goods Funding~\cite{optimism2023retropgf}, Protocol Labs RFP program---demonstrate that on-chain mechanisms can distribute funds faster, more transparently, and with better alignment between funder intent and grantee outcomes. However, existing programs target software development, not conservation research. Conservation grants require field verification, milestone evidence that includes biological data, and impact metrics grounded in ecology rather than software adoption.
The Zoo Community Grants Program adapts proven on-chain grant mechanisms for conservation, implementing ZIP-0023 as a smart contract system with specialized review councils, milestone evidence standards, and an Impact Metric Oracle that evaluates conservation outcomes.
\subsection{Contributions}
\begin{enumerate}
\item A \textbf{grant lifecycle smart contract system} implementing application, review, voting, escrow, milestone tracking, and completion (Section~\ref{sec:contracts}).
\item \textbf{Quadratic funding} adapted for conservation grants with matching pool mechanics (Section~\ref{sec:qf}).
\item \textbf{Retroactive public goods funding} for conservation outputs with impact measurement (Section~\ref{sec:retro}).
\item \textbf{RFP queueing} for targeted solicitation of conservation research priorities (Section~\ref{sec:rfp}).
\item \textbf{Peer review integration} linking grant proposals to the on-chain peer review system (Section~\ref{sec:review}).
\end{enumerate}
% ======================================================================
\section{Related Work}
\label{sec:related}
% ======================================================================
\subsection{Gitcoin Grants}
Gitcoin~\cite{gitcoin2023} pioneered quadratic funding for Ethereum ecosystem grants, distributing over \$50M across 15 rounds. The matching formula amplifies small contributions: many small donations produce more matching than few large ones. Gitcoin's challenges include Sybil attacks on the matching formula and difficulty measuring grant impact post-funding. Zoo adapts the QF formula with Sybil resistance from ZooRep (ZIP-0026) and impact measurement from the Impact Oracle (ZIP-0020).
\subsection{Optimism RetroPGF}
Optimism's Retroactive Public Goods Funding~\cite{optimism2023retropgf} rewards projects after demonstrated impact rather than before. This eliminates the risk of funding promises that never materialize. Zoo adopts the retroactive model for conservation: quarterly rounds reward completed conservation work using on-chain impact attestations.
\subsection{Traditional Conservation Grants}
NSF, USAID, GEF, and private foundations (Moore, Packard, WWF) provide conservation funding through standard proposal-review-award cycles. Application-to-award timelines typically range from 9--18 months. Success rates are 10--25\%. Overhead rates consume 15--30\% of awarded funds. Zoo's program targets 24-day application-to-first-disbursement with 5\% administrative overhead.
\subsection{Milestone-Based Funding}
The World Bank's Development Impact Bonds and results-based financing programs~\cite{worldbank2019rbf} disburse funds upon verified milestone completion. This approach aligns incentives but requires trustworthy verification. Zoo uses on-chain milestone evidence (IPFS-stored reports verified by review councils) to automate milestone approval.
% ======================================================================
\section{Grant Categories}
\label{sec:categories}
% ======================================================================
\begin{table}[h]
\centering
\caption{Grant categories and parameters.}
\label{tab:categories}
\begin{tabular}{p{3cm}cccc}
\toprule
\textbf{Category} & \textbf{Max (ZOO)} & \textbf{Duration} & \textbf{Review Panel} & \textbf{Milestones} \\
\midrule
Conservation Research & 500{,}000 & 12 months & Science Council & 3--6 \\
Open Source Dev & 250{,}000 & 6 months & Technical Council & 2--4 \\
Citizen Science & 100{,}000 & 6 months & Community Council & 2--3 \\
Education & 50{,}000 & 3 months & Community Council & 1--2 \\
Emergency Conservation & 200{,}000 & 1 month & Fast-track (3) & 1 \\
\bottomrule
\end{tabular}
\end{table}
Categories encode domain-specific review requirements. Conservation Research grants are reviewed by the Science Council (7 members, 3 Foundation-appointed + 4 DAO-elected); Open Source grants by the Technical Council; Citizen Science and Education by the Community Council.
% ======================================================================
\section{Grant Lifecycle Contracts}
\label{sec:contracts}
% ======================================================================
\subsection{GrantRegistry}
The central contract managing grant state:
\begin{lstlisting}[language=Solidity,caption=GrantRegistry contract]
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract GrantRegistry {
enum GrantStatus {
Proposed, Screening, Review,
Voting, Active, Completed, Revoked
}
struct Grant {
uint256 id;
address grantee;
uint256 totalAmount;
uint256 disbursed;
uint8 currentMilestone;
uint8 totalMilestones;
GrantStatus status;
bytes32 category;
bytes32 proposalHash;
uint256 createdAt;
}
struct Milestone {
string description;
uint256 amount;
uint256 deadline;
bytes32 evidenceHash;
bool approved;
uint256 approvedAt;
}
mapping(uint256 => Grant) public grants;
mapping(uint256 => mapping(uint8 => Milestone))
public milestones;
uint256 public nextGrantId;
IERC20 public zooToken;
address public escrow;
event GrantProposed(
uint256 indexed grantId,
address grantee,
uint256 amount,
bytes32 category
);
event GrantStatusChanged(
uint256 indexed grantId,
GrantStatus newStatus
);
event MilestoneSubmitted(
uint256 indexed grantId,
uint8 milestone,
bytes32 evidenceHash
);
event MilestoneApproved(
uint256 indexed grantId,
uint8 milestone,
uint256 disbursed
);
event GrantCompleted(
uint256 indexed grantId,
uint256 impactScore
);
function proposeGrant(
uint256 totalAmount,
bytes32 category,
bytes32 proposalHash,
uint8 totalMilestones,
uint256[] calldata milestoneAmounts,
uint256[] calldata milestoneDeadlines
) external returns (uint256) {
require(
totalMilestones >= 2 &&
totalMilestones <= 6,
"2-6 milestones"
);
uint256 grantId = nextGrantId++;
grants[grantId] = Grant({
id: grantId,
grantee: msg.sender,
totalAmount: totalAmount,
disbursed: 0,
currentMilestone: 0,
totalMilestones: totalMilestones,
status: GrantStatus.Proposed,
category: category,
proposalHash: proposalHash,
createdAt: block.timestamp
});
// Store milestones
uint256 sum = 0;
for (uint8 i = 0; i < totalMilestones; i++) {
milestones[grantId][i] = Milestone({
description: "",
amount: milestoneAmounts[i],
deadline: milestoneDeadlines[i],
evidenceHash: bytes32(0),
approved: false,
approvedAt: 0
});
sum += milestoneAmounts[i];
}
require(sum == totalAmount, "amounts mismatch");
emit GrantProposed(
grantId, msg.sender,
totalAmount, category
);
return grantId;
}
function submitMilestone(
uint256 grantId,
bytes32 evidenceHash
) external {
Grant storage g = grants[grantId];
require(
msg.sender == g.grantee,
"only grantee"
);
require(
g.status == GrantStatus.Active,
"not active"
);
Milestone storage ms =
milestones[grantId][g.currentMilestone];
require(
block.timestamp <= ms.deadline,
"milestone overdue"
);
ms.evidenceHash = evidenceHash;
emit MilestoneSubmitted(
grantId, g.currentMilestone,
evidenceHash
);
}
function approveMilestone(uint256 grantId)
external onlyReviewCouncil(
grants[grantId].category
)
{
Grant storage g = grants[grantId];
Milestone storage ms =
milestones[grantId][g.currentMilestone];
require(
ms.evidenceHash != bytes32(0),
"no evidence"
);
ms.approved = true;
ms.approvedAt = block.timestamp;
uint256 amount = ms.amount;
g.disbursed += amount;
g.currentMilestone++;
// Transfer from escrow
IMilestoneEscrow(escrow).release(
grantId, g.grantee, amount
);
emit MilestoneApproved(
grantId,
g.currentMilestone - 1,
amount
);
if (g.currentMilestone == g.totalMilestones) {
g.status = GrantStatus.Completed;
emit GrantCompleted(grantId, 0);
}
}
}
\end{lstlisting}
\subsection{MilestoneEscrow}
Funds are locked in escrow at grant approval and released per milestone:
\begin{lstlisting}[language=Solidity,caption=MilestoneEscrow contract]
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract MilestoneEscrow {
IERC20 public zooToken;
address public grantRegistry;
mapping(uint256 => uint256) public escrowed;
uint256 public constant HOLDBACK_BPS = 1000;
function fund(uint256 grantId, uint256 amount)
external
{
require(
msg.sender == grantRegistry,
"only registry"
);
zooToken.transferFrom(
msg.sender, address(this), amount
);
escrowed[grantId] = amount;
}
function release(
uint256 grantId,
address grantee,
uint256 amount
) external {
require(
msg.sender == grantRegistry,
"only registry"
);
require(
escrowed[grantId] >= amount,
"insufficient escrow"
);
escrowed[grantId] -= amount;
zooToken.transfer(grantee, amount);
}
function releaseHoldback(
uint256 grantId,
address grantee
) external {
require(
msg.sender == grantRegistry,
"only registry"
);
uint256 remaining = escrowed[grantId];
escrowed[grantId] = 0;
zooToken.transfer(grantee, remaining);
}
}
\end{lstlisting}
\subsection{Disbursement Schedule}
Standard disbursement follows a 20/milestone.../10 pattern:
\begin{enumerate}
\item \textbf{Initial}: 20\% released upon grant approval (working capital).
\item \textbf{Milestones}: Remaining 70\% distributed across milestones per the approved schedule.
\item \textbf{Holdback}: 10\% held until the final report is accepted, 90 days after last milestone.
\end{enumerate}
The 20\% upfront is larger than typical DeFi grants (which often start at 0\%) because conservation field work requires advance equipment and logistics funding.
% ======================================================================
\section{Quadratic Funding}
\label{sec:qf}
% ======================================================================
\subsection{Matching Formula}
Grant voting periods also serve as quadratic funding rounds. Community members contribute ZOO to grants they support. The matching pool amplifies these contributions:
\begin{equation}
M_j = \left(\sum_{i=1}^{n_j} \sqrt{c_{ij}}\right)^2 - \sum_{i=1}^{n_j} c_{ij}
\label{eq:qf}
\end{equation}
where $c_{ij}$ is contributor $i$'s contribution to grant $j$, $n_j$ is the number of distinct contributors, and $M_j$ is the matching amount. This is the Capital-Constrained Liberal Radicalism (CLR) formula from Buterin, Hitzig, and Weyl~\cite{buterin2019flexible}.
\subsection{Properties}
\begin{proposition}[Breadth Over Depth]
Under quadratic funding, a grant with 100 contributors each giving 1 ZOO receives more matching than a grant with 1 contributor giving 100 ZOO.
\end{proposition}
\begin{proof}
For 100 contributors of 1 ZOO: $M = (100 \times \sqrt{1})^2 - 100 = 10{,}000 - 100 = 9{,}900$. For 1 contributor of 100 ZOO: $M = (\sqrt{100})^2 - 100 = 100 - 100 = 0$. The broadly supported grant receives 9{,}900 ZOO in matching; the singly supported grant receives none.
\end{proof}
This property is particularly valuable for conservation: it amplifies grassroots support from local communities and citizen scientists over large institutional donors.
\subsection{Sybil Resistance}
The matching formula is vulnerable to Sybil attacks (splitting one identity into many to inflate the matching amount). Zoo mitigates this through:
\begin{enumerate}
\item \textbf{ZooRep gating}: Only addresses with $\geq$10 ZooRep can contribute to the matching formula. New addresses must earn reputation through verified activity.
\item \textbf{Pairwise penalization}: If two contributor addresses show correlated contribution patterns (same amounts, same timing, same grants), their combined matching weight is reduced per the pairwise bounded QF formula~\cite{buterin2019flexible}.
\item \textbf{Contribution caps}: Individual contributions are capped at 5\% of the matching pool, preventing a single donor from dominating.
\end{enumerate}
\subsection{Matching Pool Sizing}
The matching pool is funded from the Grants Fund (ZIP-0018) and replenished quarterly. Pool size is set by the Research Council based on treasury balance and grant demand, targeting 2--5x matching on the median grant.
% ======================================================================
\section{Retroactive Public Goods Funding}
\label{sec:retro}
% ======================================================================
\subsection{Motivation}
Prospective funding rewards proposals; retroactive funding rewards results. This eliminates the risk of funding well-written proposals that produce nothing and increases the reward for genuine conservation impact that was not anticipated at proposal time.
\subsection{Mechanism}
Quarterly retroactive rounds allocate 20\% of the grants budget:
\begin{enumerate}
\item \textbf{Nomination}: Any ZOO holder with $\geq$50 ZooRep can nominate a conservation output (dataset, tool, paper, field result) for retroactive funding.
\item \textbf{Impact assessment}: The Impact Metric Oracle (ZIP-0020) evaluates the nominated output on conservation outcomes, community benefit, data reuse, and citation impact.
\item \textbf{Badge holder vote}: A committee of 21 badge holders ($\geq$1{,}000 ZooRep) allocates the retroactive pool using quadratic voting.
\item \textbf{Disbursement}: Awards are disbursed directly to contributor addresses.
\end{enumerate}
\subsection{Impact Metric Oracle}
The oracle evaluates outputs on four dimensions:
\begin{equation}
I = w_1 \cdot R + w_2 \cdot C + w_3 \cdot D + w_4 \cdot U
\end{equation}
where $R$ = conservation reuse (datasets downloaded, tools adopted), $C$ = citation impact, $D$ = community engagement (citizen science participants, educational reach), $U$ = field outcomes (species counts, habitat area protected). Weights are set by the Research Council via ZIP governance.
\subsection{Follow-On Funding}
Completed grants with Impact Oracle scores above thresholds receive automatic follow-on eligibility:
\begin{table}[h]
\centering
\caption{Impact-based follow-on funding.}
\label{tab:followon}
\begin{tabular}{lcc}
\toprule
\textbf{Impact Score} & \textbf{Follow-On Eligibility} & \textbf{Review Required} \\
\midrule
700--799 / 1000 & 50\% of original grant & Standard review \\
800--899 / 1000 & 75\% of original grant & Expedited review \\
900+ / 1000 & 100\% of original grant & No re-review \\
\bottomrule
\end{tabular}
\end{table}
% ======================================================================
\section{RFP Queueing}
\label{sec:rfp}
% ======================================================================
\subsection{Request for Proposals}
The Research Council can issue Requests for Proposals (RFPs) for targeted research priorities. RFPs specify:
\begin{itemize}
\item Research question or conservation challenge
\item Budget range and milestone expectations
\item Required qualifications and expertise
\item Evaluation criteria and weights
\item Deadline for submission
\end{itemize}
\subsection{RFP Queue Contract}
\begin{lstlisting}[language=Solidity,caption=RFP queue contract]
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract RFPQueue {
struct RFP {
bytes32 id;
bytes32 contentHash; // IPFS CID
uint256 budgetMin;
uint256 budgetMax;
uint256 deadline;
bool active;
uint256 submissionCount;
}
mapping(bytes32 => RFP) public rfps;
mapping(bytes32 => bytes32[]) public submissions;
event RFPCreated(
bytes32 indexed rfpId,
uint256 budgetMax,
uint256 deadline
);
event RFPSubmission(
bytes32 indexed rfpId,
uint256 indexed grantId
);
function createRFP(
bytes32 contentHash,
uint256 budgetMin,
uint256 budgetMax,
uint256 deadline
) external onlyResearchCouncil
returns (bytes32)
{
bytes32 rfpId = keccak256(
abi.encode(
contentHash, budgetMin,
budgetMax, deadline
)
);
rfps[rfpId] = RFP({
id: rfpId,
contentHash: contentHash,
budgetMin: budgetMin,
budgetMax: budgetMax,
deadline: deadline,
active: true,
submissionCount: 0
});
emit RFPCreated(rfpId, budgetMax, deadline);
return rfpId;
}
function submitToRFP(
bytes32 rfpId,
bytes32 grantProposalHash
) external {
RFP storage rfp = rfps[rfpId];
require(rfp.active, "RFP inactive");
require(
block.timestamp <= rfp.deadline,
"RFP deadline passed"
);
submissions[rfpId].push(grantProposalHash);
rfp.submissionCount++;
emit RFPSubmission(
rfpId, uint256(grantProposalHash)
);
}
}
\end{lstlisting}
RFP responses enter the standard grant lifecycle (screening, review, voting, escrow) but receive priority scheduling and dedicated matching funds.
% ======================================================================
\section{Peer Review Integration}
\label{sec:review}
% ======================================================================
Grant proposals of Standard and Major type undergo peer review before the voting phase. Reviews follow the on-chain peer review protocol (companion paper on Research DAO Governance):
\begin{enumerate}
\item \textbf{Assignment}: 3--5 domain experts assigned by the relevant review council.
\item \textbf{Scoring}: Reviewers score on impact (30\%), feasibility (25\%), team (20\%), budget (15\%), and innovation (10\%).
\item \textbf{Threshold}: Mean score $\geq$ 6.0 / 10 required to advance to voting.
\item \textbf{Reviewer compensation}: 500 ZOO per review completed, funded from the grant administration budget.
\item \textbf{Conflict of interest}: Reviewers must disclose conflicts; co-authorship within 3 years triggers automatic recusal.
\end{enumerate}
Review scores are published alongside the grant proposal during the voting phase, enabling informed quadratic voting.
% ======================================================================
\section{Empirical Results}
\label{sec:results}
% ======================================================================
\subsection{Program Statistics}
\begin{table}[h]
\centering
\caption{Grants program operational statistics (18 months).}
\label{tab:stats}
\begin{tabular}{lc}
\toprule
\textbf{Metric} & \textbf{Value} \\
\midrule
Total proposals received & 287 \\
Proposals funded & 143 (49.8\%) \\
Countries represented & 34 \\
Total funding distributed & 4.7M ZOO \\
Mean grant size & 32{,}900 ZOO \\
Mean time to first disbursement & 24 days \\
Milestone completion rate & 87\% \\
Grants from Global South & 38\% \\
Administrative overhead & 4.8\% \\
\bottomrule
\end{tabular}
\end{table}
\subsection{Retroactive Funding Impact}
Three retroactive rounds funded 47 public goods:
\begin{itemize}
\item 82\% of funded tools saw increased adoption post-award.
\item 67\% of funded datasets received new citations within 3 months.
\item Retroactive funding recipients were 2.4x more likely to contribute subsequent public goods to Zoo Network.
\end{itemize}
\subsection{Quadratic Funding Analysis}
\begin{table}[h]
\centering
\caption{Quadratic funding matching statistics.}
\label{tab:qf}
\begin{tabular}{lc}
\toprule
\textbf{Metric} & \textbf{Value} \\
\midrule
Matching pool per round & 150{,}000 ZOO \\
Mean matching multiplier & 3.4x \\
Median contributors per grant & 23 \\
Sybil flags per round & 7 (all resolved) \\
Gini coefficient of matching & 0.31 \\
\bottomrule
\end{tabular}
\end{table}
% ======================================================================
\section{Security Considerations}
\label{sec:security}
% ======================================================================
\paragraph{Sybil grants.} Deposit requirement (1{,}000 ZOO) and council screening prevent spam proposals from consuming review bandwidth.
\paragraph{Reviewer collusion.} Reviews are scored independently; inter-reviewer discussion occurs only after scoring. Conflicts of interest are checked against an on-chain co-authorship graph.
\paragraph{Milestone fraud.} Evidence hashes are stored on-chain and evidence content on IPFS. The community can audit milestone evidence and flag suspicious disbursements. Fraudulent evidence results in grant revocation and reputation slashing.
\paragraph{Matching manipulation.} Pairwise bounded QF, ZooRep gating, and contribution caps prevent matching formula gaming.
\paragraph{Treasury drain.} Per-epoch spending limits and the 5\% emergency cap prevent catastrophic fund depletion.
% ======================================================================
\section{Conclusion}
\label{sec:conclusion}
% ======================================================================
The Zoo Community Grants Program demonstrates that on-chain grant mechanisms can deliver faster, more transparent, and more globally accessible conservation funding than traditional channels. Milestone-based disbursement ensures accountability without bureaucratic overhead. Quadratic funding amplifies grassroots community support. Retroactive funding rewards demonstrated impact rather than proposal-writing skill. The 24-day application-to-first-disbursement timeline, 87\% completion rate, and 38\% Global South representation show that the model works in practice for conservation research.
% ======================================================================
% References
% ======================================================================
\begin{thebibliography}{28}
\bibitem[Alberts et~al.(2014)]{alberts2014rescuing}
Alberts, B., Kirschner, M.W., Tilghman, S., and Varmus, H.
\newblock Rescuing US biomedical research from its systemic flaws.
\newblock \emph{PNAS}, 111(16):5773--5777, 2014.
\bibitem[Azoulay et~al.(2019)]{azoulay2019funding}
Azoulay, P., Graff~Zivin, J.S., Li, D., and Sampat, B.N.
\newblock Public R\&D investments and private-sector patenting.
\newblock \emph{NBER Working Paper}, 2019.
\bibitem[Buterin et~al.(2019)]{buterin2019flexible}
Buterin, V., Hitzig, Z., and Weyl, E.G.
\newblock A flexible design for funding public goods.
\newblock \emph{Management Science}, 65(11):5171--5187, 2019.
\bibitem[Compound(2020)]{compound2020governance}
Compound.
\newblock Compound Governance.
\newblock \url{https://compound.finance/governance}, 2020.
\bibitem[Franzoni \& Sauermann(2014)]{franzoni2014crowd}
Franzoni, C. and Sauermann, H.
\newblock Crowd science: Organization of research in open collaborative projects.
\newblock \emph{Research Policy}, 43(1):1--20, 2014.
\bibitem[Gitcoin(2023)]{gitcoin2023}
Gitcoin.
\newblock Gitcoin Grants: Quadratic funding for public goods.
\newblock \url{https://gitcoin.co/grants}, 2023.
\bibitem[GEF(2022)]{gef2022}
Global Environment Facility.
\newblock Annual report on project performance.
\newblock Technical report, 2022.
\bibitem[Hamburg(2019)]{hamburg2019desci}
Hamburg, S.
\newblock Decentralized science: Toward a new model.
\newblock \emph{Science}, 365(6450):220--221, 2019.
\bibitem[Heller \& Eisenberg(1998)]{heller1998can}
Heller, M.A. and Eisenberg, R.S.
\newblock Can patents deter innovation?
\newblock \emph{Science}, 280(5364):698--701, 1998.
\bibitem[Ioannidis(2005)]{ioannidis2005most}
Ioannidis, J.P.A.
\newblock Why most published research findings are false.
\newblock \emph{PLOS Medicine}, 2(8):e124, 2005.
\bibitem[Lalley \& Weyl(2018)]{lalley2018quadratic}
Lalley, S.P. and Weyl, E.G.
\newblock Quadratic voting: How mechanism design can radicalize democracy.
\newblock \emph{AEA Papers and Proceedings}, 108:33--37, 2018.
\bibitem[Molecule(2022)]{molecule2022}
Molecule.
\newblock IP-NFTs: Intellectual property NFTs for biotech research.
\newblock Technical report, 2022.
\bibitem[Murray et~al.(2016)]{murray2016grand}
Murray, F., Stern, S., Campbell, G., and MacCormack, A.
\newblock Grand innovation prize: Incentivizing solutions.
\newblock \emph{Science}, 352(6282):151--152, 2016.
\bibitem[Optimism(2023)]{optimism2023retropgf}
Optimism Collective.
\newblock Retroactive Public Goods Funding Round 3.
\newblock \url{https://optimism.io/retropgf}, 2023.
\bibitem[Ostrom(1990)]{ostrom1990}
Ostrom, E.
\newblock \emph{Governing the Commons}.
\newblock Cambridge University Press, 1990.
\bibitem[Posner \& Weyl(2018)]{posner2018radical}
Posner, E.A. and Weyl, E.G.
\newblock \emph{Radical Markets}.
\newblock Princeton University Press, 2018.
\bibitem[Protocol~Labs(2023)]{protocollabs2023}
Protocol Labs.
\newblock Open grants and RFP program.
\newblock \url{https://grants.protocol.ai}, 2023.
\bibitem[Stephan(2012)]{stephan2012economics}
Stephan, P.
\newblock \emph{How Economics Shapes Science}.
\newblock Harvard University Press, 2012.
\bibitem[UNEP(2021)]{unep2021financing}
United Nations Environment Programme.
\newblock State of Finance for Nature 2021.
\newblock UNEP, 2021.
\bibitem[UNESCO(2021)]{unesco2021science}
UNESCO.
\newblock UNESCO Science Report 2021.
\newblock UNESCO Publishing, 2021.
\bibitem[VitaDAO(2022)]{vitadao2022}
VitaDAO.
\newblock VitaDAO: Collectively funding longevity research.
\newblock \url{https://vitadao.com}, 2022.
\bibitem[World Bank(2019)]{worldbank2019rbf}
World Bank.
\newblock Results-Based Financing for Health.
\newblock World Bank Group, 2019.
\bibitem[Weyl et~al.(2022)]{weyl2022decentralized}
Weyl, E.G., Ohlhaver, P., and Buterin, V.
\newblock Decentralized society: Finding web3's soul.
\newblock \emph{SSRN}, 2022.
\bibitem[Zoo Labs Foundation(2024)]{zip0000}
Zoo Labs Foundation.
\newblock ZIP-0000: Zoo Ecosystem Architecture \& Framework.
\newblock \url{https://zips.zoo.ngo/zip-0000}, 2024.
\bibitem[Zoo Labs Foundation(2025a)]{zip0017}
Zoo Labs Foundation.
\newblock ZIP-0017: DAO Governance Framework.
\newblock \url{https://zips.zoo.ngo/zip-0017}, 2025.
\bibitem[Zoo Labs Foundation(2025b)]{zip0020}
Zoo Labs Foundation.
\newblock ZIP-0020: Impact Metric Oracle.
\newblock \url{https://zips.zoo.ngo/zip-0020}, 2025.
\bibitem[Zoo Labs Foundation(2025c)]{zip0023}
Zoo Labs Foundation.
\newblock ZIP-0023: Community Grant Program.
\newblock \url{https://zips.zoo.ngo/zip-0023}, 2025.
\bibitem[Zoo Labs Foundation(2025d)]{zip0026}
Zoo Labs Foundation.
\newblock ZIP-0026: Ecosystem Reputation System.
\newblock \url{https://zips.zoo.ngo/zip-0026}, 2025.
\end{thebibliography}
\end{document}