Creating Decentralized Social Apps

Introduction

Isabelle, a partner at C Labs, shares insights on creating decentralized social apps. The session is recorded and can be viewed on the Get Coin YouTube channel. Isabelle emphasizes using the Q&A section for questions during the discussion.

Celo’s Mission and User Experience

Celo’s mission is to build a financial system that promotes prosperity for everyone. Isabelle highlights the importance of the end user experience in achieving financial inclusion. Celo aims to make financial tools fast, affordable, safe, secure, and comprehensible for users. The network’s design focuses on mobile accessibility, recognizing that many people have access to mobile phones rather than desktop computers.

Introduction to Flora and User-Friendly Design

Flora, built on the Celo blockchain, is designed to be user-friendly and is often compared to Venmo on a blockchain. The goal is to abstract the underlying complexity of crypto and blockchain, making it feel like any other mobile payments app. Flora is a non-custodial app, ensuring users have control over their accounts and keys. Key management is stored locally on the mobile phone using a Geth key store and a React Native guest bridge.

Keys and Key Management in Valora

Valora, Celo’s mobile app, utilizes three important keys for each user: the account address, the meta transaction wallet, and the data encryption key. The account address is used to identify users, while the meta transaction wallet is responsible for sending and receiving transactions. The data encryption key is used for encrypting additional data such as transaction comments. Valora prioritizes user control over their finances.

User Experience and Profile Pictures

Good user experience involves implementing features like profile pictures and names. In traditional apps, setting up profile pictures and names is easy, typically involving server setup. However, attaching profile data to blockchain transactions can be expensive and not necessary for transactional purposes. To provide a smooth user experience, Celo stores profile data off-chain to minimize costs and maintain blockchain efficiency.

Off-Chain Storage for Profile Data

Storing data on the blockchain is expensive, and off-chain storage can be leveraged to reduce costs. Celo utilizes off-chain storage while ensuring user privacy. When associating account information with profile data, users encrypt their data using a symmetric key generated specifically for their information. The symmetric key is then encrypted using the user’s data encryption key before being uploaded to the backend storage. Access to the encrypted keys and payload allows authorized users to decrypt the data and view the profile information.

Conclusion and Further Resources

Celo aims to create a user-friendly, decentralized social app experience. The use of off-chain storage reduces costs, while encryption ensures user privacy. For developers interested in app integration or technical details, resources such as Celo Improvement Proposals (CIPs) and the Celo codebase provide further information. The session concludes by encouraging viewers to follow Celo on Twitter for updates and additional resources.