Inspiration

Two of our teammates have had experience with blockchain, and the other two of us were interested in learning more about blockchain. Thus, we decided to take this opportunity to explore blockchain by working on a project.

As a multinational team, ranging from America to China to the United Arab Emirates, something we ended up discussing was our countries, their governments, and how they compared and contrasted. Discussing the government, coupled with our desire to experiment with blockchain, led us to discuss finance and how unfortunately there seems to be pervasive fraud and inefficient use of funds. The lack of trust between tax payers and government officials has always been a very profound issue that leads to ineffectiveness and insecurity of both economic and political world.

Our solution to this issue is BudgetChain, a distributed web application that aims to help governments and other organizations smoothly and reliably uphold budgets based on public chain of Ethereum. In a democracy, it is fair that funds are distributed as transparently as possible so as to uphold the trust of the people. Similarly, we think it is fair that public companies' shareholders should be able to see that their resources are being used properly.

In both of these scenarios, BudgetChain would enable the general public to ensure that their resources are being used efficiently, while maintaining the necessary security and privacy precautions by utilizing blockchain.

What it does

First, BudgetChain simulates the tax paying process by issuing 'campaign'. On the lower level, every time a campaign is created, a copy of our smart contract code will be deployed using the address of the campaign's issuer's public address which will be visible to everyone. It enables us to support different countries and types of organizations' budget management. Second, BudgetChain implements budget management algorithm, which limits the money that can be transferred from one address to another predetermined account within a reasonable range. How? Through a proof of work (voting system) and requests system (predetermined budget upper bound) that is controlled purely by smart contract, we can achieve the automatic money transfer or immediately cancel the requests if some potential fraud is being believed to happen.

Smart contracts are used to allow safe and reliable transactions without any third-party entity. For example, one of the other features of BudgetChain is a secure payment gateway through which the people can donate directly to the government in case of any natural calamities without involving any middlemen. This enables people to become proactively involved in their community. This application strives to make an organization’s use of money much more transparent, fair, and efficient.

How we built it

The user interface of BudgetChain was developed using react-native and HTML/CSS. We used the Ethereum blockchain platform in conjunction with Solidity to write smart contracts and power our back-end. The front-end and back-end were linked together using web3, a Javascript API. For more details, please refer to our GitHub repository (linked below).

Challenges we faced

Coming up with an idea was pretty difficult! It was also challenging deciding which framework to use. For the front-end, we switched from React Native, to Vue.js, and finally back to React Native. This indecision used up time and energy.

Likewise, for the back-end blockchain portion, we spent a considerable amount of time debating whether to use IBM Hyperledger or Google Cloud BlockApps, before finally going with Ethereum (in conjunction with Solidify).

Accomplishments that we're proud of

We are happy to say that we all know a little more about blockchain than we did prior to this hackathon. All-in-all, it was a great learning experience!

We are also proud to be able to have a functioning demo and that we stuck with the task we initially chose to do this weekend. It was a bit of a struggle, and we even seriously considered switching to a simpler project, but in the end, we're glad we stuck with this idea.

What we learned

In addition to learning about new technologies like blockchain, we also learned time management! It was really difficult to stay focused on our project with so many interesting and educational workshops and activities going on, so we had to prioritize when to work on our project and when to attend sessions. We also learned how to work with people from different backgrounds as one cohesive team.

What's next for BudgetChain

We would like to create an authentication system so that specific members of the general public (such as citizens of a certain government or shareholders for a particular company) can voice their opinions or otherwise influence the way the budget is proportioned. This way, BudgetChain would become truly democratic.

Share this project:

Updates