Decentralized Social Networking Programmable Open Mobile Internet (POMI) 2020 Monica Lam Stanford University
with Dan Boneh, Ruven Chu, Ben Dodson, Michael Fischer, Sudheendra Hangal, Bobby Georgescu, Te‐Yuan Huang, Chanh Nguyen, Debangsu Sengupta, Jiwon Seo, Seok‐Won Seong, Seng Keat Teh, Ian Vo Biggest (Last?) Personal Computer Revolu on
mainframe mini workstation PC laptop phone
10x cheaper, 10x more users 3‐Tier Architecture
天 servers data Tian (Heaven)
My key, cache, window into my digital cloud: 人 ID, personality, assets, and the internet Ren (Man) Personalize the generic PC, borrow the power, display, keyboard, memory, etc
地 PC,TV Di at home, on the road, (Earth) in hotels, on the plane Ad‐Supported Social Networking Ownership, Privacy?
EULA reserves the right to change the EULA Convenience? Data silos
Our Personal Cloud
Web
Loopt dropbox
PC Economics of Super‐Giant Star Topology? Openness? The Omniscient Monopoly Ad‐Supported Social Networking
• Privacy • Data ownership • Data silos • Cost of infrastructure for super‐giant star technologies • Closed proprietary systems Decentralized Open Trustworthy (DOT) Social Net www.dotsocialnet.org
Decentralized across different administra on domains • Choice of privacy—owned home server, paid vendor, ad‐supported vendor
Open API for distributed applica ons across administra on domains
Trustworthy: Sharing with fine‐grain access control
Online social networking without reservations! Inter-operability between MySpace & Facebook (like AT&T & Verizon) Hypotheses
An open, high‐level API and pla orm easy to devel makes decentralized applica ons easy to develop
A safe haven with access control PAYS easy to Privacy • in situ social networking use apps $ • privacy‐sensi ve apps
Decentraliza on is more scalable and cost effec ve affordable Strategy
✓ ✓ ✓ Develop Basic In Situ Social infrastructure Applica ons Networking
Research Release Real Apps & Experiment Consor um
Privacy affordable easy to apps $ use Open API
easy to devel Decentralized Social Networking Architecture
Junction Platform
3rd Encrypted & Anonymous Unencrypted Big‐Brother Party Data, Computation, Data & Portal Messaging Computation
Personal‐ Personal‐ Unencrypted Cloud Personal‐ Cloud Data & Butler Cloud Butler Computation Butler
Web Web PrPl (Private-Public) Infrastructure Browser Browser Personal Cloud Butlers
My Personal Cloud Friends’ List Calendar GPS Trace Credit card history Email Phone record
Personal Cloud Butler: Mediates access to personal data Manages a seman c index poin ng to data hosted anywhere Social Mul ‐Database
iPhone Android
Mobile client API
Contact Photo GPS Music
SociaLite: Social DB Language
Data PrPl OpenID Friends’ Friend’s Manager Index Manager Friend’s Butlers Butlers Personal‐Cloud Butler Butlers
Data Steward API
home server facebook imap easy to devel SociaLite: Language for a Social Mul ‐Database
• A distributed declara ve social database language • Based on Datalog: programs are declared as rules • Example: FOAF(?p) :‐ FRIEND(?p) FOAF(?p) :‐ FRIEND(?x), FOAF[?x](?p) FOAF‐CurrLoca on(?p,?l) :‐ FOAF(?p), CurrLoca on[?p](?l) • Supports composi on, recursion • Hides distribu on details: Messaging, creden als • Declara ve: easy to op mize: caching, approxima on, incrementality Basic Applica on: Peops
• Friends all run their own Butlers • Harvested friends from Facebook • Display selected friends photos, GPS loca ons • Single query personal Butler • Butler contacts other Butlers to return results easy to use In‐Situ Social Networking
• Extract groups from email Research Old Childhood (Jaccard similarity metrics) Group Buddies Grade • school Ask users for group names Stanford • Pre‐populate with email Friends Foodies High a achments school Rock Band
Former Family Co-workers • Access control: OpenID • Suggest new group members Relationship Map • Add new contents Proof of Concept on Planetlab
100 90 80 70 10 Friends 60 20 Friends 50 40 30 Friends 30 50 Friends
Results Received (%) 20 10 100 Friends 0 0 1 2 3 4 5 6 7 8 Time (s)
Distributed SociaLite query of tagged photos over the planet with 100 nodes (20,000 photos total from Facebook) Junc on: Pla orm for Ad Hoc P2P Apps
XMPP generic, anonymous server-side Yahoo scripting Poker
http://www.yahoo.com/ http://www.yahoo.com/ junc on://sb/sessionID=234 poker/sessionid=123 (by invita on) poker/sessionid=234 Activ Script Ac vity Ac vity Ac vity html/css/js Director Director Director Ac vity Web Web Director Browser Browser
Cross- Platform Native app easy to devel Ac v Script
Dealer Table Player
{ ad: "edu.stanford.prpl.poker”, friendlyName: "PrPl Poker”, roles: { "player": {platforms: {android: {package: "edu.stanford.prpl.poker”, url: http://prpl.stanford.edu/poker/downloads/poker.apk}}, {web: { url: "http://prpl.stanford.edu/poker/play" }}} "table”: {platforms: { web: {url: "http://prpl.stanford.edu/poker/table" }}}, "dealer”: {platforms: { java: {url: "http://prpl.stanford.edu/poker/downloads/dealer.jar" }}}}} Ad‐Hoc Game Between Phones
Start Activity Invite: QR code . . . Join my Bluff game!
Accept with a snap
408‐555‐5555 ACCEPT Download software Join activity Rolling Dice (with Replacement)
1. Commit Each picks a random r, b declares gr mod p where g, p are agreed upon. r b rb g 2. Give to owner r a If not owner, reveal . Owner a g r Public calculates value of die as ra (ra + rb + rc) mod 6.
rc g 3. Reveal (ra + rb + rc) mod 6 r c Owner makes his r public. 4. Verify c A revealed r is only valid if gr matches gr from step 1. easy to easy to devel use Collabora ve YouTube
Web: < 250 lines of JS ~50 lines of Junction Phone: < 200 lines of JAVA ~60 lines of Junction Real‐Life Applica on Ideas
easy to easy to affordable Edu‐Games devel use
easy to easy to Privacy Campus Biggest‐Loser devel use apps
Shopping Social easy to easy to Privacy devel use apps $ Music Social: Jinzora
Share and discover music easy to easy to Buy music devel use $ Online Social Networking without Reserva ons
✓ ✓ ✓ PrPl, SociaLite Peops, Poker, Email Mining Junc on Dice
Research Real‐apps: Jinzora Music, Shopping Social, Consor um Edu‐Games, Biggest Loser
Privacy affordable easy to apps $ use Open API
easy to devel
Inter-operability between MySpace & Facebook