Na?onal ¡Technical ¡University ¡of ¡Athens ¡ School ¡of ¡Electrical ¡and ¡Computer ¡Engineering ¡ Department ¡of ¡Computer ¡Science ¡ ¡ A ¡pseudonymous ¡trust ¡system ¡for ¡a ¡ decentralized ¡anonymous ¡marketplace ¡ Dionysis ¡Zindros ¡ ¡ April ¡2015 ¡ Genève ¡
OpenBazaar ¡ • A ¡decentralized ¡anonymous ¡marketplace ¡ • Allows ¡trade ¡of ¡physical ¡and ¡digital ¡goods ¡ • Uses ¡bitcoin ¡for ¡payments ¡
What ¡is ¡OpenBazaar? ¡ • Piece ¡of ¡soNware ¡that ¡runs ¡on ¡your ¡computer ¡ • Local ¡client-‑server ¡architecture ¡ • Marketplace ¡ – Anyone ¡can ¡buy ¡ – Anyone ¡can ¡sell ¡ – Publish ¡products ¡you’re ¡selling ¡ – Search ¡for ¡products ¡you’re ¡buying ¡
What ¡is ¡OpenBazaar? ¡ • No ¡intermediaries ¡ • No ¡fees ¡ • No ¡censorship ¡ • No ¡single-‑point-‑of-‑failure ¡ • Strongly ¡anonymous ¡(over ¡Tor) ¡
OpenBazaar ¡History ¡ • October ¡7 th , ¡2013: ¡Gosha ¡Arinich ¡publishes: ¡ – “Decentralized ¡Anonymous ¡Marketplace” ¡ @GitHub ¡ • March ¡24 th , ¡2014: ¡Dionysis ¡Zindros ¡publishes: ¡ – “A ¡decentralized ¡anonymous ¡marketplace” ¡ @Libera?onTech ¡
OpenBazaar ¡History ¡ • April ¡10 th , ¡2014: ¡Amir ¡Taaki ¡& ¡unSYSTEM: ¡ – Implement ¡DarkMarket ¡ – Over ¡the ¡course ¡of ¡a ¡3-‑day ¡hackathon ¡ ¡ • April ¡25 th , ¡2014: ¡Brian ¡Hoffman: ¡ – Forks ¡DarkMarket ¡into ¡OpenBazaar ¡
OpenBazaar ¡History ¡ • August ¡31 st : ¡Beta ¡1.0 ¡release ¡ – Reputa?on ¡pledges ¡ • September ¡31 st : ¡Beta ¡2.0 ¡release ¡ – October ¡3 rd : ¡Beta ¡2.1 ¡ – October ¡12 th: ¡Beta ¡2.2 ¡ • November ¡30 th : ¡Beta ¡3.0 ¡release ¡ ¡ – Namecoin ¡integra?on ¡ • Last ¡week: ¡Beta ¡4.0 ¡release ¡ – Networking ¡improvements ¡(UDP, ¡hole ¡punching) ¡ – Robustness/stability ¡
OpenBazaar ¡security ¡ • In ¡this ¡work: ¡ – We ¡study ¡the ¡security ¡of ¡OpenBazaar ¡ – Try ¡to ¡break ¡it ¡ – Try ¡to ¡fix ¡it ¡ – Design ¡a ¡robust ¡reputa?on ¡system ¡ – Maintain ¡user ¡security ¡assurances ¡ – Against ¡specific ¡threat ¡model ¡ – Design ¡new ¡pseudonymous ¡trust ¡system ¡
Fundamental ¡problem ¡ • Can ¡you ¡trust ¡people ¡you ¡don’t ¡know? ¡
Fundamental ¡problem ¡ • Can ¡you ¡trust ¡people ¡you ¡don’t ¡know? ¡ • Yes! ¡
Threat ¡Model ¡ • Malicious ¡user ¡can: ¡ – Send ¡invalid ¡data ¡ – Lie ¡about ¡products ¡being ¡sold ¡ – Lie ¡about ¡interest ¡to ¡buy ¡product ¡ – Lie ¡about ¡reputa?on ¡ – Arbitrate ¡and ¡make ¡false ¡claims ¡ – Exit ¡from ¡trading ¡games ¡arbitrarily ¡at ¡will ¡ – Default ¡on ¡payments ¡ – Evade ¡all ¡laws, ¡remain ¡anonymous ¡
Threat ¡Model ¡ • Malicious ¡user ¡incen?ve: ¡ – Make ¡money ¡ – Modeled ¡as ¡ra?onal ¡agent ¡with ¡financial ¡goals ¡
Threat ¡Model ¡ • Malicious ¡corpora?on ¡can: ¡ – Spend ¡money ¡for ¡goal ¡(millions) ¡
Threat ¡Model ¡ • Malicious ¡corpora?on ¡incen?ves: ¡ – Sees ¡OpenBazaar ¡as ¡compe?tor ¡ – External ¡financial ¡incen?ves ¡to ¡destroy ¡market ¡ – Modeled ¡as ¡ra?onal ¡agent ¡with ¡u?lity ¡to ¡destroy ¡ the ¡whole ¡network ¡ ¡
Threat ¡Model ¡ • Malicious ¡government ¡can: ¡ – Use ¡laws ¡to ¡enforce ¡decisions ¡ – Block ¡/ ¡filter ¡data, ¡deep ¡packet ¡inspec?on ¡ – Bring ¡down ¡Internet ¡in ¡country ¡ – Issue ¡secret ¡warrants ¡ – U?lize ¡force ¡through ¡police ¡ – Aiack ¡individual ¡sellers, ¡buyers, ¡arbiters ¡ – Aiack ¡developers ¡
Threat ¡Model ¡ • Malicious ¡government ¡incen?ves: ¡ – Censor ¡content ¡ – Network ¡destruc?on: ¡Majority ¡denial ¡of ¡service ¡ – Network ¡destruc?on: ¡Break ¡reputa?on ¡security ¡ (reputa?ons ¡become ¡arbitrary) ¡
Threat ¡Model ¡ • Malicious ¡developer ¡can: ¡ – Push ¡code ¡to ¡OpenBazaar ¡codebase ¡ – Sign ¡releases ¡ – Is ¡forced ¡by ¡secret ¡warrant ¡to ¡check-‑in ¡backdoor ¡ – Is ¡legally ¡obliged ¡to ¡keep ¡secret ¡
Secure ¡development ¡process ¡2014 ¡ • Since ¡July ¡22 nd : ¡ – All ¡pull ¡requests ¡reviewed ¡by ¡others ¡ – Cannot ¡merge ¡own ¡pull ¡requests ¡ • Since ¡September ¡22 nd : ¡ – Driessen’s ¡master/develop ¡branching ¡model ¡ • Since ¡September ¡8 th : ¡ – MIT ¡Licensed ¡
Secure ¡development ¡process ¡ • Slowly ¡increasing ¡unit ¡test ¡coverage ¡ – August ¡31 st : ¡0% ¡ – September ¡24 th : ¡16% ¡ – October ¡15 th : ¡27% ¡ – April ¡30 th : ¡30% ¡ – You ¡can ¡help! ¡ • All ¡releases ¡git ¡tagged ¡and ¡GPG ¡signed ¡ – With ¡Dionysis’ ¡GPG ¡key ¡ – Strong ¡GPG ¡graph ¡membership ¡
Secure ¡development ¡process ¡ • Not ¡rolling ¡our ¡own ¡crypto, ¡except: ¡ – Mul?sig ¡implementa?on ¡ – Proof-‑of-‑burn ¡implementa?on ¡ – Reliable ¡implementa?ons ¡do ¡not ¡exist ¡ • Reusing ¡exis?ng ¡technologies ¡ – Kademlia ¡DHT ¡ – Obelisk ¡(will ¡be ¡replaced ¡by ¡SPV ¡model) ¡ – Bitcoin ¡ – Bitmessage ¡/ ¡pybitmessage ¡ – pybitcointools ¡ – ZeroMQ ¡ – SQLcipher ¡
Secure ¡development ¡process ¡ • Automated ¡build ¡process ¡ – pylint ¡ – flake8 ¡ – jshint ¡ – travis-‑ci ¡ – coveralls ¡ • All ¡checked-‑in ¡code ¡must ¡pass ¡
Decentraliza?on ¡ • Completely ¡decentralized ¡system ¡ • Data ¡exchange ¡using ¡Kademlia ¡DHT ¡ • Bootstrap ¡using ¡hard-‑coded ¡seeds ¡ • No ¡single-‑point-‑of-‑failure ¡
Bitcoin ¡ • Decentralized ¡secure ¡cryptocurrency ¡ [Nakamoto ¡08] ¡ • True ¡ownership ¡of ¡money ¡ • Transac?on-‑based, ¡not ¡balance-‑based ¡ • Balance ¡deduced ¡from ¡UTXO ¡ • Transac?on ¡has ¡inputs ¡/ ¡outputs ¡ • Push-‑down ¡scrip?ng ¡language ¡for ¡generalized ¡ contracts ¡
Transac?ons ¡ • Typical ¡transac?on ¡script ¡requires ¡authorized ¡ digital ¡signature ¡
Blockchain ¡ • Linked ¡list ¡of ¡blocks ¡ • Blockchain ¡solves ¡byzan?ne ¡problem ¡in ¡prac?ce ¡by ¡ achieving ¡consensus ¡through ¡arrow-‑of-‑?me ¡ • Guards ¡against ¡sybil ¡aiacks ¡through ¡proof-‑of-‑work ¡ • Proof-‑of-‑work: ¡Range ¡pre-‑image ¡of ¡cryptographic ¡ hashfunc?on ¡ • Block ¡genera?on ¡expected ¡?me ¡is ¡controlled ¡by ¡network ¡ • Merkle ¡tree ¡hashing ¡of ¡transac?ons ¡ • Hash ¡of ¡previous ¡block ¡included ¡in ¡next ¡blocks, ¡chain ¡is ¡ exponen?ally ¡unforgeable ¡ • Avoids ¡double-‑spending ¡problem ¡
Blockchain ¡
Typical ¡bitcoin ¡script ¡ • scriptPubKey: ¡ – OP_DUP ¡OP_HASH160 ¡<pubKeyHash> ¡ OP_EQUALVERIFY ¡OP_CHECKSIG ¡ • scriptSig: ¡ – <sig> ¡<pubKey> ¡
Webs-‑of-‑trust ¡ • A ¡graph ¡where: ¡ – Nodes ¡represent ¡people ¡ – Edges ¡represent ¡trust ¡
Webs-‑of-‑trust ¡history ¡ • GPG ¡[Zimmerman ¡95] ¡ – Main ¡use: ¡Assurance ¡of ¡iden?ty ¡associa?on ¡ – May ¡be ¡decentralized ¡ – But ¡in ¡prac?ce ¡centralized ¡through ¡keyservers ¡ – Public ¡global ¡topology ¡harms ¡anonymity ¡ – Pseudonymity ¡possible ¡in ¡principle ¡ – Cryptographic ¡signatures ¡on ¡edges ¡ – Trust ¡is ¡projected ¡
Webs-‑of-‑trust ¡history ¡ • BTC-‑OTC ¡ – Main ¡use: ¡Financial ¡trust, ¡risk ¡mi?ga?on ¡ – Centralized, ¡single-‑point-‑of-‑failure ¡in ¡admins ¡ – Unauthen?cated, ¡MITM ¡possible ¡ – No ¡digital ¡signatures ¡employed ¡on ¡trust ¡edges ¡ – Public ¡global ¡topology ¡harms ¡anonymity ¡ [Narayanan] ¡ – Mainly ¡pseudonymous ¡ – Trust ¡is ¡a ¡combina?on ¡of ¡global ¡and ¡projected ¡
Recommend
More recommend