Hi, we are undergraduate students from IIIT Vadodara.

Inspiration

Cryptocurrencies are revolutionizing the world trade. But a major drawback is that a user always needs internet connection to create a wallet and trade in cryptocurrency. This means that in areas with poor internet , cryptocurrency trade gets hindered as it may lead to poor user experience, transaction failure etc. which leaves out many people.

What it does

Our system Ethastra:

  • Uses Finastra's external-p2p-payments API for exchanging money between bank accounts for crypto trade.
  • Uses mobile SMS to eliminate active internet connection.
  • AES end to end encryption to ensure user privacy when transacting via Ethereum as if not encrypted interceptor can see the transaction details of the receiver and sender and link the mobile no. with the sender's wallet harming the privacy.
  • Buy and Send Ether

This use case can also be extended to other types of offline banking system.

How I built it

We made a mobile app to give the functionality of buy and send ether which will create an AES end to end encrypted SMS and send it to a mobile number. This mobile number is connected to cloud server using Twilio API and redirects the requests to Node.js webhook which will interpret the SMS. If user wants to buy then it will fetch the mobile number of the SMS sender and his corresponding Finastra Bank Account using the mobile number and then deduct money from his account to our account and in return award him with respective amount of cryptocurrency. If user wants to send cryptocurrency then it will fetch receiver's public key and amount from decrypted SMS and then carry out the transaction.

Some security features are that the private key is not stored on the client side as well as the encryption key of SMS also lies securely in the android keystore.

Challenges I ran into

We faced some challenges in implementing AES ECB algorithm as the encryption was done by Java while decryption was done by JS on server so bringing both the languages to same platform by customizing padding, bits etc. was some challenge.

What I learned

It was our first experience integrating a Bank API so we learned the functioning of Finastra's Fusion Fabric APIs.

What's next for Ethastra

Currently Ethastra only supports Ethereum transactions , that too on test-net, so we will try to add support for more cryptocurrencies soon.

APK link

Share this project:

Updates