Sei sulla pagina 1di 4

Funding Community Projects with Smart

Contracts on Blockchain

Praphul Chandra, Amit Ranjan, Jaywardhan Sawale, Lakshmi Rajsekhar,


Gaurang Singh, and Hrishi Wadki
1
www.koinearth.com
2
www.insofe.edu.in

Abstract. Blockchain-based smart contracts are contracts that can be


partially or fully executed or enforced without human interaction. Since
smart contracts are fundamentally conditional transfers of values, eco-
nomic mechanisms designed in the game theory literature can be im-
plemented as smart contracts. In this paper, we demonstrate how game
theoretic mechanisms may be implemented as self-executing smart con-
tracts on a Blockchain and discuss the key challenges that we believe need
to be addressed going forward. This work is based on our experience in
implementing recently proposed civic crowdfunding mechanisms.

Keywords: Blockchain, Smart Contract, Game Theory, Crowdfunding

1 Introduction
Crowdfunding is the practice of funding a project or venture by raising monetary
contributions from a large number of people. Civic crowdfunding is a form of
crowdfunding where the project being funded is a public or community project.
Civic crowdfunding thus relies on private contributions from individuals to create
public (non-excludable) goods. Thus, civic crowdfunding can be considered an
institution for taxation-substitute: instead of a centralized institution collecting
contributions towards public goods under the threat of penalty, civic crowd-
funding instead asks individuals for voluntary contributions towards projects of
their preference. With this approach, contribution of funds towards a project is
a much stronger signal of preference rather than the indirect route of taxation
combined with preference expressed via an elected representative. In a rapidly
urbanizing world which is increasing stress on the urban infrastructure, civic
crowdfunding can play an important role in engaging citizens in development.

2 Problem Statement and Our Contributions


One fundamental problem with civic crowdfunding is the free-riding problem:
since contributions to the public good are voluntary and since the public good
is non-excludable, individuals have an incentive not to contribute and still enjoy
the benefits of the public good if and when it is created by the contributions of
Fig. 1. The Solution Architecture

others. From a game theoretic perspective, the equilibrium of this game results
in no-agent contributing towards the public good. Recent work in game theory
proposes incentive mechanisms which may be used to overcome the free riding
problem [4, 6]. Our work builds on these proposed mechanisms and makes three
key contributions:
1. We demonstrate how game theoretic mechanisms may be implemented as
self-executing smart contracts on a Blockchain
2. We propose a solution framework which can be generalized to implement any
incentive mechanism to be used with a crypto-currency like Ether (ETH)
3. We discuss the key challenges that we believe need to be addressed in real-
izing theoretical incentive mechanisms as smart contracts on a Blockchain.

3 Our Solution
A blockchain is a decentralized and distributed digital ledger that is used to
record transactions across many computers so that records cannot be altered
retroactively. In the most popular implementations like Bitcoin [1] and Ethereum
[2], the transactions are carried out using a cryptocurrency - a cryptographically
secured digital asset designed to work as a medium of exchange. Blockchain-
based smart contracts are contracts that can be partially or fully executed
or enforced without human interaction. Such contracts can be created using a
Turing-complete programming language like Solidity [3]. Since smart contracts
are fundamentally conditional transfers of values, economic mechanisms designed
in the game theory literature can be implemented as smart contracts.
Figure 1 shows the control flow which starts with a factory contract deployed
on the Ethereum Blockchain that can spawn new contracts.
1. A dapp realized as a web-page can be accessed on the client side from within a
web-browser (e.g. Google Chrome) by accessing a webserver. A requester who
is aiming to raise funds for a public project posts project on a public website.
This involves specifying the details of the project e.g. a text description,
target amount to be raised, the deadline by which the amount needs to be
raised etc.
2. The dapp invokes the factory contract to create a civic crowdfunding smart
contract. Once the contract is mined by the Blockchain, the project page
activates the project to receive funds.
3. Anyone can access the list of public projects that are currently raising funds
by accessing the public website: See Figure 2
4. If an individual wants to contribute to a public project, it uses the dapp
which is realized as a web-page. Current status about the project (funds
raised, refund bonus etc.) are available as non-payable functions of the cor-
responding smart contract. Contribute transaction is realized using a payable
function of corresponding the smart contract
5. Once the project deadline is reached, one of the following flows happen If
the total funds raised have reached or exceeded the target amount, 25% of
the collected funds are available for the requester to withdraw. If the total
funds raised have not reached the target amount, the contribution of every
individual who contributed is available for them to withdraw. An additional
refund bonus is also credited to the contributors in proportion to how much
and how early they contributed.
6. Post the deadline and assuming that the target amount of funding is reached,
the disbursement of the remaining 75% of the collected funds is conditional
on the progress made towards the project and is controlled by an oracle . In
this, the smart contract acts as an escrow and validates the project progress
before releasing funds.

4 Lessons Learned and Future Work


The execution environment for Blockchain based Smart Contracts is the peer-to-
peer network of thousands of geographically distributed nodes which maintain a
copy of the blockchain (distributed ledger). We encountered four key challenges
in implementing incentive mechanisms in this execution environment:
1. Most work in mechanism design implicitly assumes that the communication
channel between agents and the mechanism is synchronous and sequential.
Due to the distributed nature of the execution environment (p2p network),
the interactions between the agents and the smart contract (mechanism)
cannot be guaranteed to be recorded in the ledger (arrive at the mechanism)
in the order in which they were initiated.
2. Mechanisms which induce sequential games among agents, assume that in-
teractions with the mechanism are synchronous so that a change in the
state can be observed as soon as the agent reveals its action (strategy). In a
blockchain-based execution environment, this assumption is invalidated.
Fig. 2. The Dapp UI .

3. Since each agent in the blockchain is identified only by its public key, mech-
anisms deployed as smart contracts are vulnerable to Sybil attacks [5]
4. Since the Solidity programming language and the Ethereum execution en-
vironment are still in infancy, several work-arounds are needed to deal with
floating points, buffer over/under flows, reentrant code etc.

We believe the lessons we have learned from our experience can (a) help other
researchers seeking to implement mechanisms as smart contracts, (b) encourage
researchers to implement their mechanisms as blockchains and share them and
(c) allow the creation of implemented and tested mechanisms as a library.

References
1. Nakamoto, S. (2008). Bitcoin: A peer-to-peer electronic cash system. Available at
https://bitcoin.org/bitcoin.pdf. Last retrieved September 26, 2017.
2. Buterin, V. (2014). A next-generation smart contract and decentralized application
platform. Available at https://github.com/ethereum/wiki/wiki/White-Paper. Last
retrieved September 26, 2017.
3. The Solidity Contract-Oriented Programming Language, Available at
https://github.com/ethereum/solidity. Last retrieved September 26, 2017.
4. Chandra, P., Gujar, S., and Narahari, Y. (2016). Crowdfunding Public Projects with
Provision Point: A Prediction Market Approach. In Proceedings of the European
Conference on Artificial Intelligence pp. 778-786.
5. Douceur, J. R. (2002). The sybil attack. In International Workshop on Peer-to-Peer
Systems pp. 251-260. Springer, Berlin, Heidelberg.
6. Zubrickas, Robertas (2014). The provision point mechanism with refund bonuses.
In Journal of Public Economics, Volume 120, pp. 231-234. Elsevier.

Potrebbero piacerti anche