In recent years, the desire for financial privacy and anonymity spurred the growth of electronic cash and cryptocurrencies. The introduction of decentralized cryptocurrencies, such as Bitcoin, accelerated their adoption in society. Since digital information is easier to reproduce, digital currencies are vulnerable to be spent more than once – this is called a double-spending attack. In order to prevent double-spending, Bitcoin records transactions in a tamper-resilient shared ledger called the blockchain. However, the time required to generate new blocks in the blockchain causes a delay in the transaction confirmation. This delay, typically around one hour in Bitcoin, is impractical for real world trade and limits the wide-spread use of blockchain-based cryptocurrencies. In this thesis, we propose a solution to prevent double-spending attacks and thus enable fast transaction confirmations using the security guarantees of Trusted Execution Environments (TEEs). We achieve this by enforcing sign-once semantics that prevent the payer from reusing designated signing keys to sign more than one transaction. We also provide a way for the payee to verify whether a specific signing key is subject to sign-once semantics. The payee, however still receives the funds later, once the transaction is verified similarly to existing credit card payments. In this way, our solution reduces transaction confirmation times of blockchain-based cryptocurrencies and is also compatible with existing deployments since it does not require any modifications to the base protocol, peers, or miners. We designed and implemented a proof-of-concept of our solution using Intel SGX technology and integrated it with Copay, a popular Bitcoin wallet from BitPay. This thesis also presents the security evaluation of our system along with other possible extensions and enhancements. / De senaste åren har begäran efter sekretess och anonymitet för ekonomisk transaktioner sporrat tillväxten av elektroniska kontanter och kryptovalutor. Introducerandet av decentraliserade kryptovalutor, som t.ex. Bitcoin, har accelereratibruktagningen av dylika valutasystem. Digitala valutor är dock sårbara för dubbelspenderande (eng.double spending) eftersom digital information är lättare attreproducera. För att förhindra dubbelspenderande bokför Bitcoin valutatrans-aktioner i en distribuerad databas, den så kallade blockkedjan (eng.blockchain), som kan motstå förvanskling av bokförda transaktioner. Tiden som krävs för attgenerera nya block i Bitcoins blockkedja leder dock till en fördröjningen företransaktioner som skapas i databasen kan bekräftas. Denna fördröjning, som oftas varar kring en timme, är opraktisk för handel i verkliga världen och begränsardärför den allmänna spridningen av blockkedgebaserade kryptovalutor. I denna avhandlingen föreslår vi en lösningen som hindrar dubbelspenderandegenom att utnyttja säkerhetsgarantier hos anförtrodda exekveringsmiljöer (eng.Trusted Execution Environments). Vi åstadkommer detta genom att hindra beta-laren från att återanvända specifika kryptografiska nycklar för att digitalt signera flera transaktioner. Vi möjligjör också ett sätt för mottagaren att bekräfta ifall en kryptografisk underteckningsnyckel är skyddad på ovannämnda sätt. Mottagaren erhåller dock betalningen först senare, likt existerande kreditkortsbetalningar. Vår lösningen förminskar transaktionstiden för Bitcoin-betalningar på ett sätt som är kompatibelt med existerande användningssätt eftersom lösningen inte kräver modifikationer i grundläggande Bitcoin-protokollet. Vi utvecklade en prototyp av vår lösning genom att utnyttja Intel SGX teknologi och integrerade prototypen med CoPay, en popular plånboksapplikation för Bitcoin utveckald av företaget BitPay. Vi presenterar även en utvärdering av säkerheten i vårt system och beskriver möjliga utökningar och förbättringar. / <p>This thesis is part of Erasmus Mundus 2-Year Masters NordSecMob program. </p>
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-210721 |
Date | January 2017 |
Creators | Gopinath Nirmala, Rakesh |
Publisher | KTH, Skolan för elektro- och systemteknik (EES) |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | Swedish |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Relation | TRITA-EE, 1653-5146 ; 2017:087 |
Page generated in 0.003 seconds