Skip Ratchet: Massive Hash Chains Without All The Waiting

A presentation at Strange Loop 2022 in September 2022 in St. Louis, MO, USA by Brooklyn Zelenka

Slide 1

Slide 1

โš™ The Skip Ratchet โญ Massive Hash Chains Without All the Waiting Or: An Encrypted Counting Scheme https://eprint.iacr.org/2022/1078 github.com/fission-codes

Slide 2

Slide 2

Whereโ€™s Quinn? @wilton_quinn GET WELL SOON ๐Ÿ™

Slide 3

Slide 3

Brooklyn Zelenka @expede

Slide 4

Slide 4

Brooklyn Zelenka @expede โ€ข Cofounder & CTO at Fission โ€ข https://fission.codes โ€ข @FissionCodes โ€ข Infra & SDK for edge apps โ€ข PLT, VMs, DSys โ€” IANYC! โ€ข Standards: UCAN, EIPs, FVM, Multiformats, &c

Slide 5

Slide 5

Brooklyn Zelenka @expede โ€ข Cofounder & CTO at Fission โ€ข https://fission.codes โ€ข @FissionCodes โ€ข Infra & SDK for edge apps โ€ข PLT, VMs, DSys โ€” IANYC! โ€ข Standards: UCAN, EIPs, FVM, Multiformats, &c https://eprint.iacr.org/2022/1078.pdf

Slide 6

Slide 6

Slide 7

Slide 7

Motivation At a High Level ๐Ÿ’ญ

Slide 8

Slide 8

Motivation ๐Ÿ’ญ Uses

Slide 9

Slide 9

Motivation ๐Ÿ’ญ Uses Local-first data WNFS: distributed private file system Implemented in at least TypeScript, Rust, Golang Electric coins, streaming payment channels HD wallets (key management) Long-running, asymmetric channels

Slide 10

Slide 10

Motivation ๐Ÿ’ญ Deterministic Keys in WNFS / Header / Header / Content /Docs/ Header / Header / Content /Docs/ Header /Docs/ Content /stl.md Header /Docs/ Header /Docs/ Content /stl.md Header /stl.md Content / Content /Docs/ Content /stl.md Header /stl.md Content /stl.md Content

Slide 11

Slide 11

Motivation ๐Ÿ’ญ A Tale As Old as Time

Slide 12

Slide 12

Motivation ๐Ÿ’ญ A Tale As Old as Time PLT cross-pollination driving innovation in cryptography Really simple idea with lots of applications Interesting way of arriving at it / analogies to other areas Letโ€™s talk number systems & applied cryptography!

Slide 13

Slide 13

Slide 14

Slide 14

Fundamentals Hash Chains, Lamport OTP, & More! โ›“

Slide 15

Slide 15

Fundamentals โ›“ Hash Chains

Slide 16

Slide 16

Fundamentals โ›“ Hash Chains Seed

Slide 17

Slide 17

Fundamentals โ›“ Hash Chains Hash Seed Hash Seed Hash(seed)

Slide 18

Slide 18

Fundamentals โ›“ Hash Chains Hash Seed Hash Hash Hash Seed Seed Hash(seed) Hash Hash(Hash(seed))

Slide 19

Slide 19

Fundamentals โ›“ Hash Chains Hash Seed Hash Hash Hash Hash Hash Hash Seed Seed Seed Hash(seed) Hash Hash(Hash(seed)) Hash Hash(Hash(Hash(seed)))

Slide 20

Slide 20

Fundamentals โ›“ Hash Chains Hash Seed Hash Hash Hash Hash Hash Hash Seed Seed Seed Hash(seed) Hash Hash(Hash(seed)) Hash Hash(Hash(Hash(seed))) H3(seed)

Slide 21

Slide 21

Fundamentals โ›“ Pseudoradom Stream

Slide 22

Slide 22

Fundamentals โ›“ Pseudoradom Stream

Slide 23

Slide 23

Fundamentals โ›“ Pseudoradom Stream Seed (ECDH)

Slide 24

Slide 24

Fundamentals โ›“ Pseudoradom Stream โœ‰A โœ‰B โœ‰C Seed (ECDH) Reset โœ‰A โœ‰B โœ‰C

Slide 25

Slide 25

Fundamentals โ›“ Lamport OTP, S/KEY

Slide 26

Slide 26

Fundamentals โ›“ Lamport OTP, S/KEY

Slide 27

Slide 27

Fundamentals โ›“ Lamport OTP, S/KEY Seed

Slide 28

Slide 28

Fundamentals โ›“ Lamport OTP, S/KEY Seed Hash H(Seed)

Slide 29

Slide 29

Fundamentals โ›“ Lamport OTP, S/KEY Seed Hash H(Seed) Hash H2(Seed)

Slide 30

Slide 30

Fundamentals โ›“ Lamport OTP, S/KEY Seed Hash H(Seed) Hash H2(Seed) Hash H3(Seed)

Slide 31

Slide 31

Fundamentals โ›“ Lamport OTP, S/KEY Seed Hash H(Seed) Hash H2(Seed) Hash H3(Seed) Hash H4(Seed)

Slide 32

Slide 32

Fundamentals โ›“ Lamport OTP, S/KEY Seed Hash H(Seed) Hash H2(Seed) Hash H3(Seed) Hash H4(Seed) Prover Verifier

Slide 33

Slide 33

Fundamentals โ›“ Lamport OTP, S/KEY Seed Hash H(Seed) Hash H2(Seed) Hash H3(Seed) Hash H4(Seed) Prover Hx(Seed) Verifier

Slide 34

Slide 34

Fundamentals โ›“ Lamport OTP, S/KEY Seed Hash H(Seed) Hash H2(Seed) Hash H3(Seed) Hash H4(Seed) Prover Hx(Seed) Verifier x H

Slide 35

Slide 35

Fundamentals โ›“ Lamport OTP, S/KEY Preimage Seed Hash H(Seed) Hash H2(Seed) Hash H3(Seed) Hash H4(Seed) Prover Hx(Seed) Verifier x H

Slide 36

Slide 36

Fundamentals โ›“ Lamport OTP, S/KEY Preimage Seed Hash H(Seed) Hash H2(Seed) Hash H3(Seed) Hx-1(Seed) Hash โœ… Hash H4(Seed) Prover Hx(Seed) Verifier x H

Slide 37

Slide 37

Fundamentals โ›“ Lamport OTP, S/KEY Preimage Seed Hash H(Seed) Hash H2(Seed) Hash H3(Seed) Hx-1(Seed) x-1 H Hash โœ… Hash H4(Seed) Prover Hx(Seed) Verifier x H

Slide 38

Slide 38

Fundamentals โ›“ Lamport OTP, S/KEY Preimage Seed Hash H(Seed) Hash H2(Seed) Hash Preimage H3(Seed) Hx-1(Seed) x-1 H Hash โœ… Hash H4(Seed) Prover Hx(Seed) Verifier x H

Slide 39

Slide 39

Fundamentals โ›“ Lamport OTP, S/KEY Preimage Seed Hash H(Seed) Hash H2(Seed) Hx-2(Seed) Hash โœ… Hash Preimage H3(Seed) Hx-1(Seed) x-1 H Hash โœ… Hash H4(Seed) Prover Hx(Seed) Verifier x H

Slide 40

Slide 40

Fundamentals โ›“ Lamport OTP, S/KEY Preimage Seed Hash H(Seed) Hash H2(Seed) Hx-2(Seed) x-2 H Hash โœ… Hash Preimage H3(Seed) Hx-1(Seed) x-1 H Hash โœ… Hash H4(Seed) Prover Hx(Seed) Verifier x H

Slide 41

Slide 41

Fundamentals โ›“ Lamport OTP, S/KEY Preimage Seed Hash H(Seed) Hash H2(Seed) Latest message takes O(n) to catch up One PITM (can be) very bad Hx-2(Seed) Hash โœ… Hash Preimage H3(Seed) Hx-1(Seed) Hash โœ… Hash H4(Seed) Prover Hx(Seed) Verifier Eventually run out of hashes x-2 H x-1 H x H

Slide 42

Slide 42

Fundamentals โ›“ Lamport OTP, S/KEY Preimage Seed Hash H(Seed) Hash H2(Seed) Latest message takes O(n) to catch up One PITM (can be) very bad Hx-2(Seed) Hash โœ… Hash Preimage H3(Seed) Hx-1(Seed) Hash โœ… Hash H4(Seed) Prover Hx(Seed) Verifier Eventually run out of hashes x-2 H x-1 H x H

Slide 43

Slide 43

Fundamentals โ›“ Samy Kamkarโ€™s Drive it like you Hacked it https://www.youtube.com/watch?v=UNgvShN4USU

Slide 44

Slide 44

Fundamentals โ›“ Micropayments (Simplified PayWord)

Slide 45

Slide 45

Fundamentals โ›“ Micropayments (Simplified PayWord) ๐Ÿช™ Seed H(Seed) H2(Seed) H3(Seed) H4(Seed)

Slide 46

Slide 46

Fundamentals โ›“ Micropayments (Simplified PayWord) ๐Ÿช™ Seed H(Seed) H2(Seed) H3(Seed) H4(Seed)

Slide 47

Slide 47

Fundamentals โ›“ Micropayments (Simplified PayWord) ๐Ÿช™ Seed H(Seed) H2(Seed) H3(Seed) H4(Seed)

Slide 48

Slide 48

Fundamentals โ›“ Micropayments (Simplified PayWord) ๐Ÿช™ Seed H(Seed) H2(Seed) H3(Seed) H4(Seed)

Slide 49

Slide 49

Slide 50

Slide 50

Analogy From Counting One Hash, Two Hashโ€ฆ ๐Ÿ”ข

Slide 51

Slide 51

Slide 52

Slide 52

โ€œCan you do Addition?โ€ the White Queen said. โ€œWhatโ€™s one and one and one and one and one and one and one and one and one and one?โ€ โ€œI donโ€™t know,โ€ said Alice. โ€œI lost count.โ€ โ€œShe canโ€™t do Addition,โ€ the Red Queen interrupted. โ€” Lewis Carroll, Through the Looking Glass

Slide 53

Slide 53

Analogy From Counting ๐Ÿ”ข The Ishango Bone Ishango Bone Congo ~20,000 years ๐ŸŒพ Agriculture ~ 11.5k years ๐Ÿท Herding ~ 10k years Lebombo Bone South Africa ~44,000 years Joeykentin CC-BY-SA 4.0 https://commons.wikimedia.org/wiki/File:Ishango_bone.jpg

Slide 54

Slide 54

Analogy From Counting ๐Ÿ”ข Unary Counting

Slide 55

Slide 55

Analogy From Counting ๐Ÿ”ข Unary Counting | || ||| |||| ||||| |||||| ||||||| |||||||| ||||||||| ||||||||||

Slide 56

Slide 56

Analogy From Counting ๐Ÿ”ข Unary Counting | || ||| |||| | || ||| |||| ||||| |||||| ||||||| |||||||| ||||||||| ||||||||||

Slide 57

Slide 57

Analogy From Counting ๐Ÿ”ข Unary Counting | || ||| |||| ||||| |||||| ||||||| |||||||| ||||||||| |||||||||| | || ||| |||| |||| |||| | |||| || |||| ||| |||| |||| |||| ||||

Slide 58

Slide 58

Analogy From Counting ๐Ÿ”ข Unary Counting | || ||| |||| ||||| |||||| ||||||| |||||||| ||||||||| |||||||||| | || ||| |||| |||| |||| | |||| || |||| ||| |||| |||| |||| |||| || ||||

Slide 59

Slide 59

Analogy From Counting ๐Ÿ”ข Unary Constructors data Peano = Zero | Succ Peano

Slide 60

Slide 60

Analogy From Counting ๐Ÿ”ข Unary Constructors data Peano = Zero | Succ Peano Zero

Slide 61

Slide 61

Analogy From Counting ๐Ÿ”ข Unary Constructors data Peano = Zero | Succ Peano Succ Zero +1 Zero

Slide 62

Slide 62

Analogy From Counting ๐Ÿ”ข Unary Constructors data Peano = Zero | Succ Peano Succ Zero +1 Succ Succ Zero Zero +1

Slide 63

Slide 63

Analogy From Counting ๐Ÿ”ข From Constructors to Functions 0 ฮปf x โ†’ x

Slide 64

Slide 64

Analogy From Counting ๐Ÿ”ข From Constructors to Functions 0 ฮปf x โ†’ x 1 ฮปf x โ†’ f x

Slide 65

Slide 65

Analogy From Counting ๐Ÿ”ข From Constructors to Functions 0 ฮปf x โ†’ x 1 ฮปf x โ†’ f x 2 ฮปf x โ†’ f (f x)

Slide 66

Slide 66

Analogy From Counting ๐Ÿ”ข From Constructors to Functions 0 ฮปf x โ†’ x 1 ฮปf x โ†’ f x 2 ฮปf x โ†’ f (f x) 3 ฮปf x โ†’ f (f (f x))

Slide 67

Slide 67

Analogy From Counting ๐Ÿ”ข From Constructors to Functions 0 ฮปf x โ†’ x 1 ฮปf x โ†’ f x 2 ฮปf x โ†’ 3 ฮปf x โ†’ f (f (f x)) f (f x)

Slide 68

Slide 68

Analogy From Counting ๐Ÿ”ข From Constructors to Functions 0 ฮปf x โ†’ x 1 ฮปf x โ†’ f x 2 ฮปf x โ†’ 3 ฮปf x โ†’ f (f (f x)) 3 h f (f x) x โ†’ h (h (h x))

Slide 69

Slide 69

Analogy From Counting ๐Ÿ”ข Naive ||| Succ (Succ (Succ Zero)) ฮปf x โ†’ f (f (f x)) h (h (h x))

Slide 70

Slide 70

Positional Numerals Abstraction By Symbolic Juxtaposition ๐Ÿงฎ

Slide 71

Slide 71

Slide 72

Slide 72

Mathematics is only the art of saying the same thing in different words โ€” Bertrand Russell

Slide 73

Slide 73

Positional Numerals ๐Ÿงฎ Positional Systems

Slide 74

Slide 74

Positional Numerals ๐Ÿงฎ Positional Systems Image Credit: National Numismatic Collection at the Smithsonian Institution, CC BY-SA 3.0

Slide 75

Slide 75

Positional Numerals ๐Ÿงฎ Positional Systems 9 Image Credit: National Numismatic Collection at the Smithsonian Institution, CC BY-SA 3.0

Slide 76

Slide 76

Positional Numerals ๐Ÿงฎ Positional Systems 9 Image Credit: National Numismatic Collection at the Smithsonian Institution, CC BY-SA 3.0

Slide 77

Slide 77

Positional Numerals ๐Ÿงฎ Positional Systems 100 โ†” ๅฃนไฝฐ 1000 โ†” ๅฃนไปŸ 9 Image Credit: National Numismatic Collection at the Smithsonian Institution, CC BY-SA 3.0

Slide 78

Slide 78

Positional Numerals ๐Ÿงฎ Positional Digits

Slide 79

Slide 79

Positional Numerals ๐Ÿงฎ Positional Digits Numeral X 100 X 10 X1

Slide 80

Slide 80

Positional Numerals ๐Ÿงฎ Positional Digits Numeral X 100 X 10 X1 0 0 0 0

Slide 81

Slide 81

Positional Numerals ๐Ÿงฎ Positional Digits Numeral X 100 X 10 X1 0 0 0 0 11 0 1 1

Slide 82

Slide 82

Positional Numerals ๐Ÿงฎ Positional Digits Numeral X 100 X 10 X1 0 0 0 0 11 0 1 1 582 5 8 2

Slide 83

Slide 83

Positional Numerals ๐Ÿงฎ Positional Digits Numeral X 10010 X 1010 X 110 0 0 0 0 11 0 1 1 582 5 8 2

Slide 84

Slide 84

Positional Numerals ๐Ÿงฎ Mixed-Radix ๐Ÿฅด Numeral X 12111 X 412 X 14 0 0 0 0 11 0 2 3 582 44 1 2

Slide 85

Slide 85

Positional Numerals ๐Ÿงฎ Mixed-Radix

Slide 86

Slide 86

Positional Numerals ๐Ÿงฎ Mixed-Radix 2022 Sept 22 11:22:03.987 60 minutes / hour 24 hours / day 7 days / week 52 weeks / year

Slide 87

Slide 87

Positional Numerals ๐Ÿงฎ Mixed-Radix 2022 Sept 22 11:22:03.987 60 minutes / hour 24 hours / day 7 days / week 52 weeks / year

Slide 88

Slide 88

Positional Numerals ๐Ÿงฎ Compound Hash

Slide 89

Slide 89

Positional Numerals ๐Ÿงฎ Compound Hash Numeral โ€œhundredsโ€ โ€œtensโ€ โ€œonesโ€

Slide 90

Slide 90

Positional Numerals ๐Ÿงฎ Compound Hash Numeral โ€œhundredsโ€ โ€œtensโ€ โ€œonesโ€ X + 0 โ€œhundredsโ€ โ€œtensโ€ โ€œonesโ€

Slide 91

Slide 91

Positional Numerals ๐Ÿงฎ Compound Hash Numeral โ€œhundredsโ€ โ€œtensโ€ โ€œonesโ€ X + 0 โ€œhundredsโ€ โ€œtensโ€ โ€œonesโ€ h(โ€œtensโ€) h(โ€œonesโ€) X + 11 โ€œhundredsโ€ 523c079f58465edb79c834fbf460809 d413f65286221536df21b59e5d29215 9cf864039bb511c072beb35c568c80e e2817d8cc70a1d6ef4273e7c63c6b1a df 08

Slide 92

Slide 92

Positional Numerals ๐Ÿงฎ Compound Hash Numeral โ€œhundredsโ€ โ€œtensโ€ โ€œonesโ€ X + 0 โ€œhundredsโ€ โ€œtensโ€ โ€œonesโ€ h(โ€œtensโ€) h(โ€œonesโ€) X + 11 X + 582 โ€œhundredsโ€ h5(โ€œhundredsโ€) 523c079f58465edb79c834fbf460809 d413f65286221536df21b59e5d29215 9cf864039bb511c072beb35c568c80e e2817d8cc70a1d6ef4273e7c63c6b1a df 08 h8(โ€œtensโ€) h2(โ€œonesโ€) b7fee5aff5d93be282a3826766c8f4a 6d00cd80a2f03d126077401fa4b9512 e6f92be646346875e815ebd95fbc0e3 3af7a35e620e78b300c5a8fd8791e77 9d4e79ec3f4ea7ae36099af5a39478e b2412e2d630b2325decdbdb4a0eeb34 cb f7 01

Slide 93

Slide 93

Positional Numerals ๐Ÿงฎ Compound Hash Numeral โ€œhundredsโ€ โ€œtensโ€ โ€œonesโ€ X + 0 โ€œhundredsโ€ โ€œtensโ€ โ€œonesโ€ h(โ€œtensโ€) h(โ€œonesโ€) X + 11 X + 582 โ€œhundredsโ€ h5(โ€œhundredsโ€) 523c079f58465edb79c834fbf460809 d413f65286221536df21b59e5d29215 9cf864039bb511c072beb35c568c80e e2817d8cc70a1d6ef4273e7c63c6b1a df 08 h8(โ€œtensโ€) h2(โ€œonesโ€) b7fee5aff5d93be282a3826766c8f4a 6d00cd80a2f03d126077401fa4b9512 e6f92be646346875e815ebd95fbc0e3 3af7a35e620e78b300c5a8fd8791e77 9d4e79ec3f4ea7ae36099af5a39478e b2412e2d630b2325decdbdb4a0eeb34 cb f7 01

Slide 94

Slide 94

Positional Numerals ๐Ÿงฎ Denominated PayWord https://sci-hub.ru/https://link.springer.com/article/10.1007/s10623-003-1162-6

Slide 95

Slide 95

Positional Numerals ๐Ÿงฎ Denominated PayWord L H(L) H2(L) https://sci-hub.ru/https://link.springer.com/article/10.1007/s10623-003-1162-6

Slide 96

Slide 96

Positional Numerals ๐Ÿงฎ Denominated PayWord L H(L) H2(L) M H(M) H2(M) https://sci-hub.ru/https://link.springer.com/article/10.1007/s10623-003-1162-6 H3(M) H4(M)

Slide 97

Slide 97

Positional Numerals ๐Ÿงฎ Denominated PayWord L H(L) H2(L) M H(M) H2(M) H3(M) S H(S) H2(S) H3(S) https://sci-hub.ru/https://link.springer.com/article/10.1007/s10623-003-1162-6 H4(M)

Slide 98

Slide 98

Positional Numerals ๐Ÿงฎ Denominated PayWord $20s L H(L) H2(L) $5s M H(M) H2(M) H3(M) $1s S H(S) H2(S) H3(S) https://sci-hub.ru/https://link.springer.com/article/10.1007/s10623-003-1162-6 H4(M)

Slide 99

Slide 99

Positional Numerals ๐Ÿงฎ Denominated PayWord ๐Ÿ™ˆ ๐Ÿ‘€ $20s L H(L) H2(L) $5s M H(M) H2(M) H3(M) $1s S H(S) H2(S) H3(S) https://sci-hub.ru/https://link.springer.com/article/10.1007/s10623-003-1162-6 H4(M)

Slide 100

Slide 100

Positional Numerals ๐Ÿงฎ Denominated PayWord ๐Ÿ™ˆ ๐Ÿ‘€ $20s L H(L) H2(L) $5s M H(M) H2(M) H3(M) $1s S H(S) H2(S) H3(S) https://sci-hub.ru/https://link.springer.com/article/10.1007/s10623-003-1162-6 H4(M)

Slide 101

Slide 101

Positional Numerals ๐Ÿงฎ Denominated PayWord ๐Ÿ™ˆ ๐Ÿ‘€ $20s L H(L) H2(L) $5s M H(M) H2(M) H3(M) $1s S H(S) H2(S) H3(S) https://sci-hub.ru/https://link.springer.com/article/10.1007/s10623-003-1162-6 H4(M)

Slide 102

Slide 102

Positional Numerals ๐Ÿงฎ Denominated PayWord ๐Ÿ™ˆ ๐Ÿ‘€ $20s L H(L) H2(L) $5s M H(M) H2(M) H3(M) $1s S H(S) H2(S) H3(S) https://sci-hub.ru/https://link.springer.com/article/10.1007/s10623-003-1162-6 H4(M)

Slide 103

Slide 103

Positional Numerals ๐Ÿงฎ Denominated PayWord ๐Ÿ™ˆ ๐Ÿ‘€ $20s L H(L) H2(L) $5s M H(M) H2(M) H3(M) $1s S H(S) H2(S) H3(S) https://sci-hub.ru/https://link.springer.com/article/10.1007/s10623-003-1162-6 H4(M)

Slide 104

Slide 104

Slide 105

Slide 105

Analogy From Data Structures Who Doesnโ€™t Love DAGs In Their Crypto? ๐ŸŒฒ

Slide 106

Slide 106

Analogy From Data Structures ๐ŸŒฒ Deterministic Skip List

Slide 107

Slide 107

Analogy From Data Structures ๐ŸŒฒ Deterministic Skip List Nil A B C D E F G H

Slide 108

Slide 108

Analogy From Data Structures ๐ŸŒฒ Deterministic Skip List Nil A B C D E F G H

Slide 109

Slide 109

Analogy From Data Structures ๐ŸŒฒ Deterministic Skip List Nil A B C D E F G H

Slide 110

Slide 110

Analogy From Data Structures ๐ŸŒฒ Deterministic Skip List Nil A B C D E F G H

Slide 111

Slide 111

Analogy From Data Structures ๐ŸŒฒ Deterministic Skip List Nil A B C D E F G H

Slide 112

Slide 112

Analogy From Data Structures ๐ŸŒฒ Deterministic Skip List Nil D H B A F C E G

Slide 113

Slide 113

Analogy From Data Structures ๐ŸŒฒ Simplified Binary Skip Ratchet

Slide 114

Slide 114

Analogy From Data Structures ๐ŸŒฒ Simplified Binary Skip Ratchet L M S

Slide 115

Slide 115

Analogy From Data Structures ๐ŸŒฒ Simplified Binary Skip Ratchet L M S 0002

Slide 116

Slide 116

Analogy From Data Structures ๐ŸŒฒ Simplified Binary Skip Ratchet L L M M S 0002 +1 h(S) 0012

Slide 117

Slide 117

Analogy From Data Structures ๐ŸŒฒ Simplified Binary Skip Ratchet L L L M M h(M) S 0002 +1 h(S) 0012 +1 Sโ€™ 0102

Slide 118

Slide 118

Analogy From Data Structures ๐ŸŒฒ Simplified Binary Skip Ratchet L L L M M h(M) S 0002 +1 h(S) 0012 Next M +1 Sโ€™ 0102

Slide 119

Slide 119

Analogy From Data Structures ๐ŸŒฒ Simplified Binary Skip Ratchet L L L L M M h(M) h(M) S 0002 +1 h(S) 0012 Next M +1 Sโ€™ 0102 +1 h(Sโ€™) 0112

Slide 120

Slide 120

Analogy From Data Structures ๐ŸŒฒ Simplified Binary Skip Ratchet L L L L h(L) M M h(M) h(M) Mโ€™ S 0002 +1 h(S) 0012 Next M +1 Sโ€™ 0102 +1 h(Sโ€™) 0112 +1 Sโ€ 1002

Slide 121

Slide 121

Analogy From Data Structures ๐ŸŒฒ Simplified Binary Skip Ratchet L L L L h(L) M M h(M) h(M) Mโ€™ S 0002 +1 h(S) 0012 Next M +1 Sโ€™ 0102 +1 h(Sโ€™) 0112 Next M +1 Sโ€ 1002

Slide 122

Slide 122

Analogy From Data Structures ๐ŸŒฒ Simplified Binary Skip Ratchet Next L Next L Next L Next L L L L L h(L) M M h(M) h(M) Mโ€™ S 0002 +1 h(S) 0012 Next M +1 Sโ€™ 0102 +1 h(Sโ€™) 0112 Next M +1 Sโ€ 1002

Slide 123

Slide 123

Analogy From Data Structures ๐ŸŒฒ Simplified Binary Skip Ratchet Next L Next L Next L Next L L L L L h(L) M M h(M) h(M) Mโ€™ S 0002 +1 h(S) 0012 Next M +1 Sโ€™ 0102 +1 h(Sโ€™) 0112 Next M +1 Sโ€ 1002

Slide 124

Slide 124

Analogy From Data Structures ๐ŸŒฒ Deriving Secrets L L โŠ• M M โŠ• S โ†’ S OUT

Slide 125

Slide 125

Analogy From Data Structures ๐ŸŒฒ Deriving Secrets With Secrets Seed +1 State 1 +1 State 2 +1 State 3 +1 State 4 +1 State 5

Slide 126

Slide 126

Analogy From Data Structures ๐ŸŒฒ Deriving Secrets With Secrets Seed +1 State 1 โŠ• Secret 1 +1 State 2 โŠ• Secret 2 +1 State 3 โŠ• Secret 3 +1 State 4 โŠ• Secret 4 +1 State 5 โŠ• Secret 5

Slide 127

Slide 127

Analogy From Data Structures ๐ŸŒฒ Deriving Secrets With Secrets Seed +1 State 1 โŠ• Secret 1 +1 State 2 โŠ• Secret 2 +1 State 3 โŠ• Secret 3 +1 State 4 โŠ• Secret 4 +1 State 5 โŠ• Secret 5

Slide 128

Slide 128

Analogy From Data Structures ๐ŸŒฒ Deriving Secrets With Secrets Seed +1 State 1 +1 โŠ• Secret 1 State 2 โŠ• โŒ Secret 2 +1 State 3 โŠ• Secret 3 +1 State 4 โŠ• Secret 4 +1 State 5 โŠ• Secret 5

Slide 129

Slide 129

Analogy From Data Structures ๐ŸŒฒ Deriving Secrets With Secrets Seed +1 State 1 +1 โŠ• Secret 1 State 2 โŠ• โŒ Secret 2 +1 State 3 โŠ• Secret 3 +1 State 4 โŠ• Secret 4 +1 State 5 โŠ• Secret 5

Slide 130

Slide 130

Security Who Hashes the Hashers? ๐Ÿ”

Slide 131

Slide 131

Security ๐Ÿ” Zeroing & Epochs

Slide 132

Slide 132

Security ๐Ÿ” Zeroing & Epochs 10 11 โ€ฆ 18 19 20 21 22 โ€ฆ

Slide 133

Slide 133

Security ๐Ÿ” Zeroing & Epochs 10 11 โ€ฆ 18 19 20 21 22 โ€ฆ 1x10

Slide 134

Slide 134

Security ๐Ÿ” Zeroing & Epochs 10 11 โ€ฆ 18 19 20 21 22 โ€ฆ 1x10 Zero 0

Slide 135

Slide 135

Security ๐Ÿ” Zeroing & Epochs 10 11 โ€ฆ 18 19 20 21 22 โ€ฆ 1x10 Zero +1 0 1

Slide 136

Slide 136

Security ๐Ÿ” Zeroing & Epochs 10 11 โ€ฆ 18 19 20 21 22 โ€ฆ 1x10 Zero +1 0 1 8

Slide 137

Slide 137

Security ๐Ÿ” Zeroing & Epochs 10 11 โ€ฆ 18 19 20 21 22 โ€ฆ 1x10 Zero +1 0 +1 1 8 9

Slide 138

Slide 138

Security ๐Ÿ” Zeroing & Epochs 10 11 โ€ฆ 18 19 20 21 22 โ€ฆ 1x10 Zero +1 0 +1 1 8 9

Slide 139

Slide 139

Security ๐Ÿ” Zeroing & Epochs 10 11 โ€ฆ 18 19 20 21 22 โ€ฆ 1x10 2x10 Zero +1 0 +1 1 8 9

Slide 140

Slide 140

Security ๐Ÿ” Zeroing & Epochs 10 11 โ€ฆ 18 19 20 21 22 โ€ฆ 1x10 2x10 Zero Zero +1 0 +1 1 8 9 0

Slide 141

Slide 141

Security ๐Ÿ” Zeroing & Epochs 10 11 โ€ฆ 18 19 20 21 22 โ€ฆ 1x10 2x10 Zero Zero +1 0 +1 1 8 9 0 +1 1

Slide 142

Slide 142

Security ๐Ÿ” Zeroing & Epochs 10 11 โ€ฆ 18 19 20 21 22 โ€ฆ 1x10 2x10 Zero Zero +1 0 +1 1 8 9 0 +1 1

Slide 143

Slide 143

Security ๐Ÿ” Zeroing & Epochs L hash h(L) M hash h(M)

Slide 144

Slide 144

Security ๐Ÿ” Zeroing & Epochs L Salt hash h(L) M hash h(M)

Slide 145

Slide 145

Security ๐Ÿ” Zeroing & Epochs L Salt Merge hash h(L) M hash h(M)

Slide 146

Slide 146

Security ๐Ÿ” Zeroing & Epochs L Salt Merge hash hash h(L) M hash h(M)

Slide 147

Slide 147

Security ๐Ÿ” Zeroing & Epochs L Merge Salt M-1 ๐Ÿ” h(M-1) hash hash h(L) M hash h(M)

Slide 148

Slide 148

Security ๐Ÿ” Setup Seed hash hash pre-L Merge hash pre-M L @ 1/2 hash L @ 1/2 L @ 1/2 M @ 1/2 M @ 1/2 hash Merge Salt Merge hash S @ 1/2 hash S @ 2/2 M @ 2/2 hash Sโ€™ @ 1/2

Slide 149

Slide 149

Security ๐Ÿ” Random Start ๐Ÿ™ˆ๐ŸŽฒ

Slide 150

Slide 150

Security ๐Ÿ” Random Start ๐Ÿ™ˆ๐ŸŽฒ L

Slide 151

Slide 151

Security ๐Ÿ” Random Start ๐Ÿ™ˆ๐ŸŽฒ L-1 +1 L

Slide 152

Slide 152

Security ๐Ÿ” Random Start ๐Ÿ™ˆ๐ŸŽฒ L-1 +1 L

Slide 153

Slide 153

Security ๐Ÿ” Random Start ๐Ÿ™ˆ๐ŸŽฒ L-1 +1 L M

Slide 154

Slide 154

Security ๐Ÿ” Random Start ๐Ÿ™ˆ๐ŸŽฒ ๐ŸŽฒ5 L-1 +1 L M

Slide 155

Slide 155

Security ๐Ÿ” Random Start ๐Ÿ™ˆ๐ŸŽฒ ๐ŸŽฒ5 L-1 +1 L M +4

Slide 156

Slide 156

Security ๐Ÿ” Random Start ๐Ÿ™ˆ๐ŸŽฒ ๐ŸŽฒ5 L-1 +1 L M +4 M+4

Slide 157

Slide 157

Security ๐Ÿ” Random Start ๐Ÿ™ˆ๐ŸŽฒ ๐ŸŽฒ5 L-1 +1 L M +4 M+4 +1 M+5

Slide 158

Slide 158

Security ๐Ÿ” Random Start ๐Ÿ™ˆ๐ŸŽฒ ๐ŸŽฒ5 L-1 +1 L M +4 M+4 M+5 +1 S

Slide 159

Slide 159

Security ๐Ÿ” Random Start ๐Ÿ™ˆ๐ŸŽฒ ๐ŸŽฒ5 L-1 ๐ŸŽฒ 42 +1 L M +4 M+4 M+5 +1 S

Slide 160

Slide 160

Security ๐Ÿ” Random Start ๐Ÿ™ˆ๐ŸŽฒ ๐ŸŽฒ5 L-1 ๐ŸŽฒ 42 +1 L M +4 M+4 M+5 +1 S +42 S+42

Slide 161

Slide 161

Security ๐Ÿ” Random Start ๐Ÿ™ˆ๐ŸŽฒ ๐ŸŽฒ5 L-1 ๐ŸŽฒ 42 +1 L M +4 M+4 M+5 +1 S +42 S+42

Slide 162

Slide 162

Security ๐Ÿ” Unary + Positional

Slide 163

Slide 163

Security ๐Ÿ” Unary + Positional L-1 h(M) h(S) L+1 L M Sโ€™ h(M) h(Sโ€™) Sโ€ Mโ€™ h2(M) h(Sโ€) Sโ€โ€™ h(Sโ€โ€™) Sโ€โ€ h(M) h(Sโ€โ€) Sโ€โ€โ€™ h(S)

Slide 164

Slide 164

Security ๐Ÿ” Unary + Positional Unary L-1 h(M) h(S) L+1 L M Sโ€™ h(M) h(Sโ€™) Sโ€ Mโ€™ h2(M) h(Sโ€) Sโ€โ€™ h(Sโ€โ€™) Sโ€โ€ h(M) h(Sโ€โ€) Sโ€โ€โ€™ h(S)

Slide 165

Slide 165

Security ๐Ÿ” Unary + Positional Unary L-1 h(M) h(S) L+1 L M Sโ€™ h(M) h(Sโ€™) Sโ€ Mโ€™ h2(M) h(Sโ€) Sโ€โ€™ Positional h(Sโ€โ€™) Sโ€โ€ h(M) h(Sโ€โ€) Sโ€โ€โ€™ h(S)

Slide 166

Slide 166

Security ๐Ÿ” Limiting Ranges ๐Ÿ—œ

Slide 167

Slide 167

Security ๐Ÿ” Limiting Ranges ๐Ÿ—œ G L M S

Slide 168

Slide 168

Security ๐Ÿ” Limiting Ranges ๐Ÿ—œ G L M S

Slide 169

Slide 169

Security ๐Ÿ” Limiting Ranges ๐Ÿ—œ G L G+L M S

Slide 170

Slide 170

Security ๐Ÿ” Limiting Ranges ๐Ÿ—œ G G G G L L L L G+L G+L G+L G+L M M h(M) h(M) S h(S) Sโ€™ h(Sโ€™)

Slide 171

Slide 171

Security ๐Ÿ” Limiting Ranges ๐Ÿ—œ G G G G L L L L G+L G+L G+L G+L M M h(M) h(M) S h(S) Sโ€™ h(Sโ€™)

Slide 172

Slide 172

Security ๐Ÿ” Limiting Ranges ๐Ÿ—œ G G G G G G L L L L h(L) h(L) G+L G+L G+L G+L G + h(L) G + h(L) M M h(M) h(M) Mโ€™ Mโ€™ S h(S) Sโ€™ h(Sโ€™) Sโ€ h(Sโ€)

Slide 173

Slide 173

Security ๐Ÿ” Range Access G+(L-1) h(M) h(S) G+(L+1) G+L M Sโ€™ h(M) h(Sโ€™) Sโ€ Mโ€™ h2(M) h(Sโ€) Sโ€โ€™ h(Sโ€โ€™) Sโ€โ€ h(M) h(Sโ€โ€) Sโ€โ€โ€™ h(S)

Slide 174

Slide 174

Security ๐Ÿ” Range Access G+(L-1) h(M) h(S) G+(L+1) G+L M Sโ€™ h(M) h(Sโ€™) Sโ€ Mโ€™ h2(M) h(Sโ€) Sโ€โ€™ h(Sโ€โ€™) Sโ€โ€ h(M) h(Sโ€โ€) Sโ€โ€โ€™ h(S)

Slide 175

Slide 175

Security ๐Ÿ” Range Access G+(L-1) h(M) h(S) G+(L+1) G+L M Sโ€™ h(M) h(Sโ€™) Sโ€ Mโ€™ h2(M) h(Sโ€) Sโ€โ€™ h(Sโ€โ€™) Sโ€โ€ h(M) h(Sโ€โ€) Sโ€โ€โ€™ h(S)

Slide 176

Slide 176

Security ๐Ÿ” Range Access G+(L-1) h(M) h(S) G+(L+1) G+L M Sโ€™ h(M) h(Sโ€™) Sโ€ Mโ€™ h2(M) h(Sโ€) Sโ€โ€™ h(Sโ€โ€™) Sโ€โ€ h(M) h(Sโ€โ€) Sโ€โ€โ€™ h(S)

Slide 177

Slide 177

Security ๐Ÿ” Range Access G+(L-1) h(M) h(S) G+(L+1) G+L M Sโ€™ h(M) h(Sโ€™) Sโ€ Mโ€™ h2(M) h(Sโ€) Sโ€โ€™ h(Sโ€โ€™) Sโ€โ€ h(M) h(Sโ€โ€) Sโ€โ€โ€™ h(S)

Slide 178

Slide 178

Security ๐Ÿ” Range Access G+(L-1) h(M) h(S) G+(L+1) G+L M Sโ€™ h(M) h(Sโ€™) Sโ€ Mโ€™ h2(M) h(Sโ€) Sโ€โ€™ h(Sโ€โ€™) Sโ€โ€ h(M) h(Sโ€โ€) Sโ€โ€โ€™ h(S)

Slide 179

Slide 179

Wrap Up ๐ŸŽ

Slide 180

Slide 180

Wrap Up ๐ŸŽ Skip Ratchet Seed +1 State 1 โŠ• Secret 1 +1 State 2 โŠ• Secret 2 +1 State 3 โŠ• Secret 3 +1 State 4 โŠ• Secret 4 +1 State 5 โŠ• Secret 5

Slide 181

Slide 181

Wrap Up ๐ŸŽ Takeaways

Slide 182

Slide 182

Wrap Up ๐ŸŽ Takeaways Really fast secrets thanks to positional structure In production in several systems, still finding more uses Very disparate ideas share some common core Many ways to tackle a problem Thereโ€™s still tons of low hanging fruit out there!

Slide 183

Slide 183

Wrap Up ๐ŸŽ WNFS: Skip Ratchet In Situ B C A Z W X Y

Slide 184

Slide 184

Wrap Up ๐ŸŽ WNFS: Skip Ratchet In Situ PB PC PA PZ PW PX B PY C A Z W X Y

Slide 185

Slide 185

๐ŸŽ‰ Thank You, Strange Loop @expede brooklyn@fission.codes https://eprint.iacr.org/2022/1078.pdf