ILP Workshop: Cryptoconditions

Public Channel / Interledger

A solid foundation for ILP. Presented on 2/25/2016 at Ripple headquarters in San Francisco, CA. Presenters include Stefan Thomas, Evan Schwartz, and Adrian Hope-Bailie.

Share on Social Networks

Share Link

Use permanent link to share in social media

Share with a friend

Please login to send thispresentation by email!

Embed in your website

Select page to start with

Post comment with email address (confirmation of email is required in order to publish comment on website) or please login to post comment

26. Single Signature Condition

34. Smart Oracles

37. Delegation

47. Putting it all together

50. Fulfillment

61. Merkle Circuits

10. As a sender I want to be certain

11. As a sender I want to be certain that my donation was received

12. As a sender I want to be certain that the invoice was paid

13. As a sender I want to be certain that my debt is settled

25. Are Simple Signatures Enough?

53. Signature Condition cc:1:Aml_0BgDRVk32fXTVMQ6V1SSKFrxAF7XHegeI16vTaexsgI

58. Threshold Condition cc:1:AR9QCVepDTNSct6SGWTx6cWfLgBrp8tNqWIjylAiEy4vtAI

67. First Editor's Draft Coming Soon Interledger.org

35. 010101 101010 010101 Smart Oracle

27. Multi Signature Condition 2 - of - 3

43. Boolean Circuits AND OR

48. Condition Types Signatures Thresholds

49. Condition Types Signatures Thresholds

2. The Receipt 2

20. Why Are Conditions so Important? 20

24. Others Have Done The Hard Part 24

9. What is success ?

36. 010101 101010 010101 Smart Oracle 010101 101010 010101 010101 101010 010101

42. Bob Boolean Circuits Chandra Lina

1. Crypto Conditions Stefan Thomas A Solid Foundation for ILP

3. Connector gets receipt from ledger 3 Umm...

4. Connector passes on the receipt 4 Excuse me...

5. Connector passes on the receipt 5 What's that thing?

16. How do we describe the receipt? 16 EXECUTE ROLLBACK

17. How do we describe the receipt? 17 EXECUTE ROLLBACK

18. How do we describe the receipt? 18 EXECUTE ROLLBACK

21. Why Are Conditions so Important? 21 EXECUTE

22. Why Are Conditions so Important? 22 EXECUTE ROLLBACK

7. Rollback on failure 7 EXECUTE ROLLBACK

8. Execute on success 8 EXECUTE ROLLBACK

14. As a sender I want non - repudiable proof - of - settlement

23. Conditions Must Be Bit - Perfect 23 EXECUTE EXECUTE

51. Signature Condition CONDITION = VARUINT BITMASK = 2 UINT256 HASH VARUINT MAX_FULLFILLMENT_LENGTH

54. Signature Fulfillment FULFILLMENT = VARUINT BITMASK = 2 VARSTR MODULUS VARSTR MESSAGE_PREFIX VARSTR MESSAGE UINT8[LENGTH(MODULUS)] SIGNATURE VARUINT BYTES_UNUSED

55. Signature Fulfillment cf:1:AoABYTEyNWNiZGFmNWI3NDk0MzQ5YjE2NGUxMmRjZTRiND BkMTI4MTNkYTY1ZDM4YTEyOTNmZDFhOWMwMTk2YzJlZjRmYWRhN jI2OWNjYzFhNzdjMTZhYjc2NmRhMGU0NzYxYzQ4Mjc1Y2U4MzNm OGE5MzdkOWMyOWQzZDVlNmQyZTkMSGVsbG8gd29ybGQhFSBDb25 kaXRpb25zIGFyZSBoZXJlIUFLExFQC5PXoLli_CBpIEE0WOypkZ L7wCf_eIWExJJEmdrt00ubso94DO7gIOLUTh5sRCuij29Yos1b_ yE79gwA

59. Threshold Fulfillment FULFILLMENT = VARUINT BITMASK VARUINT THRESHOLD VARUINT NUM_ELEMENTS FOR EACH ELEMENT VARUINT PARAMS ELEMENT_CONDITION/FULFILLMENT

60. Threshold Fulfillment cf:1:AQICjYwvnzkRBOa8QDKcPC_c6Sh - LnKPfu - COmv9j2e3ScuzAgKAAWExMjVjYmRhZjViNzQ5NDM0OWIxNjRlMTJk Y2U0YjQwZDEyODEzZGE2NWQzOGExMjkzZmQxYTljMDE5NmMyZWY0Z mFkYTYyNjljY2MxYTc3YzE2YWI3NjZkYTBlNDc2MWM0ODI3NWNlOD MzZjhhOTM3ZDljMjlkM2Q1ZTZkMmU5DEhlbGxvIHdvcmxkIRUgQ29 uZGl0aW9ucyBhcmUgaGVyZSFBSxMRUAuT16C5YvwgaSBBNFjsqZGS - 8An_3iFhMSSRJna7dNLm7KPeAzu4CDi1E4ebEQroo9vWKLNW_8hO_ YMAA

62. Threshold Fulfillment cf:1:AQICjYwvnzkRBOa8QDKcPC_c6Sh - LnKPfu - COmv9j2e3ScuzAgKAAWExMjVjYmRhZjViNzQ5NDM0OWIxNjRlMTJk Y2U0YjQwZDEyODEzZGE2NWQzOGExMjkzZmQxYTljMDE5NmMyZWY0Z mFkYTYyNjljY2MxYTc3YzE2YWI3NjZkYTBlNDc2MWM0ODI3NWNlOD MzZjhhOTM3ZDljMjlkM2Q1ZTZkMmU5DEhlbGxvIHdvcmxkIRUgQ29 uZGl0aW9ucyBhcmUgaGVyZSFBSxMRUAuT16C5YvwgaSBBNFjsqZGS - 8An_3iFhMSSRJna7dNLm7KPeAzu4CDi1E4ebEQroo9vWKLNW_8hO_ YMAA

63. Threshold Fulfillment cf:1:AQICjYwvnzkRBOa8QDKcPC_c6Sh - LnKPfu - COmv9j2e3ScuzAgKAAWExMjVjYmRhZjViNzQ5NDM0OWIxNjRlMTJk Y2U0YjQwZDEyODEzZGE2NWQzOGExMjkzZmQxYTljMDE5NmMyZWY0Z mFkYTYyNjljY2MxYTc3YzE2YWI3NjZkYTBlNDc2MWM0ODI3NWNlOD MzZjhhOTM3ZDljMjlkM2Q1ZTZkMmU5DEhlbGxvIHdvcmxkIRUgQ29 uZGl0aW9ucyBhcmUgaGVyZSFBSxMRUAuT16C5YvwgaSBBNFjsqZGS - 8An_3iFhMSSRJna7dNLm7KPeAzu4CDi1E4ebEQroo9vWKLNW_8hO_ YMAA

64. Threshold Fulfillment cf:1:AQICjYwvnzkRBOa8QDKcPC_c6Sh - LnKPfu - COmv9j2e3ScuzAgKAAWExMjVjYmRhZjViNzQ5NDM0OWIxNjRlMTJk Y2U0YjQwZDEyODEzZGE2NWQzOGExMjkzZmQxYTljMDE5NmMyZWY0Z mFkYTYyNjljY2MxYTc3YzE2YWI3NjZkYTBlNDc2MWM0ODI3NWNlOD MzZjhhOTM3ZDljMjlkM2Q1ZTZkMmU5DEhlbGxvIHdvcmxkIRUgQ29 uZGl0aW9ucyBhcmUgaGVyZSFBSxMRUAuT16C5YvwgaSBBNFjsqZGS - 8An_3iFhMSSRJna7dNLm7KPeAzu4CDi1E4ebEQroo9vWKLNW_8hO_ YMAA

44. Boolean Circuits AND OR m m - of - n

45. Boolean Circuits n - of - n 1 - of - n m m - of - n

6. Ledger Needs to Decide 6 EXECUTE ROLLBACK ?

56. Threshold Condition CONDITION = VARUINT BITMASK UINT256 HASH VARUINT MAX_FULLFILLMENT_LENGTH

57. Threshold Condition CONDITION = VARUINT BITMASK UINT256 HASH VARUINT MAX_FULLFILLMENT_LENGTH HASH = SHA256( SHA - 256("https://...#threshold - sha - 256") VARUINT THRESHOLD VARUINT NUM_ELEMENTS FOR EACH ELEMENT ELEMENT_CONDITION )

46. Boolean Circuits n - of - n 1 - of - n m m - of - n 1 n

52. Signature Condition CONDITION = VARUINT BITMASK = 2 UINT256 HASH VARUINT MAX_FULLFILLMENT_LENGTH HASH = SHA256( SHA256("https://...#rsa - sha - 256") VARSTR MODULUS VARSTR MESSAGE_PREFIX )

30. Security vs Flexibility Single Signature Turing Completeness

31. Security vs Flexibility Single Signature Turing Completeness Bit - perfect, standardized programming language

32. Security vs Flexibility Single Signature Turing Completeness "ActiveX of blockchain"

38. If Bob says yes , then yes . Single Signature

19. Condition 19 ● Describes some signed message ● Fulfilled by that message ?

28. Prior Art: Bitcoin Scripts 28 2 <K1> <K2> <K3> 3 CHECKMULTISIGVERIFY ● Forth - like language ● Many opcodes disabled ● Primary use case: m - of - n multi - signature

66. Other Features ● Conditions can be generated from fulfillments ● Max fulfillment length in condition ● Extensible with new crypto primitives ● Required feature set in condition

33. Security vs Flexibility Single Signature Turing Completeness ?

39. If Bob and Lina say yes , then yes . 2 - of - 2 Multi Signature

15. The Receipt 15 ● Signed by recipient ● Proves receipt - of - funds ● Non - repudiable ● Might have data attached ● Pre - agreed before payment

41. If Bob and ( Chandra or Lina ) say yes , then yes . 2 - of - 3 Multi Signature?

65. Recap ● Two Condition Types ○ Signature ○ Threshold ● Conditions are constant size ● Falsy branches can be omitted ● Complex logic is delegated

40. If any two of Bob , Chandra , Lina say yes , then yes . 2 - of - 3 Multi Signature

29. Other Ideas 29 ● Pay - to - script - hash — Andresen ● Tree Signatures — Wuille ● Merkleized Abstract Syntax Trees (MAST) — Rubin et al ● Script2 — Blockstream ● Smart Signatures — Allen et al ● State Channels — Coleman

Views

  • 456 Total Views
  • 348 Website Views
  • 108 Embeded Views

Actions

  • 0 Social Shares
  • 0 Likes
  • 0 Dislikes
  • 0 Comments

Share count

  • 0 Facebook
  • 0 Twitter
  • 0 LinkedIn
  • 0 Google+

Embeds 1

  • 2www.google.com