Upload
others
View
6
Download
0
Embed Size (px)
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).