Introduc)on to Bitcoinwebpages.eng.wayne.edu/~fy8421/17fa-csc6991/slides/bitcoin.pdf · of Bitcoin...

Preview:

Citation preview

Introduc)ontoBitcoin

CONTENTS

WhatisBitcoin

Whocreatedit?

Whoprintsit?

HowdoesBitcoinwork?

Thecharacteris5csofBitcoin

WHATIS

BITCOIN

Bitcoinisaformofdigitalcurrency,createdandheldelectronically.Noonecontrolsit.Bitcoinsaren’tprinted,likedollarsoreuros–they’reproducedbypeople,andincreasinglybusinesses,runningcomputersallaroundtheworld,usingsoGwarethatsolvesmathema)calproblems.

It’sthefirstexampleofagrowingcategoryofmoneyknownascryptocurrency.

Thecharacteris5csofBitcoin

PersontoPerson Sendbitcoinfromyourcomputer,tablet,smartphoneorotherdevice,toanyone,anywhereintheworld,dayornight.

EASY

SECURE Strongcryptography

Bitcoinverifiestransac)onswiththesamestate-of-the-artencryp)onusedinbanking,militaryandgovernmentapplica)ons.

OPEN Fullydecentralized

Bitcoinisopen-source.Nobodyownsit;themostpopularclientismaintainedbyacommunityofopen-sourcedevelopers.

FAIR MinimalFees

UsingtheBitcoinnetworkisfree,exceptforavoluntaryfeeyoucanusetospeeduptransac)onprocessing.

Whocreatedit?

AsoGwaredevelopercalledSatoshiNakamotoproposedbitcoin,whichwas

anelectronicpaymentsystembasedonmathema)calproof.Theideawasto

produceacurrencyindependentofanycentralauthority,transferable

electronically,moreorlessinstantly,withverylowtransac)onfees.

Who

printsit?

Noone.Thiscurrencyisn’tphysicallyprintedbyacentralbank.Somearguecentralbanksareunaccountabletothepopula)onandcansimplyproducemoremoneytocoverthena)onaldebt,thusdevaluingtheircurrency. Instead,bitcoiniscreateddigitally,byacommunityofpeopleanyonecanjoin.Bitcoinsare‘mined’,usingcompu)ngpowerinadistributednetwork. Thisnetworkalsoprocessestransac)onsmadewiththevirtualcurrency,effec)velymakingbitcoinitsownpaymentnetwork.

SecurityinBitcoin •  Authen)ca)on

– AmIpayingtherightperson?Notsomeotherimpersonator?

•  Integrity–  Isthecoindouble-spent?–  CananaVackerreverseorchangetransac)ons?

•  Availability–  CanImakeatransac)onany)meIwant?

•  Confiden)ality– Aremytransac)onsprivate?Anonymous?

SecurityinBitcoin •  Authen)ca)onàPublicKeyCrypto:DigitalSignatures

–  AmIpayingtherightperson?Notsomeotherimpersonator?

•  IntegrityàDigitalSignaturesandCryptographicHash–  Isthecoindouble-spent?–  CananaVackerreverseorchangetransac)ons?

•  AvailabilityàBroadcastmessagestotheP2Pnetwork–  CanImakeatransac)onany)meIwant?

•  Confiden)alityàPseudonymity–  Aremytransac)onsprivate?Anonymous?

PublicKeyCrypto:Encryp)on

•  Keypair:publickeyandprivatekey

PublicKeyCrypto:Encryp)on

•  Keypair:publickeyandprivatekey

PublicKeyCrypto:DigitalSignature •  First,createamessagedigestusingacryptographichash•  Then,encryptthemessagedigestwithyourprivatekey

Authen)ca)on Integrity

13

CryptographicHashFunc)ons

•  Consistent:hash(X)alwaysyieldssameresult

•  One-way:givenY,hardtofindXs.t.hash(X)=Y

•  Collisionresistant:givenhash(W)=Z,hardtofindXsuchthathash(X)=Z

Hash Fn Message of arbitrary length Fixed Size

Hash

BacktoBitCoin •  Valida)on

–  Isthecoinlegit?(proof-of-work)àUseofCryptographicHashes

– Howdoyoupreventacoinfromdouble-spending?àBroadcasttoallnodes

•  Crea)onofavirtualcoin/note– Howisitcreatedinthefirstplace?àProvideincen)vesforminers

– Howdoyoupreventinfla)on?(Whatpreventsanyonefromcrea)nglotsofcoins?)àLimitthecrea)onrateoftheBitCoins

Preven)ngDouble-spending

•  Theonlywayistobeawareofalltransac)ons.•  Eachnode(miner)verifiesthatthisisthefirstspendingoftheBitcoinbythepayer.

•  Onlywhenitisverifieditgeneratestheproof-of-workandaVachittothecurrentchain.

BitcoinNetwork •  EachP2Pnoderunsthefollowingalgorithm:

–  Newtransac)onsarebroadcasttoallnodes.–  Eachnode(miners)collectsnewtransac)onsintoablock.–  Eachnodeworksonfindingaproof-of-workforitsblock.(Hardtodo.Probabilis)c.Theonetofinishearlywillprobablywin.)

–  Whenanodefindsaproof-of-work,itbroadcaststheblocktoallnodes.

–  Nodesaccepttheblockonlyifalltransac)onsinitarevalid(digitalsignaturechecking)andnotalreadyspent(checkallthetransac)ons).

–  Nodesexpresstheiracceptancebyworkingoncrea)ngthenextblockinthechain,usingthehashoftheacceptedblockastheprevioushash.

Prac)calLimita)on

•  Atleast10minstoverifyatransac)on.– Agreetopay– Waitforoneblock(10mins)forthetransac)ontogothrough.

– But,foralargetransac)on($$$)waitlonger.Becauseifyouwaitlongeritbecomesmoresecure.Forlarge$$$,youwaitforsixblocks(1hour).

Recommended