We are proud to have been one of seven sponsors of the 2020 Unitize Hackathon, offering a total of $5k in LINK bounties to blockchain developers integrating Chainlink oracles in novel smart contract application designs. We received numerous Chainlink submissions that showcased a wide range of creativity from a meta transaction protocol for enterprises and smart contract two-factor authentication to a time locked savings account and blockchain-based Tetris game.
In the end, we gave away twelve awards, which included ten projects showcasing how to use Chainlink Price Reference Data and two primary winners who demonstrated the unique potential of Chainlink to power universally connected smart contracts with strong application to the real-world.
Overall Best Award: LINK Gas Station
The top honor of $1500 USD in LINK goes to LINK Gas Station, a solo project by Harry Papacharissiou. One of the barriers to enterprises adopting smart contracts is the complexities and uncertain regulatory climate around acquiring, holding, and securing the cryptocurrency/tokens required to interact with them, such as to pay gas. LINK Gas Station bypasses these restrictions by abstracting away the need for enterprises to ever hold cryptocurrencies, allowing them to interact with next generation decentralized applications even before regulatory frameworks catch up.
LINK Gas Station takes the concept of Meta-Transactions -- where blockchain transaction fees are abstracted away and paid by a relayer -- and applies it to Chainlink. It uses third party relayers to manage ownership of the utility tokens LINK and ETH, both of which are needed to pay for Ethereum computation and obtain Chainlink oracle data services. By doing so, the liability and complexity of cryptocurrency ownership shifts away from the enterprise and onto the chosen relayer, resulting in a process where an enterprise can simply pay an invoice in fiat and gain access to the entire decentralized ecosystem. Importantly, enterprises still have full control over the cryptographic private key required to sign off on transactions.
By leveraging LINK’s native ERC677 transferAndCall() and onTokenTransfer() capabilities, relayers can pay for and request external data on an enterprise’s behalf within a single transaction. Simultaneously, the relayer also polls Chainlink Price Reference Feeds to generate an on-chain commitment of the fiat value of the fees (both ETH and LINK) used within the transaction. The end result is a system where an enterprise interacting with a Chainlinked smart contract no longer needs to hold either LINK or ETH, as a relayer pays on their behalf and creates an irrefutable on-chain proof of the cost of these requests when it comes time to generate a fiat invoice.
Harry talked about the inspiration behind the design stating that “The Enterprise IT paradigm has shifted away from owning hardware, servers, and software, to paying service providers and being charged as an operational expense based on a license or usage. Looking at smart contracts (Chainlinked Smart Contracts specifically), I thought from an enterprise IT perspective that there's no reason why they couldn't be treated the same way.”
He also went on to note the ease of integrating Chainlink, saying “Connecting to commonly used off-chain data such as price or weather data is as quick and simple as plugging in a few lines of code, while the external adapter capabilities of the Chainlink Node make it robust enough to build almost any off-chain integration.”
Judges’s Pick Award: Smart Contract Two Factor Auth
The judge’s pick award goes to team Digital Bridge, a three-person team consisting of Javier Salomón, Mateo Hepp and Alejandro Pronotti. Two-factor authentication (2FA) is an extra layer of security where in addition to a password, the user must confirm a code from/click a button on a trusted device only they have access to.
Given the utmost importance of security to smart contracts, Digital Bridge applied 2FA for use within smart contracts by both developing a Chainlink External Adapter to read an off-chain device and setting up a Chainlink node responsible for relaying the secret codes needed to confirm 2FA. In order to authenticate the user holding the 2FA private key, a user submits a transaction on-chain containing their ID and the temporary one-time password generated by their authenticator app. A Chainlink node scanning the blockchain then picks up on this transaction and queries an off-chain server to validate the 2FA code’s authenticity. Once the Chainlink node receives a response, it delivers this boolean value on-chain which then determines if the smart contract grants authorization to the original user.
Due to time constraints, the team from Digital Bridge plans to expand upon this functionality by using a SHA256 hash of the PIN and creating an external adapter to compare them. This provides enhanced security and allows for this methodology to be used in-production without man-in-the-middle attacks. By enabling smart contracts to get access to 2FA confirmations, a defense in depth strategy can be created to further protect user funds within a decentralized application.
Digital Bridge made clear their intention of building it to interface with to the real-world, saying “With the importance of a second layer of security in mind, we developed a smart contract 2FA compatible with Google Authenticator, Auth0, Microsoft Authenticator, Authy, Aegis Authenticator, etc.” When asked about their experience with Chainlink, they commented on the developer support they received, stating “We like to remark how well documented the Chainlink project is and the good predisposition of the community to solve questions.”
In addition to the two primary prizes, we awarded $250 USD in LINK to each of these ten participants who specifically used Chainlink Price Reference Data:
- Tetrion - A blockchain-based game of Tetris where users can join rooms by staking enough ETH that us ultimately rewarded to the person who lasts the longest. Chainlink Price Reference Data determines if the person has enough ETH to join a room while Chainlink VRF ensures unique generation of room IDs to prevent disrupting existing rooms.
- Cryptophecy - A binary options game where users try to predict BTC’s price change one hour later, which is settled using Chainlink price feeds.
- Bridgify - A dApp that acts as a bridge between DeFi & CeFi, where users can swap their DAI for EUR, GBP or JPY based on real time prices from Chainlink.
- Chainlink Reference - A dApp for swapping Ethereum-based stablecoins and ETH based on reference prices from Chainlink
- Piggy - A mutual worldwide savings account that can be timelocked, with asset balances being displayed based on Chainlink price feeds
- Lazy Trader Bot - A bot that automates DAI/ETH swaps using Chainlink’s ETH/USD price reference feed
- Crypto-Bet - A prediction market for users to guess tomorrow’s highest gaining cryptocurrency, which is settled by Chainlink price feeds
- King of Gambling - A binary options game where users try to predict the ETH price change three hours later, which is settled using Chainlink price feeds.
- Crypto Cards - A blockchain-based blackjack game that uses Chainlink price feeds to allow players to cash out their winnings into DAI
- LINK Gas Station - Since it also used Chainlink Price Reference Data, it qualified for this additional reward
We thank all the 2020 Unitize Hackathon participants for building with Chainlink and look forward to continued participation in future hackathons to further our mission of making universally connected smart contracts the dominant form of digital agreement throughout the world.
Start Building with Chainlink Today
Want to build something yourself or learn more about Chainlink? Be sure to head over to the Chainlink documentation to build an externally connected smart contract today and join the technical discussion in Discord. If you want to schedule a call to discuss an integration more in-depth, reach out here.
We also have an ongoing Chainlink Community Grant Program and Gitcoin Bounty Program for those building key infrastructure for the Chainlink ecosystem and/or interested in contributing to the open-source development of Chainlink.