Current state and the future of wallets Building On Bitcoin 3th of - - PowerPoint PPT Presentation

current state and the future of wallets
SMART_READER_LITE
LIVE PREVIEW

Current state and the future of wallets Building On Bitcoin 3th of - - PowerPoint PPT Presentation

Current state and the future of wallets Building On Bitcoin 3th of July 2018 dev@ jonasschnelli .ch PGP: CA1A2908DCE2F13074C62CDE1EB776BB03C7922D Privacy Security Trust Privacy Transaction / scripts privacy Security Trust No-trust


slide-1
SLIDE 1

Building On Bitcoin 3th of July 2018

dev@jonasschnelli.ch


PGP: CA1A2908DCE2F13074C62CDE1EB776BB03C7922D

Current state and the future of wallets

slide-2
SLIDE 2

Trust Privacy Security

slide-3
SLIDE 3

Trust Privacy Security

Transaction / scripts privacy Keystorage Cold-Storage No-trust required Chain-Validation Consensus

slide-4
SLIDE 4

Trust Privacy Security ✓ ❌ ✓

No scripts sharing Full validation Consensus Missing cold storage

slide-5
SLIDE 5

Trust Privacy Security ❌ ❌

Scripts sharing Central validation

No control over keys

slide-6
SLIDE 6

Trust Privacy Security✓ ❌ ❌

Scripts sharing Central validation Cold storage

slide-7
SLIDE 7

Trust Privacy Security ❌

Scripts sharing

Exposed keys BreadWallet Android Wallet

SPV validation

slide-8
SLIDE 8

Trust Privacy Security ❌

Scripts sharing

Electrum

SPV validation Missing cold storage

slide-9
SLIDE 9

Centralized validation

slide-10
SLIDE 10

Current state:

New/novice users tend to use centralised validation.

slide-11
SLIDE 11

X Required validation device X Validation lead time X Bandwidth and CPU requirements

Current state:

New/novice users tend to use centralised validation.

slide-12
SLIDE 12

Centralized validation in practice

  • ~200GB+ disk space (large indexes)
  • Heavy disk I/O through indexing
  • Full validation „underneath“ (Bitcoin Core)
slide-13
SLIDE 13

Downsides of centralized validation

X Fake transactions / transaction omission X No control over the consensus layer X Abandons privacy completely

slide-14
SLIDE 14

Advantages of centralized validation

✓ Immediately ready to use ✓ Fast wallet recovery ✓ Very low bandwidth costs ✓ Can serve large amount of wallets

slide-15
SLIDE 15

Centralized key-storage

slide-16
SLIDE 16

X „Owns“ no Bitcoins X „Owns“ only the right to eventually access

and move Bitcoins

Centralized key-storage

✓ No security setup required

Users are often not aware!

slide-17
SLIDE 17

SPV

slide-18
SLIDE 18

SPV

Verify headers Can check some consensus rules Weak 0-conf handling

❌ ✓ ✓

Network „leeches“

Rely on a „free service“

Fee estimation is probably impossible

Often rely on DNS seeds

slide-19
SLIDE 19

SPV

Acceptable Bandwidth consumption

Acceptable amount of decentralization

slide-20
SLIDE 20

SPV privacy?

slide-21
SLIDE 21

SPV

BIP37 - Bloom Filters

Electrum SPV

BIP158 - Compact Block Filters

Low bandwidth

Can filter mempool

X

No privacy

X

Personal filtering
 (incentive model)

Low bandwidth

MITM protection through SSL

X

(No privacy)

X

Personal filtering
 (incentive model)

„more“ bandwidth

Privacy (?)

Widely useful filter structures

Committable through soft-fork

X

not (widely) deployed

X

no (useful) technique to filter mempool

privacy

slide-22
SLIDE 22

SPV

Full block SPV

X

„high“ bandwidth costs

✓ Can „migrate" to full validation ✓ Privacy ✓ Reduced consensus checks

privacy

slide-23
SLIDE 23

SPV

understanding filtering

SPV BF BLOOM FILTER PEER WITH | NODE_BLOOM RELEVANT TRANSACTIONS (FALSE POSITIVES) Filters transactions for the client

BIP37 - Bloom Filters

slide-24
SLIDE 24

SPV

understanding filtering

SPV BF BLOOM FILTER MEN IN THE MIDDLE PEER WITH | NODE_BLOOM

ISP, WIFI PROVIDER, STATE ACTORS

INTERNET TRAFFIC

BIP37 - Bloom Filters

RELEVANT TRANSACTIONS (FALSE POSITIVES) Filters transactions for the client

slide-25
SLIDE 25

SPV

understanding filtering

SPV BF BLOCK FILTERS BLOCKS Client finds relevant Blocks NODE SUPPORTING BIP158

BIP158 - Client Side Filtering

slide-26
SLIDE 26

SPV

understanding filtering BIP158 - Client Side Filtering

1 day = ~2.88MB
 30 days = ~86.4 MB 7 days = ~20.16 MB
 90 days = ~259.2 MB

144 blocks ~= 144MB — Filtersize: ~2%

slide-27
SLIDE 27

SPV

understanding filtering FULL BLOCK / HYBRID

1 day = ~144MB
 30 days = ~4.32 GB 7 days = ~1’008 MB
 90 days = ~12.96 GB

144 blocks ~= 144MB

slide-28
SLIDE 28

Decentralization Resource costs Centralized validation solutions Electrum (SPV) Core / full node SPV

slide-29
SLIDE 29

The future of wallets

FUTURE OF WALLETS?

slide-30
SLIDE 30

Trust Privacy Security

Transaction / scripts privacy Keystorage Cold-Storage No-trust required Chain-Validation Consensus / p2p

✓ ✓ ✓

slide-31
SLIDE 31

Catching up a month of blocks (45min; consumer system) Acceptable CPU / memory rates once in-sync

slide-32
SLIDE 32

Hybrid SPV

Sync and check headers Download relevant blocks
 (use BIP158) Use SPV
 Wallet is ready to use Download missing blocks Full-Validation Upgrade transactions once they are fully validated Throttled Throttled

slide-33
SLIDE 33

Privacy and self- verification (no trust)
 is not an opt-in model

slide-34
SLIDE 34

Keep users away from trusted third parties

slide-35
SLIDE 35

UTXO set commitments

{ "height": 530075, "bestblock": "0000000000000000002fe10af166937d506ece7fad4381fda6cb86e9e1404be2", "transactions": 24567998, "txouts": 50460119, "bogosize": 3798659787, "hash_serialized_2": "090c1276fe42f98246840fabac42dfa0e8b89b428f81ab16d53d69ae669bec4b", "disk_size": 2921681465, "total_amount": 17125767.33401612 }

slide-36
SLIDE 36

BIP174

Partially Signed Bitcoin Transaction Format
 (PSBT)

RAW TX PREV-INPUT PREV-INPUT REDEEM SCRIPT WITNESS SCRIPT BIP32 PATHS BIP32 PATHS PARTIAL SIGNATURES PARTIAL SIGNATURES

slide-37
SLIDE 37
slide-38
SLIDE 38

0.17

Fundrawtransaction ( Enforce WatchOnly ) Multiwallet Dynamic creation and
 loading of wallets PROXY BRIDGE

HTTPS TOR STRATUM (TCP/TLS)

( ScanTxOutSet )

PRUNED

NODE_NETWORK_LIMITED

slide-39
SLIDE 39
slide-40
SLIDE 40

Personal Electrum Server + =

Chris Belcher’s

slide-41
SLIDE 41
slide-42
SLIDE 42

WALLET OF THE FUTURE

MIXED HARDWARE
 SOFTWARE SOLUTION MULTIPLE FACTORS


(HARDWARE WALLET)


MULTISIG BY DEFAULT OWN VALIDATION


USE CPU & BANDWIDTH WHEN AVAILABLE

OWN FEE ESTIMATIONS PRIVACY FEATURES
 CoinJoins
 Broadcast obfuscation INTEGRATED L2

EASY TO USE

RELIABLE BACKUP SOLUTION

slide-43
SLIDE 43

_jonasschnelli_

dev@jonasschnelli.ch


PGP: CA1A2908DCE2F13074C62CDE1EB776BB03C7922D

github.com/jonasschnelli

Thanks, Q&A?