Content uploaded by Samer Hassan
Author content
All content in this area was uploaded by Samer Hassan on May 12, 2021
Content may be subject to copyright.
Betfunding: A Distributed Bounty-based
Crowdfunding Platform over Ethereum
Viktor Jacynycz1, Adrian Calvo1, Samer Hassan2, and
Antonio A. S´anchez-Ruiz1
1Universidad Complutense de Madrid
vsjacynycz@ucm.es, adrianclv@gmail.com, antsanch@fdi.ucm.es
2Universidad Complutense de Madrid and
Berkman Center for Internet and Society, Harvard University
samer@fdi.ucm.es
Abstract. Blockchain, the technology behind Bitcoin, is a permission-
less distributed database which allows distributed storage and compu-
tation over a large network of nodes. This technology has been applied
recently to many other fields besides e-currencies (Bitcoin 2.0 projects).
In this paper we present Betfunding: a blockchain-based decentralized
crowdfunding platform. On the contrary of regular crowdfunding plat-
forms, our system does not require a central and reliable organization. In
Betfutding users bet whether the project will or will not be implemented
in a given time frame, increasing the bounty and incentive for potential
developers to carry it out.
Keywords: Bitcoin, Blockchain, Bounty, Crowdfunding, Cryptocurren-
cies, Distributed Software, Ethereum, P2P, Smart contract
1 Introduction
Crowdfunding is a relatively novel and popular form of collective funding in
which the costs related to the development of new projects is supported by
small donations or investments made by groups of people interested in those
projects. These investors are usually rewarded for their early support with free
products and different types of recognition when the project is finished.
Nowadays, crowdfunding is seen as a serious alternative to standard financing
using banks in different areas like the development of new gadgets, computer
games or even to support political campaigns. This boom was in part brought
about by the situation of deepening economic crisis, which limited the issuance of
loans by banks to new projects, and the mass adoption of the Internet and social
networks, facilitating the spread of ideas and alternative financing [5] search.
In the usual approach to crowdfunding, a person or entity ready to carry
out a project (the developer) looks for economical support from small donors
or investors (the funders). What we propose in this work is just the opposite, a
platform in which the users interested in a project look for developers to carry
it out. In order to incentive the developers to work on the project we propose a
bet system in which the users bet against the project they want to be done and
the developers that are going to work in the project bet in favor of it.
Our main contribution is the development of Betfunding, a crowdfunding
platform developed on top of Ethereum. Ethereum is a very novel technology
that allows the creation of distributed applications that run in an arbitrary large
and trust-less network of nodes. Ethereum is based on Blockchain, the technology
behind Bitcoin, and facilitates the creation of Bitcoin 2.0 applications, solving
most of the technical issues inherent to decentralized platforms, like the one we
introduce in this work. The use of this technology provides significant advantages
for our application, as it does not require a central organization to manage the
projects and bets. In particular, users don’t need to trust in a third party with
their funds, and the network is resistant to node failures and attacks.
2 Literature Review: Decentralizing Crowdfunding
2.1 Centralization and its Disruption: the Blockchain
Although there is a large diversity of online platforms, most of them entail cen-
tralized control over user data, server infrastructure, and social network inter-
actions. This raises multiple issues like: (1) data is stored in centralized servers
(e.g. Google, Facebook, Github) with serious implications for user’s privacy; (2)
the value collectively created by the community is appropriated and capitalized
by the infrastructure owner; (3) users are enclosed into walled gardens and can-
not interact beyond the platforms limits (propietary vs. free/libre open source
software); (4) users are subject to the laws of the country in which the infras-
tructure operator is physically based (usually USA). These issues have raised
concerns from multiple actors, including the European Commission [4, 3, 9], the
World Wide Web Consortium W3C [14] or the Free Software Foundation [11, 7].
As a response, different platform architectures emerged like P2P networks.
Although this approach was already popular for file-sharing (e.g. eMule, BitTor-
rent) it was the advent of Bitcoin [8] what further pushed it forward. The under-
lying technology of Bitcoin, the decentralized cryptographic ledger or blockchain,
provided a paradigm shift for the implementation of distributed systems.
2.2 Bitcoin 2.0 Projects
After Bitcoin’s success, a wide diversity of similar digital currencies (cryptocur-
rencies) appeared, e.g. Litecoin, Ripple or Faircoin3. Soon, blockchain-based ap-
plications different than currencies emerged, marking the emergence of the Bit-
coin 2.0 projects, i.e., blockchain-based non-currency applications4. Thus, e.g.
3Litecoin: http://litecoin.org, Ripple: https://ripple.com/, Faircoin: http://fair-
coin.org
4Bitmessage: https://bitmessage.org/, Namecoin: https://namecoin.inf, Storj:
http://storj.io, Twiter: http://twister.net.co
P2P messaging (Bitmessage), domain name management (Namecoin), Dropbox-
like cloud storage (Storj), Twitter-like microblogging (Twister). Today, major
players like IBM and Samsung are joining the trend[1].
One of the latest Bitcoin 2.0 projects, and probably the most popular in the
blockchain community, is Ethereum [2]: a infrastructure with its own program-
ming language for the development of distributed applications over a blockchain.
Although other alternatives exist5, such as Eris Thelonius or Counterparty,
Ethereum is currently the only running complete solution for Smart Contracts.
The Smart Contract protocol proposed by Nick Szabo [12] allows the possibil-
ity of self-executing contractual clauses, providing more security than traditional
contracts with fewer costs [13]. Ethereum’s smart contracts offer the possibility
of developing decentralized autonomous applications such as cryptocurrencies,
financing platforms, or social networks, to name a few.
2.3 Crowdfunding
Crowdfunding is a form of alternative finance, in which a project is funded by
raising monetary contributions from a large number of people. Typically, users
or clients assume the cost of the project creation before its implementation. If
the project is successful, users are commonly rewarded with perks (e.g. merchan-
dising, premium services, or an instance of the product developed) in exchange
of their donations. Crowdfunding popularity has grown exponentially since 2009,
with the advent of Kickstarter [6], facilitating the spread of ideas and alterna-
tive financing [5]. New forms of crowdfunding have been arising, going further
the common Kickstarter model6: Goteo for open projects which return to the
commons, Gratipay for weekly payments for software developers, or Patreon for
creators receiving payments when they produce a piece.
There have been a few experimental attempts to build decentralized crowd-
funding on the blockchain7. The now defunct Swarm attempted to provide
investment-based crowdfunding. Koinify, also defunct, aimed to focus on funding
blockchain projects. Lighthouse, in Beta stage, is a crowdfunding platform for
the Bitcoin cryptocurrency that allows the creation of crowdfunding campaigns
for free [10]. Lighthouse can be used in a decentralized way, although its use is
much simpler using a centralized server (something that could be avoided if it
used Ethereum instead of the Bitcoin blockchain).
3 Betfunding Platform
Betfunding is a distributed crowdfunding platform based on bets. There are 3
different actors involved in the platform:
5Thelonius: http://erisindustries.com, Counterparty: http://counterparty.io
6Goteo: http://goteo.org, Gratipay: https://gratipay.com, Patreon:
http://patreon.com
7Swarm: http://swarm.co, Koinify: http://koinify.com
–Funders: users that are interested in the development of a project but do
not have the knowledge or the resources to develop it. They can propose new
projects or contribute to the bounty of an existing project to make it more
attractive.
–Developers: users with the knowledge to develop or participate in the de-
velopment of some of the projects that have been proposed in the platform.
Their main motivation is to earn money in exchange of their work.
–Judges: they act as a trusted third party designed by the proposer of the
project and their mission is to evaluate if the implementation made by the
developers fulfills the project specifications. Human judges (see below) al-
ways receive a small reward from the project’s bounty, regardless the verdict.
Note that, in contrast to traditional crowdfunding platforms, in Betfuding
the promoter of the project is not the same team that will develop it. When a
funder proposes a new project, he has to provide a contract, i.e., an accurate
description of the specifications that will be used to validate the implementation
provided by the developers. This description depends on the project but it will
always include, among other parameters, the deadline for completion. The funder
will also designate a judge that will be in charge of the validation process.
The judge can be either a trusted third human party or a smart contract
stored in the blockchain. Note that when we talk about human judges we refer
to either individuals or even organization with its own decision mechanisms.
Human judges are more versatile since they can take into account parameters
from the specifications that are difficult to formalize. Smart contracts, on the
other hand, cannot be influenced in any way (the code is law) but the project
requirements usually have to be much simpler to check.
Each project has 2 different wallets associated in the blockchain: one for the
funders and another for the developers. The funders bet against the project they
want to be developed transferring money to the funders’ wallet. This wallet con-
tains the bounty for the developers if they complete the project and is validated
by the judge. The other wallet contains the bets in favor of the project com-
pletion, i.e., deposits made by the developers to show their commitment to the
project. Once the project is finished there may be two different scenarios:
–If the developers do not provide a valid implementation (according to the
judge) before the deadline, they will lose their deposits that will be trans-
ferred to the funders proportionally to their contributions to the bounty.
This way, funders are compensated for the lost time and they will have more
money to look for new developers.
–If the project is completed successfully, developers will get their deposits
back in addition to a proportional share of the bounty.
The whole process is illustrated in Figures 1 and 2. Let’s suppose that Alice
is a videogame designer with a fantastic idea about a new mobile game but she
does not have the technical knowledge required to implement it. Alice creates a
new project in Betfunding, attaches a detailed game design document (GDD)
Fig. 1: On the left, bets against the development of the project (funders). On
the right side, the contribution by the developers to the deposit.
Fig. 2: When the judge verifies the development of the project, the contract gives
the money to the developers.
and designates Peter, a renowned game developer, as the independent judge. She
also sends some money to the funders’ wallet. Then, some other users discover
Alice’s game proposal and think is very interesting so they bet that the project
would never be completed, becoming funders as well and increasing the bounty.
Bob loves programming and he is quite confident to complete Alice’s game
in time so he talks to some friends and all of them bet in favor of the project
and start working on it. Eve is a speculator. She is not interested in games
really, but she thinks that this project cannot be done on time so it is a good
opportunity to make some money. Eve bets that the game will not be completed.
Bob and his friends are even more motivated to finish the game now because
Eve has increased the bounty. They work really hard and complete the game,
Peter validates it against the GDD, and both the judge and the developers are
rewarded for their work.
4 Software Architecture
Betfunding has been implemented using the blockchain-based Ethereum plat-
form described earlier [2]. Thus, following Figure 3, we can observe two main
layers: a smart contract, and a standard web interface.
The logic of the application is embedded in the smart contract (betfund-
ing.sol in Figure 3), implemented using the Solidity programming language and
deployed over the Ethereum network. As such, any Ethereum user can run and
interact with this smart contract. The contract is fully autonomous in order to
minimize dependencies. This implies that, once it is deployed over the blockchain,
its creator (or anyone) cannot modify its behaviour or access the stored funds.
The contract is the responsible of storing the information of a project and
the records of the bets. The storage and distribution of the money is also done
by the contract without external intervention. The money is stored and trans-
ferred through the blockchain in the form of ether, the native cryptocurrency of
Fig. 3: Structure of the application on the Ethereum network. The application
is composed of the contract Betfunding.sol and the web interface Index.html.
Ethereum that works similar to Bitcoin. Thus, users must bet transferring the
desired ether amounts to the smart contract, and it will redistribute the ether
when the specified project expiration date/time is reached. The evaluation of the
success or failure depends on the described judge chosen by each project (and
thus Betfunding’s only external dependency).
Any project proposers (any Ethereum identity) can transact with the smart
contract to create a new project crowdfunding, specifying some simple param-
eters: name, project description link, expiration date/time and chosen judge.
The state of the smart contract will keep track of the bets and store the funds
transferred. Projects will remain active until the expiration date/time is reached,
when money will be redistributed and the project will be disabled.
In order to facilitate user interaction with the smart contract, a web inter-
face has been developed, using HTML5 and JavaScript (see Fig. 4). In order
to use it, web users must have an Ethereum node in their computer. The web
interface communicates (using JavaScript functions) with the user’s local node,
which stores the blockchain with a record of all contracts and transactions. Note
such Ethereum node is part of the distributed network of nodes that form the
Ethereum network. Therefore, it hosts a copy of the Ethereum blockchain, in-
cluding a copy of all smart contracts and their state, including Betfunding. The
synchronization of any local interaction with Betfunding over the network is per-
formed through the mining process (similarly to Bitcoin). Thus, the web interface
is not stored in a server but runs in the user’s computer. Moreover, anyone may
develop an alternative web interface and use it with the same smart contract.
5 Conclusions
Crowdfunding is currently provided by centralized web platforms with a business
model based on commissions, and where the project proposer is the person/entity
Fig. 4: A Betfunding sample project, shown in the web interface (left) and in the
blockchain (right).
ready to carry out the project. Using the blockchain-based Ethereum platform,
we have implemented a novel decentralized crowdfunding platform, Betfunding.
Betfunding is fully decentralized, and no third-party may tamper with its code,
appropriate its funds, or charge commissions to its users. Besides, the proposers
of a project are not necessarily the ones that will implement it, but the ones
willing to fund it. The more funders, the higher the bounty and incentive for
potential developers to carry out the project.
This application is currently in a functional Beta stage. It is free software,
released under a GPL license, and its code can be found in Github8, ready
to be deployed and tested. Betfunding encourages the bottom-up creation of
projects through a new and hopefully attractive manner. In particular, it can
be exceptionally useful to promote the creation of small projects which have a
large community of supporters, and which require a low-medium investment like
indie games or specialized apps for mobile devices.
Numerous improvements may be performed on Betfunding. The judge may
be certainly improved, for instance depending on trusted projects importing real-
world info into the blockchain. Another possibility would be to replace it by a
decentralized oracle implemented with SchellingCoin9, i.e. allowing users to vote
on the outcome, rewarding those that are close to the median, complemented
with a reputation system. Other improvements may involve the use of Ethereum
8https://github.com/EthereumUCM/Betfunding
9https://blog.ethereum.org/2014/03/28/schellingcoin-a-minimal-trust-universal-
data-feed/
functionality under development, such as using its storage protocol (Swarm)
for storing the project descriptions, or its communication protocol (Whisper)
for user coordination. Another improvement would be to use Bitcoin or other
cryptocurrencies and not just ether.
We strongly believe blockchain technology is not yet another hype but is here
to stay. It has the potential to disrupt a diversity of fields, while empowering
the users in a more decentralized Internet. An important way would be to have
a trusted way to coordinate efforts and accumulate funds, for projects that,
although clearly needed, traditional funding sources have not worked. Beyond
seeing Betfunding work, the real question would be: what yet-to-be conceived
projects will be proposed and, against all stakes, be funded?
Acknowledgments This work was supported by Spanish Ministry of Economy
and Competitiveness under grant TIN2014-55006-R and the Framework pro-
gramme FP7-ICT-2013-10 of the European Commission through project P2Pvalue
(grant no.: 610961). We especially thank Primavera De Filippi (CERSA/CNRS,
Berkman Center) for coauthoring the original idea that made this work possible.
References
1. Barker, C.: Is blockchain the key to the Internet of Things? IBM and Samsung
think it might just be (2015)
2. Buterin, V.: Ethereum: A next-generation smart contract and decentralized appli-
cation platform (2014)
3. Force, E.S.N.T.: Europen commission safer social networking principles for the eu.
Luxembourg: European Commission (2009)
4. Hogben, G.: Security issues and recommendations for online social networks.
ENISA position paper 1, 1–36 (2007)
5. James, T.G.: Far from the maddening crowd: Does the jobs act provide meaningful
redress to small investors for securities fraud in connection with crowdfunding
offerings. BCL Rev. 54, 1767 (2013)
6. Kuppuswamy, V., Bayus, B.L.: Crowdfunding creative ideas: The dynamics of
project backers in kickstarter. UNC Kenan-Flagler Research Paper (2013-15)
7. Moglen, E.: Freedom in the cloud: Software freedom, privacy and security for web
2.0 and cloud computing. In: ISOC Meeting, New York Branch. vol. 5 (2010)
8. Nakamoto, S.: Bitcoin: A peer-to-peer electronic cash system (2008)
9. Schubert, L., Jeffery, K.G., Neidecker-Lutz, B.: The Future of Cloud Computing:
Opportunities for European Cloud Computing Beyond 2010:–expert Group Report.
European Commission, Information Society and Media (2010)
10. Shubber, K.: The coin rush. New Scientist 225(3006), 35–39 (2015)
11. Stallman, R.: Who does that server really serve. Boston Review 35(2) (2010)
12. Szabo, N.: Formalizing and securing relationships on public networks. First Monday
2(9) (1997)
13. Szabo, N.: The idea of smart contracts. Nick Szabos Papers and Concise Tutorials
(1997)
14. Yeung, C.m.A., Liccardi, I., Lu, K., Seneviratne, O., Berners-Lee, T.: Decentral-
ization: The future of online social networking. In: W3C Workshop on the Future
of Social Networking Position Papers. vol. 2, pp. 2–7 (2009)