bitcoin smart contracts
play

Bitcoin Smart Contracts Saravanan Vijayakumaran sarva@ee.iitb.ac.in - PowerPoint PPT Presentation

Bitcoin Smart Contracts Saravanan Vijayakumaran sarva@ee.iitb.ac.in Department of Electrical Engineering Indian Institute of Technology Bombay August 26, 2019 1 / 17 Smart Contracts Computer protocols which help execution/enforcement of


  1. Bitcoin Smart Contracts Saravanan Vijayakumaran sarva@ee.iitb.ac.in Department of Electrical Engineering Indian Institute of Technology Bombay August 26, 2019 1 / 17

  2. Smart Contracts • Computer protocols which help execution/enforcement of regular contracts • Minimize trust between interacting parties • Hypothetical example: Automatic fine for noise pollution • IITB hillside community hall parties use loudspeakers • Party organizers pay bitcoin security deposit • If noise rules violated, deposit distributed to nearby residents • Two actual examples • Escrow • Micropayments 2 / 17

  3. Escrow Contract

  4. Problem Setup • Alice wants to buy a rare book from Bob • Alice and Bob live in different cities • Bob promises to ship the book upon receiving Bitcoin payment • Alice does not trust Bob • Alice proposes an escrow contract involving a third party Carol 4 / 17

  5. Escrow Contract • Alice requests public keys from Bob and Carol • Alice pays x bitcoins to a 2-of-3 multisig output OP_2 <PubKeyA> <PubKeyB> <PubKeyC> OP_3 OP_CHECKMULTISIG • Bob ships book once Alice’s transaction is confirmed • Bitcoins can be spent if any two of the three provide signatures • Any of the following scenarios can occur • Alice receives book. Alice and Bob sign. • Alice receives the book but refuses to sign. Bob provides proof of shipment to Carol. Bob and Carol sign. • Bob does not ship the book to Alice. Bob refuses to sign refund transaction. Alice and Carol sign. • Escrow contract fails if Carol colludes with Alice or Bob • Also proof of shipment is not proof of contents 5 / 17

  6. Lock Times

  7. Transaction Lock Time Regular Transaction Format nVersion Number of Inputs N Input 0 . . . Input N − 1 Number of Outputs M Output 0 . . . Output M − 1 nLockTime • nLockTime is a 4-byte field which specifies the earliest time the transaction can be included in a block 7 / 17

  8. nLockTime Values • If nLockTime < 5 × 10 8 , then it is interpreted as a block height • Transaction with nLockTime = 600,000 will not be included in any block with height < 600,000 • If nLockTime ≥ 5 × 10 8 , then it is interpreted as a Unix time • Unix time = Number of seconds since Jan 1, 1970 12:00AM UTC • Unix time of 1,514,797,200 = 9:00 AM on January 1, 2018 • Transaction with Unix time lock time will not be included unless the median-time-past of the latest block exceeds the nLockTime value • The median-time-past of a block at height h is the median of the nTime values in the 11 blocks at heights h , h − 1 , . . . , h − 10. • The nTime field of a candidate block at height N must exceed the median-time-past of the block at N − 1. • What if we need block height ≥ 5 × 10 8 or Unix time < 5 × 10 8 ? • It would take 9,500 years to reach block height 5 × 10 8 • Unix time of 5 × 10 8 is 12:53AM on Nov 5, 1985 8 / 17

  9. Relative Lock Times Input Format hash n scriptSigLen scriptSig nSequence • The 4-byte nSequence field is used to specify a relative lock time of an input • Can have units which of either blocks or seconds • Suppose the relative lock time of an input is k blocks • If the output which is being unlocked by this input is in block K , then a transaction containing this input cannot be included in a block whose height is less than K + k • A similar condition holds for relative lock time in seconds 9 / 17

  10. Relative Lock Time from nSequence Value Start nSequence does Yes nSequence[31] = 1? not encode a relative lock time No k = nSequence[15:0] No Yes nSequence[22] = 1? Relative lock time Relative lock time is k blocks is k × 512 seconds • Maximum relative lock time in blocks is 2 16 − 1 = 65 , 535 blocks ≈ 1.25 years • Maximum relative lock time in seconds is ( 2 16 − 1 ) × 512 = 33 , 553 , 920 seconds ≈ 1.06 years 10 / 17

  11. Micropayments

  12. Problem Setup • Bitcoin transaction fees make small payments expensive • Micropayments contract can aggregate small payments • Alice offers proofreading and editing services online • She accepts bitcoins as payments • Clients email documents to Alice • Alice replies with typos and grammatical errors • Alice charges a fixed amount of bitcoins per edited page • To avoid clients refusing payment, Alice uses micropayments contract • Suppose Bob wants a 100 page document edited • Alice charges 0.0001 BTC per page • Bob expects to pay a maximum of 0.01 BTC to Alice 12 / 17

  13. Micropayments Contract (1/3) Creating Refund Transaction • Bob requests a public key from Alice Alice Bob • Bob creates a transaction t 1 which y p u b l i c k e e q u e s t R transfers 0.01 bitcoins to a 2-of-2 multisig output S e n d P u b K e y A Create PubKeyB Create t 1 • Bob does not broadcast t 1 on the Create t 2 g i t h B ’ s s i e n d t 2 w network S S e n • Bob creates a refund transaction t 2 d t 2 w i t h A s ’ s i g which refunds the 0.01 BTC • A relative lock time of n days is set on t 2 • Bob includes his signature in t 2 and sends it to Alice • If Alice refuses to sign, Bob terminates the contract • If Alice signs t 2 and gives it Bob, he has the refund transaction 13 / 17

  14. Micropayments Contract (2/3) Getting Paid for First Page Edits • Bob broadcasts t 1 on the network Alice Bob Network • Once t 1 is confirmed, he sends Alice i c k e y u e s t p u b l R e q his document S e n d P u b K e y A Create PubKeyB • Alice edits only the first page of the Create t 1 document Create t 2 s i g w i t h B ’ s S e n d t 2 • She creates a transaction e 1 which S e n d t 2 w i t h A ’ B r s s i g o a d c a s t t 1 unlocks t 1 and pays her 0.0001 BTC o n m a t i c o n fi r t 1 and 0.0099 BTC to Bob o c u m e n t S e n d d S e n d e 1 w i t • Alice signs e 1 and sends it to Bob h A ’ s s i g a n d p a g e 1 e d i t s B ’ s s i g n d e 1 w t i h along with the first page edits S e • If Bob refuses to sign e 1 , then • Alice terminates the contract. • Bob broadcasts t 2 after lock time expires • If Bob signs e 1 and returns it to Alice, then Alice is guaranteed 0.0001 bitcoins if she broadcasts e 1 before lock time on t 2 expires. 14 / 17

  15. Micropayments Contract (3/3) Getting Paid for Second Page, Third Page . . . • Alice edits the second page of the Alice Bob Network document Request public key • She creates a transaction e 2 which Send PubKeyA unlocks t 1 and pays her 0.0002 BTC Create PubKeyB Create t 1 and 0.0098 BTC to Bob Create t 2 Send t 2 with B’s sig • Alice signs e 2 and sends it to Bob Send t 2 with A’s sig Broadcast t 1 along with the second page edits t 1 confirmation Send document • If Bob refuses to sign e 2 , then Alice terminates the contract. Send e 1 with A’s sig and page 1 edits Alice broadcasts e 1 and receives Send e 1 with B’s sig 0.0001 BTC. Send e 2 with A’s sig and page 2 edits • If Bob signs e 2 and returns it to Alice, Send e 2 with B’s sig then Alice is guaranteed 0.0002 . . bitcoins if she broadcasts e 2 before . lock time on t 2 expires. Send e 100 with A’s sig and page 100 edits • Alice continues sending edited pages Send e 100 with B’s sig along with transactions requesting B r o a d c a s t e 1 0 0 cumulative payments o n c o n fi r m a t i e 1 0 0 • She has to finish before the refund transaction lock time expires 15 / 17

  16. Key Takeaways • Smart contracts reduce the need for trust • Bitcoin’s scripting language enables some smart contracts • Not powerful enough to express complex contracts 16 / 17

  17. References • Chapters 5, 6 of An Introduction to Bitcoin , S. Vijayakumaran, www.ee.iitb.ac.in/~sarva/bitcoin.html 17 / 17

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend