In 1900, David Hilbert created a list of 23 mathematical problems he deemed the most important to mathematical advancement. After more than 100 years 11 of those problems remain unsolved. High quality mathematical research dating back to the 1600s is still restricted in a way that allows only the wealthy and university researchers access. Mathematicians rely on computation data to assist in solving mathematical proofs. From the data mathematicians run queries and gain insight into the underlying principles that govern mathematics.
Mathematicians have long suffered from the lack of access to and verifiability of computational mathematics data. Access to high quality data is often tightly controlled or a kludgy experience. This data can help mathematicians arrive at mathematical proofs which are the building blocks of mathematics.
What it does
Arithmetica is a reusable platform to democratize the computation and data availability of computational math problems. Mathematicians are able to submit problems to be computed in a decentralized way by voluntary participants. The resulting data is not access restricted; it is shared freely with the public.
Similar distributed computing projects have existed such as Folding at Home, Search for Extraterrestrial Life (SETI), and PrimeCoin. Our platform is different by providing an aspect of reusability. If a mathematician has a problem they deem worthy of computation they can submit the problem for computation to the blockchain. Then altruistic volunteers join in the computation in the hopes of advancing the solution to the problem. No single individual owns the data. Arithmetica has created a shared chalkboard for participants to contribute to an open math problem. The data is published without restriction for any person to access from privileged individuals down to the most impoverished.
Arithmetica accomplishes that goal using Solidity smart contracts to track the validity of the code used to evaluate and assert the computation. The volunteers connect together in a peer to peer network facilitated by the IPFS Pubsub protocol. The volunteers are seamlessly connected to the network without the need to download any tools. The volunteer goes to the Arithmetica website using a Brave Browser with Metamask enabled and selects a problem they want to help solve. The volunteer's idle processing power will immediately be put to work helping an altruistic cause.
How we built it
We split the work among our three team members to match each other's talents. Steven Schroeder worked on the frontend, web3 interactions, and played dev ops for the team. Jonny Rhea implemented the IPFS Pubsub system and connected the Pubsub system to the frontend. Joseph Delong wrote the Solidity contracts and did frontend layouts.
Challenges we ran into
Unpatched versions of blockchain libraries still being developed. We were able to work around those problems and still produce an amazing platform.
Accomplishments that we're proud of
Arithmetica is already deployed to Ropsten and accessible immediately. The development team has also implemented an example problem known as the Collatz Conjecture. To contribute to this problem go to http://arithmetica.network using a Brave Browser or another MetaMask enabled browser.
What we learned
Jonny Rhea learned a human being can bleed a quart of blood without passing out. We learned Joseph Delong has a beautiful singing voice. We also learned Steven Schroeder can ignore a friend who is obnoxiously singing all night.
We learned that arm chair blockchain developers will never change the world. The Ethereum community is a do-ocracy where people can make a meaningful difference volunteering their labor for the greater good.
What's next for Arithmetica
Following the completion of the ETH Denver Hackathon the Arithmetica team plans to refactor portions of the code to increase maintainability. We are going to approach mathematics faculty at universities to assist in long term maintenance of the project.