Inspired by an insatiable curiosity for technology, four undergraduates from Dartmouth have formed an application which decentralises a communication system to enhance security and privacy for everyday users. But for some, the privacy we cherish (and often take for granted), is hardly a luxury. Today, millions of people still live under the harsh regime of oppressors; with their freedom stripped and every form of communication tapped, the concept of free thought is but pipe-dream. To fight back, Flow uses decentralised technology to allow messages to be constantly flowing through every device with governmental levels of encryption to keep prying eyes away. Additionally, Flow was designed to be used in the absence of internet communication, opting for alternative solutions like Bluetooth LE and Wifi-Direct protocols, if a stable connection is not provided. With over 50% of the world without a stable or existant internet connect, we believe it is critical to fight back against those who strip the liberties of others and use our knowledge of technology to help those who are without a voice.
What it does
Flow uses a mesh of interconnected devices to send messages securely and efficiently. To do this, Bluetooth Low Energy and WiFi direct protocols are used to track a constantly updating graph of nodes (each of which represents a device). This allows for messages to be sent using BLE and WiFi Direct over much larger distances than the technologies would usually allow. It also allows the network to operate without a centralized server, making it far more secure than standard messaging services. Messages are kept encrypted from the sender's device all the way to the receiver's device, eliminating the chance of a man-in-the-middle attack.
How we built it
Flow was developed using Android Studio and the Android Developer SDK. We also used a wide range of open-source, publically accessible tools to streamline our design process and produce the best product possible. Brainstorming on blackboards and frequent team meetings helped us to stay on track during development, and git version control facilitated easy (and safe) collaboration.
Challenges we ran into
We first wanted to rely on Bluetooth Low Energy technology, but then realized there were limitations on multi-device connections and message sizes. Moreover, BLE's GATT protocol was very tricky to implement. We then switched to Wi-Fi Direct, which also didn't work out because the Android Developer SDK had some missing resources.
Accomplishments that we're proud of
We're proud of our integration with Facebook login, Google-powered voice-messaging, and above all a working prototype of our decentralized communication platform.
What we learned
We learn the intricacies of network protocols specifically the limits surrounding many of the Bluetooth communication devices we tried.
What's next for Flow
We hope to integrate enhancements to further reduce the levels of latency within the applications and optimize the UI for individuals.