SlideShare a Scribd company logo
1 of 39
Download to read offline
Smart Signatures:
Experiments in Authorization
Christopher Allen
ChristopherA@Blockstream.com
Digital Signatures
• Demonstrates the validity of a
message
• 1976: Concept invented by Diffie
& Hellman
• 1980: Digital Signatures Patent
• 1983: Made practical by Rivest,
Shamir & Adleman
• 1988: First X.509 Digital Signature
Standard issued
• Architecture not changed
significantly for 40 years!
Traditional Digital Signatures
•To validate a message:
•Canonicalize message
•Hash the message
•Encrypt hash with private key
•Validate with public key
•Embody in a Certificate Data
Format
•Typically ASN.1/X.509
•Signed by other Certificates
•Confirmed using Trust Policy
The Trust Policy
•The Trust Policy is defined and
limited by third-parties
•A Certificate Authority
•An App, a Browser or OS
•The Trust Policy is NOT defined by
the signer or verifier!
•Is the intent of the signer fully
expressed?
•Does the verifier understand the
intent of the signer?
•Does the CA or App understand the
trust requirements of the verifier?
New Kinds of Signatures
•Modern crypto now allows:
•Multi-Signatures
•Ring Signatures
•Blind Signatures
•Aggregated Signatures
•Confidential Signatures
•Traditional digital signature data
formats have had difficulty
adapting to these new forms.
Traditional Authorization
•Core use — Authorization!
•A Trust Policy ensures that the
conditions required for a task are
met
•Traditional Signatures
•Authenticate that a specific party
signed a message
•Certify that the signing party is
authorized to do the task
Traditional Authorization
•Core use — Authorization!
•A Trust Policy ensures that the
conditions required for a task are
met
•Traditional Signatures
•Authenticate that a specific party
signed a message
•Certify that the signing party is
authorized to do the task
Smart Signatures
• Core use — Also Authorization!
• Signature Script ensures that all
conditions required for a task are
met
• Smart Signatures
• Additional parties can be
authorized
• Parties can delegate authorization
• AND/OR expressions
• Conditions can be more than who
signed!
Smart Signatures
• The Difference
• Trust Policy is interpreted not by a
CA, or code executed by an App,
Browser or OS.
• The Trust Policy is embodied by
the signer into the signature itself
• Conceived at first
#RebootingWebOfTrust

Design Workshop December 2015
• Christopher Allen, Greg Maxwell, Peter
Todd, Ryan Shea, Pieter Wuille, Joseph
Bonneau, Joseph Poon, and Tyler Close
Our Inspiration
•Bitcoin Transaction Signature
•Uses a stateless predicate
language (aka “Script”)
•Created by the signer
•Based on the signer’s Trust
Policy
•Supports ANDs, ORs, multi-sigs,
time-locks, puzzles, or even
other scripts
•Many other possible use cases
OP_DEPTH 1 OP_EQUAL
IF
<pubKeyPresident>
OP_CHECKSIGNATURE
ELSE
2 <pubKeyVicePresidentA>
<pubKeyVicePresidentB>
<pubKeyVicePresidentC>
3 OP_CHECKMULTISIG
ENDIF
1 key OR 2 of 3 keys
Use Case: Multifactor Expressions
•Multiple parties within a single
smart signature
•N of N signatures
•M of N signatures
•Logical AND and ORs
•Other possible elements
•biometric signatures
•proof of hardware control
•etc.
Use Case: Signature Delegation
•Signers should be able to:
•Delegate to another party
•Limit delegated usage based on
•Time (“1 month”)
•Function (“only purchases”)
•Content (“not more than $5K”)
•Optionally to permanently pass
control if usage of a key ceases
Use Case: Multiple Combinations
• Multiple Combinations
• multifactor & delegation & message
context
• For instance:
• Development Release / Continuous
Integration Toolchain
• multifactor 3-of-5 signatures
• one signer has authorized his
assistant because he’s on leave
• another signer requires 2-of-2 keys
for his signature
• one of which is stored on a
hardware token.
Use Case: Transactional Support
•Signatures are often part of a
larger process
•Prove specific transactional
states exist
•Test against Oracles
•For instance
•“No more than $5K has already
been spent this month”
•Transactional history of a
painting to ensure provenance
Requirements
• Smart Signatures are complex and
thus have security pitfalls
• The script language
• The signatures & the system
• Six categories of requirements
• Composable
• Inspectable
• Provable
• Deterministic
• Bounded
• Efficient
}language
}system
Requirement: Composable
•A smart signature language
should be Composable
•Aggregate simple behaviors into
more complex ones
•Simple data structures: stacks,
lists, etc.
•Constrained set of operations to
allow security review
•Inspiration: Forth, Scheme,
Haskell, etc.
Requirement: Inspectable
•A smart signature language
should be Inspectable
•Understandable by a qualified
programmer
•Make visible the many elements
of the signature script and how
they will be verified
•Help the programmer evaluate
the function and purpose of script
Requirement: Provable
•A smart signature language
should be Provable
•Formally analyzable to prove
correctness
•Support expert tools to discover
hidden bugs
Requirements: Deterministic
•A smart signature system should
be Deterministic
•Scripts should always produce
the same result
•Even on different OS or
hardware
Requirement: Bounded
•A smart signature system should
be Bounded
•Execution must not exceed
appropriate CPU or memory
limitations
•Minimize the size of scripts in
order to limit bandwidth and
storage costs.
•Enforcement of these limitations
must also be deterministic.
Requirement: Efficient
•A smart signature system should
be Efficient
•No requirements on the difficulty
of creating signatures
•The cost of verifying should be
very low
A Challenge: Privacy?
•Always a trade-off between
flexibility & privacy
•Reveals information about Signers
•Smart signature functionality may
allow correlation
•Reduces substitutability, and thus
may break fungibility & bearer
aspects
•A consideration, not a requirement
•Limit sharing, execute off-chain
•Be transparent & be deliberate
Experiments: Bitcoin Script
•Bitcoin Script
•A Forth-Like Language
•Stack-Based
•Well-Tested, Well-Trusted
•Currently limited capabilities
•MAST & Schnorr coming
•+ Deterministic, Bounded,
Efficient
•~ Composable, Inspectable
•– Provable
OP_DEPTH 1 OP_EQUAL
IF
<pubKeyPresident>
OP_CHECKSIGNATURE
ELSE
2 <pubKeyVicePresidentA>
<pubKeyVicePresidentB>
<pubKeyVicePresidentC>
3 OP_CHECKMULTISIG
ENDIF
1 key OR 2 of 3 keyshttps://en.bitcoin.it/wiki/Script
Experiments: Ivy
•The Ivy Approach
•By Chain.com
•Compiles to Bitcoin Script
•Easier syntax
•Adds named variables
•Static types
•+ Inspectable Bitcoin “Script”
•Same limitations as Bitcoin Script
•– Provable
contract LockWithMultisig(
pubKey1: PublicKey,
pubKey2: PublicKey,
pubKey3: PublicKey,
val: Value
) {
clause spend(sig1: Signature,
sig2: Signature) {
verify checkMultiSig([pubKey1,
pubKey2, pubKey3], [sig1, sig2])
unlock val
}
}
Conditional script for debug buildhttp://docs.ivy-lang.org/bitcoin/
Experiments: Dex
•The Dex Approach
•Deterministic Predicate
Expressions by Peter Todd
•Scheme-like Lambda Calculus
•Optimized for Hash Tree
•Partial proofs are supported
•Built to support state machines
•+ Composable, Deterministic,
Efficient, Bounded
•~ Inspectable, Provable
(or (checksig release-
pubkey sig (hash build))
(and (checksig dev-
pubkey sig (hash build))
(== build-type
"debug")))
Conditional script for debug build
https://petertodd.org/2016/state-machine-
consensus-building-blocks
Experiments: Simplicity
• The Simplicity Approach
• By Russell O’Connor, Blockstream
• Sequent Calculus
• Finitary functions with bounded
complexity
• Formal Provable Semantics
• Scripts formally provable via Coq
• + Provable, Deterministic,
Bounded, Efficient, Composable
• ~ Inspectable
basicSigVerify b c :=
comp (pair(witness b)
(pair pubKey (comp
(witness c)sighash)))
(comp (pair checkSig
unit) (case fail unit))
Basic signature verifyhttps://blockstream.com/simplicity.pdf
Experiments: Simplicity
• The Simplicity Approach
• By Russell O’Connor, Blockstream
• Sequent Calculus
• Finitary functions with bounded
complexity
• Formal Semantics, designed to be
formally provable via Coq
• + Provable, Deterministic,
Bounded, Efficient
• ~ Composable, Inspectable
basicSigVerify b c :=
comp (pair(witness b)
(pair pubKey (comp
(witness c)sighash)))
(comp (pair checkSig
unit) (case fail unit))
Basic signature verifyhttps://blockstream.com/simplicity.pdf
SESSION TOMOROW
10:50am!
Experiments: Σ–State
•The Σ–State Approach
•By Alexander Chepurnoy
•Uses Sigma–Protocols
•Optimized for zk-proofs
•Ring & Threshold Sig
•Strong Types
•+ Inspectable, Composable,
Deterministic, Efficient
•~ Provable, Bounded
(height ≥ 100 ∧ dlog_g
backerPK) ∨ (height < 100
∧ tx.has_output (amount ≥
100000, proposition =
dlog_g projectPK)
Cost Limit plus Timelock
https://github.com/ScorexFoundation/
sigmastate-interpreter
Experiments: Michelson
•The Michelson Approach
•By Tezos
•Inspired by OCaml
•Like “Script” is Stack-Based
•Strongly Typed
•+ Composable, Inspectable,
Efficient
• ~ Provable, Bounded, Deterministic
parameter key_hash;
storage (pair timestamp (pair tez
key_hash));
return unit;
code {
DUP; CDAR; DUP; NOW; CMPGT; IF {FAIL}
{}; SWAP;
DUP; CAR; DIP{CDDR}; AMOUNT; PAIR;
SWAP; DIP{SWAP; PAIR};
DUP; CAR; AMOUNT; CMPLE; IF {FAIL} {};
DUP; CAR;
DIP{CDR; DEFAULT_ACCOUNT}; UNIT;
TRANSFER_TOKENS;
PAIR }
https://www.tezos.com/static/
papers/language.pdf Crowdfunding Script
Experiments: Crypto Conditions
•The Crypto Conditions Approach
•By Ripple for Interledger
•Not a language, A JSON
description!
•Deterministic Boolean Algebra
•Easier Testing, Limited Flexibility
•+ Bounded, Efficient,
Deterministic
•~ Inspectable
•– Composable, Provable
const conditionDescription = {
type: 'threshold-sha256',
threshold: 2,
subconditions: [{
type: 'prefix-sha256',
prefixUtf8: '...',
subcondition: {
type: 'ed25519',
publicKey: '...' } }, {
type: 'preimage-sha256',
preimage: ‘...' }] }
Experiments: Status
•Bitcoin Script
•Ivy
•Dex
•Simplicity
•Σ–State
•Michelson
•Crypto Conditions
- Integrated into Bitcoin, no full stand-alone version
(github.com/kallewoof/btcdeb debugger is a start)
- Whitepaper, Full Ivy script playground available
- No Whitepaper, no implementation
- Whitepaper available, no public code yet
- Whitepaper soon, code in-progress
- Whitepaper, alpha script playground
- Whitepaper, part of Interledger reference
Watching: Smarm
• The Smarm Approach
• By Christopher Lemmer Webber
• Designed for Smart Signatures,
maybe on top of Simplicity
• Subset of Scheme R5RS, but Typed
• Restricted Environment & Lexical
Scope based on Reese’s W7
• Can compile to Native Code
• + Composable, Inspectable,
Deterministic,
• ~ Provable, Bounded, Efficient
?
http://bit.ly/SmarmRequirements
Watching: Frozen Realms
•The Frozen Realms Approach
•By Miller, Morningstar, Patiño
•A “safe” subset of Javascript
•Limited Primordials
•May compile to WASM(?)
•+ Composable, Inspectable,
• ~ Provable, Efficient, Deterministic
•– Bounded (Turing Complete!)
?
https://github.com/tc39/proposal-frozen-realms
Watching: Bamboo/EVM
•The Bamboo Approach
•Designed for Ethereum
•Javascript-like
•Explicit state transitions
•Avoids reentrancy
•+ Composable, Inspectable
•~ Deterministic, Efficient
•– Provable, Bounded (Turing
Complete!)
contract Vault(address hotwallet, address
vaultKey, address recoveryKey) {
case(void unvault(uint256 amount)) {
if (sender(msg) != vaultKey) abort;
uint256 unvaultPeriod = 60 * 60 * 24 * 7 *
2; // two weeks
if (now(block) + unvaultPeriod < now(block))
abort;
return then become UnVaulting(now(block) +
unvaultPeriod, amount, hotwallet, vaultKey,
recoveryKey); }
case(void recover(address _newHotWallet)) {
if (sender(msg) != recoveryKey) abort;
return then become Vault(_newHotWallet,
vaultKey, recoveryKey); }
case(void destroy()) {
if (sender(msg) != recoveryKey) abort;
return then become Destroyed(); } }
https://github.com/pirapira/bamboo
Open Questions
•Context
•Internal references?
•Lists, trees, acyclic graphs
•Run-time context?
•External process state?
•Oracles
•Preserving execution boundedness?
•What are simple MVP oracles?
•Revocation
•Proof of non-revocation?
•Short-life vs. revocation?
Open Questions
• Object Capabilities
• Are “ocap” and Least Authority
architectures another use case?
• Cryptographic Primitives
• HD Keys?
• Poelstra’s “Scriptless Scripts”?
• Smart Contracts
• Non-predicate scripts?
• None of the experiments above
are Turing-complete, but where
exactly is the line between?
References
C. Allen, G. Maxwell, P. Todd, R.
Shea, P. Wuille, J. Bonneau, J. Poon,
and T. Close. “Smart Signatures”.
Rebooting the Web of Trust I. https://
github.com/WebOfTrustInfo/
rebooting-the-web-of-trust/blob/
master/final-documents/smart-
signatures.pdf. 2015.
C. Allen, S. Appelcline. “Smarter
Signatures: Experiments in
Verification”. Rebooting the Web of
Trust II. https://github.com/
WebOfTrustInfo/
ID2020DesignWorkshop/blob/master/
final-documents/smarter-
signatures.pdf. 2016.
bit.ly/SmarterSignatures #SmartSignatures
March 6-8th in Santa Barbara
https://rwot6.eventbrite.com
Are you a Language Geek? Come
to Next #RebootingWebOfTrust
“To influence the future of
decentralized trust and self-sovereign
identity through the establishment &
promotion of decentralized identity
technology. This is done via the
collaborative creation of white papers
and specifications & by public
presentations of these ideas.”
Christopher Allen
ChristopherA@Blockstream.com
http://www.Blockstream.com
PGP: FDA6C78E

More Related Content

What's hot

TeelTech - Advancing Mobile Device Forensics (online version)
TeelTech - Advancing Mobile Device Forensics (online version)TeelTech - Advancing Mobile Device Forensics (online version)
TeelTech - Advancing Mobile Device Forensics (online version)Mike Felch
 
Pwning the Enterprise With PowerShell
Pwning the Enterprise With PowerShellPwning the Enterprise With PowerShell
Pwning the Enterprise With PowerShellBeau Bullock
 
Socially Acceptable Methods to Walk in the Front Door
Socially Acceptable Methods to Walk in the Front DoorSocially Acceptable Methods to Walk in the Front Door
Socially Acceptable Methods to Walk in the Front DoorMike Felch
 
Secure Communication with an Insecure Internet Infrastructure
Secure Communication with an Insecure Internet InfrastructureSecure Communication with an Insecure Internet Infrastructure
Secure Communication with an Insecure Internet Infrastructurewebhostingguy
 
Travelocalypse: It's Dangerous Business, Hacker, Going Out Your Front Door
Travelocalypse: It's Dangerous Business, Hacker, Going Out Your Front DoorTravelocalypse: It's Dangerous Business, Hacker, Going Out Your Front Door
Travelocalypse: It's Dangerous Business, Hacker, Going Out Your Front DoorBeau Bullock
 
Defcon 25 Packet Hacking Village - Finding Your Way to Domain Access
Defcon 25 Packet Hacking Village - Finding Your Way to Domain AccessDefcon 25 Packet Hacking Village - Finding Your Way to Domain Access
Defcon 25 Packet Hacking Village - Finding Your Way to Domain Accesseightbit
 
Fade from Whitehat... to Black
Fade from Whitehat... to BlackFade from Whitehat... to Black
Fade from Whitehat... to BlackBeau Bullock
 
Hyperledger Fabric Application Development 20190618
Hyperledger Fabric Application Development 20190618Hyperledger Fabric Application Development 20190618
Hyperledger Fabric Application Development 20190618Arnaud Le Hors
 
OWASP Atlanta 2018: Forensics as a Service
OWASP Atlanta 2018: Forensics as a ServiceOWASP Atlanta 2018: Forensics as a Service
OWASP Atlanta 2018: Forensics as a ServiceToni de la Fuente
 
Dr. Omar Ali Alibrahim - Ssl talk
Dr. Omar Ali Alibrahim - Ssl talkDr. Omar Ali Alibrahim - Ssl talk
Dr. Omar Ali Alibrahim - Ssl talkpromediakw
 
CNIT 141: 13. TLS
CNIT 141: 13. TLSCNIT 141: 13. TLS
CNIT 141: 13. TLSSam Bowne
 
Strong Authentication in Web Application #SCS III
Strong Authentication in Web Application #SCS IIIStrong Authentication in Web Application #SCS III
Strong Authentication in Web Application #SCS IIISylvain Maret
 
ContainerDays Boston 2016: "Hiding in Plain Sight: Managing Secrets in a Cont...
ContainerDays Boston 2016: "Hiding in Plain Sight: Managing Secrets in a Cont...ContainerDays Boston 2016: "Hiding in Plain Sight: Managing Secrets in a Cont...
ContainerDays Boston 2016: "Hiding in Plain Sight: Managing Secrets in a Cont...DynamicInfraDays
 
CNIT 128 3. Attacking iOS Applications (Part 1)
CNIT 128 3. Attacking iOS Applications (Part 1)CNIT 128 3. Attacking iOS Applications (Part 1)
CNIT 128 3. Attacking iOS Applications (Part 1)Sam Bowne
 
Pentest Apocalypse - SANSFIRE 2016 Edition
Pentest Apocalypse - SANSFIRE 2016 EditionPentest Apocalypse - SANSFIRE 2016 Edition
Pentest Apocalypse - SANSFIRE 2016 EditionBeau Bullock
 
BSIDES-PR Keynote Hunting for Bad Guys
BSIDES-PR Keynote Hunting for Bad GuysBSIDES-PR Keynote Hunting for Bad Guys
BSIDES-PR Keynote Hunting for Bad GuysJoff Thyer
 
CNIT 129S Ch 7: Attacking Session Management
CNIT 129S Ch 7: Attacking Session ManagementCNIT 129S Ch 7: Attacking Session Management
CNIT 129S Ch 7: Attacking Session ManagementSam Bowne
 
How to 2FA-enable Open Source Applications
How to 2FA-enable Open Source ApplicationsHow to 2FA-enable Open Source Applications
How to 2FA-enable Open Source ApplicationsAll Things Open
 

What's hot (20)

TeelTech - Advancing Mobile Device Forensics (online version)
TeelTech - Advancing Mobile Device Forensics (online version)TeelTech - Advancing Mobile Device Forensics (online version)
TeelTech - Advancing Mobile Device Forensics (online version)
 
Pwning the Enterprise With PowerShell
Pwning the Enterprise With PowerShellPwning the Enterprise With PowerShell
Pwning the Enterprise With PowerShell
 
Socially Acceptable Methods to Walk in the Front Door
Socially Acceptable Methods to Walk in the Front DoorSocially Acceptable Methods to Walk in the Front Door
Socially Acceptable Methods to Walk in the Front Door
 
Secure Communication with an Insecure Internet Infrastructure
Secure Communication with an Insecure Internet InfrastructureSecure Communication with an Insecure Internet Infrastructure
Secure Communication with an Insecure Internet Infrastructure
 
Travelocalypse: It's Dangerous Business, Hacker, Going Out Your Front Door
Travelocalypse: It's Dangerous Business, Hacker, Going Out Your Front DoorTravelocalypse: It's Dangerous Business, Hacker, Going Out Your Front Door
Travelocalypse: It's Dangerous Business, Hacker, Going Out Your Front Door
 
Defcon 25 Packet Hacking Village - Finding Your Way to Domain Access
Defcon 25 Packet Hacking Village - Finding Your Way to Domain AccessDefcon 25 Packet Hacking Village - Finding Your Way to Domain Access
Defcon 25 Packet Hacking Village - Finding Your Way to Domain Access
 
Fade from Whitehat... to Black
Fade from Whitehat... to BlackFade from Whitehat... to Black
Fade from Whitehat... to Black
 
JWTs and JOSE in a flash
JWTs and JOSE in a flashJWTs and JOSE in a flash
JWTs and JOSE in a flash
 
Hyperledger Fabric Application Development 20190618
Hyperledger Fabric Application Development 20190618Hyperledger Fabric Application Development 20190618
Hyperledger Fabric Application Development 20190618
 
OWASP Atlanta 2018: Forensics as a Service
OWASP Atlanta 2018: Forensics as a ServiceOWASP Atlanta 2018: Forensics as a Service
OWASP Atlanta 2018: Forensics as a Service
 
Dr. Omar Ali Alibrahim - Ssl talk
Dr. Omar Ali Alibrahim - Ssl talkDr. Omar Ali Alibrahim - Ssl talk
Dr. Omar Ali Alibrahim - Ssl talk
 
CNIT 141: 13. TLS
CNIT 141: 13. TLSCNIT 141: 13. TLS
CNIT 141: 13. TLS
 
Key management
Key managementKey management
Key management
 
Strong Authentication in Web Application #SCS III
Strong Authentication in Web Application #SCS IIIStrong Authentication in Web Application #SCS III
Strong Authentication in Web Application #SCS III
 
ContainerDays Boston 2016: "Hiding in Plain Sight: Managing Secrets in a Cont...
ContainerDays Boston 2016: "Hiding in Plain Sight: Managing Secrets in a Cont...ContainerDays Boston 2016: "Hiding in Plain Sight: Managing Secrets in a Cont...
ContainerDays Boston 2016: "Hiding in Plain Sight: Managing Secrets in a Cont...
 
CNIT 128 3. Attacking iOS Applications (Part 1)
CNIT 128 3. Attacking iOS Applications (Part 1)CNIT 128 3. Attacking iOS Applications (Part 1)
CNIT 128 3. Attacking iOS Applications (Part 1)
 
Pentest Apocalypse - SANSFIRE 2016 Edition
Pentest Apocalypse - SANSFIRE 2016 EditionPentest Apocalypse - SANSFIRE 2016 Edition
Pentest Apocalypse - SANSFIRE 2016 Edition
 
BSIDES-PR Keynote Hunting for Bad Guys
BSIDES-PR Keynote Hunting for Bad GuysBSIDES-PR Keynote Hunting for Bad Guys
BSIDES-PR Keynote Hunting for Bad Guys
 
CNIT 129S Ch 7: Attacking Session Management
CNIT 129S Ch 7: Attacking Session ManagementCNIT 129S Ch 7: Attacking Session Management
CNIT 129S Ch 7: Attacking Session Management
 
How to 2FA-enable Open Source Applications
How to 2FA-enable Open Source ApplicationsHow to 2FA-enable Open Source Applications
How to 2FA-enable Open Source Applications
 

Similar to Smart Signatures—Experiments in Authentication (Stanford BPASE 2018 final)

Track 5 session 2 - st dev con 2016 - security iot best practices
Track 5   session 2 - st dev con 2016 - security iot best practicesTrack 5   session 2 - st dev con 2016 - security iot best practices
Track 5 session 2 - st dev con 2016 - security iot best practicesST_World
 
Advanced Blockchain Technologies on Privacy & Scalability (All Things Open)
Advanced Blockchain Technologies on Privacy & Scalability (All Things Open) Advanced Blockchain Technologies on Privacy & Scalability (All Things Open)
Advanced Blockchain Technologies on Privacy & Scalability (All Things Open) Kaleido
 
Advanced Blockchain Technologies on Privacy and Scalability
Advanced Blockchain Technologies on Privacy and ScalabilityAdvanced Blockchain Technologies on Privacy and Scalability
Advanced Blockchain Technologies on Privacy and ScalabilityAll Things Open
 
Digital signature & eSign overview
Digital signature & eSign overviewDigital signature & eSign overview
Digital signature & eSign overviewRishi Pathak
 
OSSF 2018 - Jamie Jones of GitHub - Pull what where? Contributing to Open Sou...
OSSF 2018 - Jamie Jones of GitHub - Pull what where? Contributing to Open Sou...OSSF 2018 - Jamie Jones of GitHub - Pull what where? Contributing to Open Sou...
OSSF 2018 - Jamie Jones of GitHub - Pull what where? Contributing to Open Sou...FINOS
 
AppSec in an Agile World
AppSec in an Agile WorldAppSec in an Agile World
AppSec in an Agile WorldDavid Lindner
 
Compliance Automation with InSpec - Chef NYC Meetup - April 2017
Compliance Automation with InSpec - Chef NYC Meetup - April 2017Compliance Automation with InSpec - Chef NYC Meetup - April 2017
Compliance Automation with InSpec - Chef NYC Meetup - April 2017adamleff
 
Shifting security left simplifying security for k8s open shift environments
Shifting security left simplifying security for k8s open shift environmentsShifting security left simplifying security for k8s open shift environments
Shifting security left simplifying security for k8s open shift environmentsLibbySchulze
 
OpenAM as Flexible Integration Component
OpenAM as Flexible Integration ComponentOpenAM as Flexible Integration Component
OpenAM as Flexible Integration ComponentForgeRock
 
Heartbleed Bug Vulnerability: Discovery, Impact and Solution
Heartbleed Bug Vulnerability: Discovery, Impact and SolutionHeartbleed Bug Vulnerability: Discovery, Impact and Solution
Heartbleed Bug Vulnerability: Discovery, Impact and SolutionCASCouncil
 
ForgeRock OpenAM as flexible integration component
ForgeRock OpenAM as flexible integration componentForgeRock OpenAM as flexible integration component
ForgeRock OpenAM as flexible integration componentOlivier Naveau
 
Introduction to blockchain and cryptocurrency technologies
Introduction to blockchain and cryptocurrency technologiesIntroduction to blockchain and cryptocurrency technologies
Introduction to blockchain and cryptocurrency technologiesPaweł Wacławczyk
 
Harnessing the Power of AI in AWS Pentesting.pdf
Harnessing the Power of AI in AWS Pentesting.pdfHarnessing the Power of AI in AWS Pentesting.pdf
Harnessing the Power of AI in AWS Pentesting.pdfMike Felch
 
Alfresco DevCon 2019: Encryption at-rest and in-transit
Alfresco DevCon 2019: Encryption at-rest and in-transitAlfresco DevCon 2019: Encryption at-rest and in-transit
Alfresco DevCon 2019: Encryption at-rest and in-transitToni de la Fuente
 
An introduction to X.509 certificates
An introduction to X.509 certificatesAn introduction to X.509 certificates
An introduction to X.509 certificatesStephane Potier
 
Code signing and trust
Code signing and trustCode signing and trust
Code signing and trustJapneet Singh
 
Web-of-Things and Services Security
Web-of-Things and Services SecurityWeb-of-Things and Services Security
Web-of-Things and Services SecurityOliver Pfaff
 
Blockchain target-share
Blockchain target-shareBlockchain target-share
Blockchain target-sharejoelcrabb
 
2018 FRSecure CISSP Mentor Program Session 8
2018 FRSecure CISSP Mentor Program Session 82018 FRSecure CISSP Mentor Program Session 8
2018 FRSecure CISSP Mentor Program Session 8FRSecure
 

Similar to Smart Signatures—Experiments in Authentication (Stanford BPASE 2018 final) (20)

Track 5 session 2 - st dev con 2016 - security iot best practices
Track 5   session 2 - st dev con 2016 - security iot best practicesTrack 5   session 2 - st dev con 2016 - security iot best practices
Track 5 session 2 - st dev con 2016 - security iot best practices
 
Advanced Blockchain Technologies on Privacy & Scalability (All Things Open)
Advanced Blockchain Technologies on Privacy & Scalability (All Things Open) Advanced Blockchain Technologies on Privacy & Scalability (All Things Open)
Advanced Blockchain Technologies on Privacy & Scalability (All Things Open)
 
Advanced Blockchain Technologies on Privacy and Scalability
Advanced Blockchain Technologies on Privacy and ScalabilityAdvanced Blockchain Technologies on Privacy and Scalability
Advanced Blockchain Technologies on Privacy and Scalability
 
Digital signature & eSign overview
Digital signature & eSign overviewDigital signature & eSign overview
Digital signature & eSign overview
 
OSSF 2018 - Jamie Jones of GitHub - Pull what where? Contributing to Open Sou...
OSSF 2018 - Jamie Jones of GitHub - Pull what where? Contributing to Open Sou...OSSF 2018 - Jamie Jones of GitHub - Pull what where? Contributing to Open Sou...
OSSF 2018 - Jamie Jones of GitHub - Pull what where? Contributing to Open Sou...
 
AppSec in an Agile World
AppSec in an Agile WorldAppSec in an Agile World
AppSec in an Agile World
 
Compliance Automation with InSpec - Chef NYC Meetup - April 2017
Compliance Automation with InSpec - Chef NYC Meetup - April 2017Compliance Automation with InSpec - Chef NYC Meetup - April 2017
Compliance Automation with InSpec - Chef NYC Meetup - April 2017
 
Shifting security left simplifying security for k8s open shift environments
Shifting security left simplifying security for k8s open shift environmentsShifting security left simplifying security for k8s open shift environments
Shifting security left simplifying security for k8s open shift environments
 
OpenAM as Flexible Integration Component
OpenAM as Flexible Integration ComponentOpenAM as Flexible Integration Component
OpenAM as Flexible Integration Component
 
Heartbleed Bug Vulnerability: Discovery, Impact and Solution
Heartbleed Bug Vulnerability: Discovery, Impact and SolutionHeartbleed Bug Vulnerability: Discovery, Impact and Solution
Heartbleed Bug Vulnerability: Discovery, Impact and Solution
 
ForgeRock OpenAM as flexible integration component
ForgeRock OpenAM as flexible integration componentForgeRock OpenAM as flexible integration component
ForgeRock OpenAM as flexible integration component
 
Introduction to blockchain and cryptocurrency technologies
Introduction to blockchain and cryptocurrency technologiesIntroduction to blockchain and cryptocurrency technologies
Introduction to blockchain and cryptocurrency technologies
 
Harnessing the Power of AI in AWS Pentesting.pdf
Harnessing the Power of AI in AWS Pentesting.pdfHarnessing the Power of AI in AWS Pentesting.pdf
Harnessing the Power of AI in AWS Pentesting.pdf
 
Block Chain Basics
Block Chain BasicsBlock Chain Basics
Block Chain Basics
 
Alfresco DevCon 2019: Encryption at-rest and in-transit
Alfresco DevCon 2019: Encryption at-rest and in-transitAlfresco DevCon 2019: Encryption at-rest and in-transit
Alfresco DevCon 2019: Encryption at-rest and in-transit
 
An introduction to X.509 certificates
An introduction to X.509 certificatesAn introduction to X.509 certificates
An introduction to X.509 certificates
 
Code signing and trust
Code signing and trustCode signing and trust
Code signing and trust
 
Web-of-Things and Services Security
Web-of-Things and Services SecurityWeb-of-Things and Services Security
Web-of-Things and Services Security
 
Blockchain target-share
Blockchain target-shareBlockchain target-share
Blockchain target-share
 
2018 FRSecure CISSP Mentor Program Session 8
2018 FRSecure CISSP Mentor Program Session 82018 FRSecure CISSP Mentor Program Session 8
2018 FRSecure CISSP Mentor Program Session 8
 

More from Christopher Allen

Collection of Economic Freedom Quotes (Curated by Christopher Allen)
Collection of Economic Freedom Quotes (Curated by Christopher Allen)Collection of Economic Freedom Quotes (Curated by Christopher Allen)
Collection of Economic Freedom Quotes (Curated by Christopher Allen)Christopher Allen
 
Forging Self-Sovereign Identity in the Age of the Blockchain - Christopher Al...
Forging Self-Sovereign Identity in the Age of the Blockchain - Christopher Al...Forging Self-Sovereign Identity in the Age of the Blockchain - Christopher Al...
Forging Self-Sovereign Identity in the Age of the Blockchain - Christopher Al...Christopher Allen
 
Identity of the Blockchain: Perils and Promise
Identity of the Blockchain: Perils and PromiseIdentity of the Blockchain: Perils and Promise
Identity of the Blockchain: Perils and PromiseChristopher Allen
 
My Hybrid Flipped Learning Environment
My Hybrid Flipped Learning EnvironmentMy Hybrid Flipped Learning Environment
My Hybrid Flipped Learning EnvironmentChristopher Allen
 
Bitcoin Keys, Addresses & Wallets
Bitcoin Keys, Addresses & WalletsBitcoin Keys, Addresses & Wallets
Bitcoin Keys, Addresses & WalletsChristopher Allen
 
Bitcoin & the Blockchain—an Introduction
Bitcoin & the Blockchain—an IntroductionBitcoin & the Blockchain—an Introduction
Bitcoin & the Blockchain—an IntroductionChristopher Allen
 
Brainstorming by Creating a Game
Brainstorming by Creating a GameBrainstorming by Creating a Game
Brainstorming by Creating a GameChristopher Allen
 
Discussion Activities with Moodle
Discussion Activities with MoodleDiscussion Activities with Moodle
Discussion Activities with MoodleChristopher Allen
 
Cooperative gaming—tabletop lessons for online games
Cooperative gaming—tabletop lessons for online gamesCooperative gaming—tabletop lessons for online games
Cooperative gaming—tabletop lessons for online gamesChristopher Allen
 
Interview with Markos Moulitsas Zúniga
Interview with Markos Moulitsas ZúnigaInterview with Markos Moulitsas Zúniga
Interview with Markos Moulitsas ZúnigaChristopher Allen
 
Designing Elluminate Sessions for Interactivity
Designing Elluminate Sessions for InteractivityDesigning Elluminate Sessions for Interactivity
Designing Elluminate Sessions for InteractivityChristopher Allen
 
Raph Koster — The Core of Fun
Raph Koster — The Core of FunRaph Koster — The Core of Fun
Raph Koster — The Core of FunChristopher Allen
 
Fair Use & Copyright (Excerpt from Summer A/V Workshop)
Fair Use & Copyright (Excerpt from Summer A/V Workshop)Fair Use & Copyright (Excerpt from Summer A/V Workshop)
Fair Use & Copyright (Excerpt from Summer A/V Workshop)Christopher Allen
 
Filtering BGIedu Channel posts
Filtering BGIedu Channel postsFiltering BGIedu Channel posts
Filtering BGIedu Channel postsChristopher Allen
 
Personal Branding: Creating and Managing an Identity that Promotes Mission & ...
Personal Branding: Creating and Managing an Identity that Promotes Mission & ...Personal Branding: Creating and Managing an Identity that Promotes Mission & ...
Personal Branding: Creating and Managing an Identity that Promotes Mission & ...Christopher Allen
 

More from Christopher Allen (20)

Collection of Economic Freedom Quotes (Curated by Christopher Allen)
Collection of Economic Freedom Quotes (Curated by Christopher Allen)Collection of Economic Freedom Quotes (Curated by Christopher Allen)
Collection of Economic Freedom Quotes (Curated by Christopher Allen)
 
Forging Self-Sovereign Identity in the Age of the Blockchain - Christopher Al...
Forging Self-Sovereign Identity in the Age of the Blockchain - Christopher Al...Forging Self-Sovereign Identity in the Age of the Blockchain - Christopher Al...
Forging Self-Sovereign Identity in the Age of the Blockchain - Christopher Al...
 
Identity of the Blockchain: Perils and Promise
Identity of the Blockchain: Perils and PromiseIdentity of the Blockchain: Perils and Promise
Identity of the Blockchain: Perils and Promise
 
My Hybrid Flipped Learning Environment
My Hybrid Flipped Learning EnvironmentMy Hybrid Flipped Learning Environment
My Hybrid Flipped Learning Environment
 
Bitcoin Keys, Addresses & Wallets
Bitcoin Keys, Addresses & WalletsBitcoin Keys, Addresses & Wallets
Bitcoin Keys, Addresses & Wallets
 
Bitcoin & the Blockchain—an Introduction
Bitcoin & the Blockchain—an IntroductionBitcoin & the Blockchain—an Introduction
Bitcoin & the Blockchain—an Introduction
 
The Proficiency Ladder
The Proficiency LadderThe Proficiency Ladder
The Proficiency Ladder
 
Brainstorming by Creating a Game
Brainstorming by Creating a GameBrainstorming by Creating a Game
Brainstorming by Creating a Game
 
Discussion Activities with Moodle
Discussion Activities with MoodleDiscussion Activities with Moodle
Discussion Activities with Moodle
 
Cooperative gaming—tabletop lessons for online games
Cooperative gaming—tabletop lessons for online gamesCooperative gaming—tabletop lessons for online games
Cooperative gaming—tabletop lessons for online games
 
Interview with Markos Moulitsas Zúniga
Interview with Markos Moulitsas ZúnigaInterview with Markos Moulitsas Zúniga
Interview with Markos Moulitsas Zúniga
 
Memes & Memetics
Memes & MemeticsMemes & Memetics
Memes & Memetics
 
Designing Elluminate Sessions for Interactivity
Designing Elluminate Sessions for InteractivityDesigning Elluminate Sessions for Interactivity
Designing Elluminate Sessions for Interactivity
 
Raph Koster — The Core of Fun
Raph Koster — The Core of FunRaph Koster — The Core of Fun
Raph Koster — The Core of Fun
 
Ambient vs immersive
Ambient vs immersiveAmbient vs immersive
Ambient vs immersive
 
Ambient immersive
Ambient immersiveAmbient immersive
Ambient immersive
 
Fair Use & Copyright (Excerpt from Summer A/V Workshop)
Fair Use & Copyright (Excerpt from Summer A/V Workshop)Fair Use & Copyright (Excerpt from Summer A/V Workshop)
Fair Use & Copyright (Excerpt from Summer A/V Workshop)
 
Social Networking
Social NetworkingSocial Networking
Social Networking
 
Filtering BGIedu Channel posts
Filtering BGIedu Channel postsFiltering BGIedu Channel posts
Filtering BGIedu Channel posts
 
Personal Branding: Creating and Managing an Identity that Promotes Mission & ...
Personal Branding: Creating and Managing an Identity that Promotes Mission & ...Personal Branding: Creating and Managing an Identity that Promotes Mission & ...
Personal Branding: Creating and Managing an Identity that Promotes Mission & ...
 

Recently uploaded

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 

Recently uploaded (20)

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 

Smart Signatures—Experiments in Authentication (Stanford BPASE 2018 final)

  • 1. Smart Signatures: Experiments in Authorization Christopher Allen ChristopherA@Blockstream.com
  • 2. Digital Signatures • Demonstrates the validity of a message • 1976: Concept invented by Diffie & Hellman • 1980: Digital Signatures Patent • 1983: Made practical by Rivest, Shamir & Adleman • 1988: First X.509 Digital Signature Standard issued • Architecture not changed significantly for 40 years!
  • 3. Traditional Digital Signatures •To validate a message: •Canonicalize message •Hash the message •Encrypt hash with private key •Validate with public key •Embody in a Certificate Data Format •Typically ASN.1/X.509 •Signed by other Certificates •Confirmed using Trust Policy
  • 4. The Trust Policy •The Trust Policy is defined and limited by third-parties •A Certificate Authority •An App, a Browser or OS •The Trust Policy is NOT defined by the signer or verifier! •Is the intent of the signer fully expressed? •Does the verifier understand the intent of the signer? •Does the CA or App understand the trust requirements of the verifier?
  • 5. New Kinds of Signatures •Modern crypto now allows: •Multi-Signatures •Ring Signatures •Blind Signatures •Aggregated Signatures •Confidential Signatures •Traditional digital signature data formats have had difficulty adapting to these new forms.
  • 6. Traditional Authorization •Core use — Authorization! •A Trust Policy ensures that the conditions required for a task are met •Traditional Signatures •Authenticate that a specific party signed a message •Certify that the signing party is authorized to do the task
  • 7. Traditional Authorization •Core use — Authorization! •A Trust Policy ensures that the conditions required for a task are met •Traditional Signatures •Authenticate that a specific party signed a message •Certify that the signing party is authorized to do the task
  • 8. Smart Signatures • Core use — Also Authorization! • Signature Script ensures that all conditions required for a task are met • Smart Signatures • Additional parties can be authorized • Parties can delegate authorization • AND/OR expressions • Conditions can be more than who signed!
  • 9. Smart Signatures • The Difference • Trust Policy is interpreted not by a CA, or code executed by an App, Browser or OS. • The Trust Policy is embodied by the signer into the signature itself • Conceived at first #RebootingWebOfTrust
 Design Workshop December 2015 • Christopher Allen, Greg Maxwell, Peter Todd, Ryan Shea, Pieter Wuille, Joseph Bonneau, Joseph Poon, and Tyler Close
  • 10. Our Inspiration •Bitcoin Transaction Signature •Uses a stateless predicate language (aka “Script”) •Created by the signer •Based on the signer’s Trust Policy •Supports ANDs, ORs, multi-sigs, time-locks, puzzles, or even other scripts •Many other possible use cases OP_DEPTH 1 OP_EQUAL IF <pubKeyPresident> OP_CHECKSIGNATURE ELSE 2 <pubKeyVicePresidentA> <pubKeyVicePresidentB> <pubKeyVicePresidentC> 3 OP_CHECKMULTISIG ENDIF 1 key OR 2 of 3 keys
  • 11. Use Case: Multifactor Expressions •Multiple parties within a single smart signature •N of N signatures •M of N signatures •Logical AND and ORs •Other possible elements •biometric signatures •proof of hardware control •etc.
  • 12. Use Case: Signature Delegation •Signers should be able to: •Delegate to another party •Limit delegated usage based on •Time (“1 month”) •Function (“only purchases”) •Content (“not more than $5K”) •Optionally to permanently pass control if usage of a key ceases
  • 13. Use Case: Multiple Combinations • Multiple Combinations • multifactor & delegation & message context • For instance: • Development Release / Continuous Integration Toolchain • multifactor 3-of-5 signatures • one signer has authorized his assistant because he’s on leave • another signer requires 2-of-2 keys for his signature • one of which is stored on a hardware token.
  • 14. Use Case: Transactional Support •Signatures are often part of a larger process •Prove specific transactional states exist •Test against Oracles •For instance •“No more than $5K has already been spent this month” •Transactional history of a painting to ensure provenance
  • 15. Requirements • Smart Signatures are complex and thus have security pitfalls • The script language • The signatures & the system • Six categories of requirements • Composable • Inspectable • Provable • Deterministic • Bounded • Efficient }language }system
  • 16. Requirement: Composable •A smart signature language should be Composable •Aggregate simple behaviors into more complex ones •Simple data structures: stacks, lists, etc. •Constrained set of operations to allow security review •Inspiration: Forth, Scheme, Haskell, etc.
  • 17. Requirement: Inspectable •A smart signature language should be Inspectable •Understandable by a qualified programmer •Make visible the many elements of the signature script and how they will be verified •Help the programmer evaluate the function and purpose of script
  • 18. Requirement: Provable •A smart signature language should be Provable •Formally analyzable to prove correctness •Support expert tools to discover hidden bugs
  • 19. Requirements: Deterministic •A smart signature system should be Deterministic •Scripts should always produce the same result •Even on different OS or hardware
  • 20. Requirement: Bounded •A smart signature system should be Bounded •Execution must not exceed appropriate CPU or memory limitations •Minimize the size of scripts in order to limit bandwidth and storage costs. •Enforcement of these limitations must also be deterministic.
  • 21. Requirement: Efficient •A smart signature system should be Efficient •No requirements on the difficulty of creating signatures •The cost of verifying should be very low
  • 22. A Challenge: Privacy? •Always a trade-off between flexibility & privacy •Reveals information about Signers •Smart signature functionality may allow correlation •Reduces substitutability, and thus may break fungibility & bearer aspects •A consideration, not a requirement •Limit sharing, execute off-chain •Be transparent & be deliberate
  • 23. Experiments: Bitcoin Script •Bitcoin Script •A Forth-Like Language •Stack-Based •Well-Tested, Well-Trusted •Currently limited capabilities •MAST & Schnorr coming •+ Deterministic, Bounded, Efficient •~ Composable, Inspectable •– Provable OP_DEPTH 1 OP_EQUAL IF <pubKeyPresident> OP_CHECKSIGNATURE ELSE 2 <pubKeyVicePresidentA> <pubKeyVicePresidentB> <pubKeyVicePresidentC> 3 OP_CHECKMULTISIG ENDIF 1 key OR 2 of 3 keyshttps://en.bitcoin.it/wiki/Script
  • 24. Experiments: Ivy •The Ivy Approach •By Chain.com •Compiles to Bitcoin Script •Easier syntax •Adds named variables •Static types •+ Inspectable Bitcoin “Script” •Same limitations as Bitcoin Script •– Provable contract LockWithMultisig( pubKey1: PublicKey, pubKey2: PublicKey, pubKey3: PublicKey, val: Value ) { clause spend(sig1: Signature, sig2: Signature) { verify checkMultiSig([pubKey1, pubKey2, pubKey3], [sig1, sig2]) unlock val } } Conditional script for debug buildhttp://docs.ivy-lang.org/bitcoin/
  • 25. Experiments: Dex •The Dex Approach •Deterministic Predicate Expressions by Peter Todd •Scheme-like Lambda Calculus •Optimized for Hash Tree •Partial proofs are supported •Built to support state machines •+ Composable, Deterministic, Efficient, Bounded •~ Inspectable, Provable (or (checksig release- pubkey sig (hash build)) (and (checksig dev- pubkey sig (hash build)) (== build-type "debug"))) Conditional script for debug build https://petertodd.org/2016/state-machine- consensus-building-blocks
  • 26. Experiments: Simplicity • The Simplicity Approach • By Russell O’Connor, Blockstream • Sequent Calculus • Finitary functions with bounded complexity • Formal Provable Semantics • Scripts formally provable via Coq • + Provable, Deterministic, Bounded, Efficient, Composable • ~ Inspectable basicSigVerify b c := comp (pair(witness b) (pair pubKey (comp (witness c)sighash))) (comp (pair checkSig unit) (case fail unit)) Basic signature verifyhttps://blockstream.com/simplicity.pdf
  • 27. Experiments: Simplicity • The Simplicity Approach • By Russell O’Connor, Blockstream • Sequent Calculus • Finitary functions with bounded complexity • Formal Semantics, designed to be formally provable via Coq • + Provable, Deterministic, Bounded, Efficient • ~ Composable, Inspectable basicSigVerify b c := comp (pair(witness b) (pair pubKey (comp (witness c)sighash))) (comp (pair checkSig unit) (case fail unit)) Basic signature verifyhttps://blockstream.com/simplicity.pdf SESSION TOMOROW 10:50am!
  • 28. Experiments: Σ–State •The Σ–State Approach •By Alexander Chepurnoy •Uses Sigma–Protocols •Optimized for zk-proofs •Ring & Threshold Sig •Strong Types •+ Inspectable, Composable, Deterministic, Efficient •~ Provable, Bounded (height ≥ 100 ∧ dlog_g backerPK) ∨ (height < 100 ∧ tx.has_output (amount ≥ 100000, proposition = dlog_g projectPK) Cost Limit plus Timelock https://github.com/ScorexFoundation/ sigmastate-interpreter
  • 29. Experiments: Michelson •The Michelson Approach •By Tezos •Inspired by OCaml •Like “Script” is Stack-Based •Strongly Typed •+ Composable, Inspectable, Efficient • ~ Provable, Bounded, Deterministic parameter key_hash; storage (pair timestamp (pair tez key_hash)); return unit; code { DUP; CDAR; DUP; NOW; CMPGT; IF {FAIL} {}; SWAP; DUP; CAR; DIP{CDDR}; AMOUNT; PAIR; SWAP; DIP{SWAP; PAIR}; DUP; CAR; AMOUNT; CMPLE; IF {FAIL} {}; DUP; CAR; DIP{CDR; DEFAULT_ACCOUNT}; UNIT; TRANSFER_TOKENS; PAIR } https://www.tezos.com/static/ papers/language.pdf Crowdfunding Script
  • 30. Experiments: Crypto Conditions •The Crypto Conditions Approach •By Ripple for Interledger •Not a language, A JSON description! •Deterministic Boolean Algebra •Easier Testing, Limited Flexibility •+ Bounded, Efficient, Deterministic •~ Inspectable •– Composable, Provable const conditionDescription = { type: 'threshold-sha256', threshold: 2, subconditions: [{ type: 'prefix-sha256', prefixUtf8: '...', subcondition: { type: 'ed25519', publicKey: '...' } }, { type: 'preimage-sha256', preimage: ‘...' }] }
  • 31. Experiments: Status •Bitcoin Script •Ivy •Dex •Simplicity •Σ–State •Michelson •Crypto Conditions - Integrated into Bitcoin, no full stand-alone version (github.com/kallewoof/btcdeb debugger is a start) - Whitepaper, Full Ivy script playground available - No Whitepaper, no implementation - Whitepaper available, no public code yet - Whitepaper soon, code in-progress - Whitepaper, alpha script playground - Whitepaper, part of Interledger reference
  • 32. Watching: Smarm • The Smarm Approach • By Christopher Lemmer Webber • Designed for Smart Signatures, maybe on top of Simplicity • Subset of Scheme R5RS, but Typed • Restricted Environment & Lexical Scope based on Reese’s W7 • Can compile to Native Code • + Composable, Inspectable, Deterministic, • ~ Provable, Bounded, Efficient ? http://bit.ly/SmarmRequirements
  • 33. Watching: Frozen Realms •The Frozen Realms Approach •By Miller, Morningstar, Patiño •A “safe” subset of Javascript •Limited Primordials •May compile to WASM(?) •+ Composable, Inspectable, • ~ Provable, Efficient, Deterministic •– Bounded (Turing Complete!) ? https://github.com/tc39/proposal-frozen-realms
  • 34. Watching: Bamboo/EVM •The Bamboo Approach •Designed for Ethereum •Javascript-like •Explicit state transitions •Avoids reentrancy •+ Composable, Inspectable •~ Deterministic, Efficient •– Provable, Bounded (Turing Complete!) contract Vault(address hotwallet, address vaultKey, address recoveryKey) { case(void unvault(uint256 amount)) { if (sender(msg) != vaultKey) abort; uint256 unvaultPeriod = 60 * 60 * 24 * 7 * 2; // two weeks if (now(block) + unvaultPeriod < now(block)) abort; return then become UnVaulting(now(block) + unvaultPeriod, amount, hotwallet, vaultKey, recoveryKey); } case(void recover(address _newHotWallet)) { if (sender(msg) != recoveryKey) abort; return then become Vault(_newHotWallet, vaultKey, recoveryKey); } case(void destroy()) { if (sender(msg) != recoveryKey) abort; return then become Destroyed(); } } https://github.com/pirapira/bamboo
  • 35. Open Questions •Context •Internal references? •Lists, trees, acyclic graphs •Run-time context? •External process state? •Oracles •Preserving execution boundedness? •What are simple MVP oracles? •Revocation •Proof of non-revocation? •Short-life vs. revocation?
  • 36. Open Questions • Object Capabilities • Are “ocap” and Least Authority architectures another use case? • Cryptographic Primitives • HD Keys? • Poelstra’s “Scriptless Scripts”? • Smart Contracts • Non-predicate scripts? • None of the experiments above are Turing-complete, but where exactly is the line between?
  • 37. References C. Allen, G. Maxwell, P. Todd, R. Shea, P. Wuille, J. Bonneau, J. Poon, and T. Close. “Smart Signatures”. Rebooting the Web of Trust I. https:// github.com/WebOfTrustInfo/ rebooting-the-web-of-trust/blob/ master/final-documents/smart- signatures.pdf. 2015. C. Allen, S. Appelcline. “Smarter Signatures: Experiments in Verification”. Rebooting the Web of Trust II. https://github.com/ WebOfTrustInfo/ ID2020DesignWorkshop/blob/master/ final-documents/smarter- signatures.pdf. 2016. bit.ly/SmarterSignatures #SmartSignatures
  • 38. March 6-8th in Santa Barbara https://rwot6.eventbrite.com Are you a Language Geek? Come to Next #RebootingWebOfTrust “To influence the future of decentralized trust and self-sovereign identity through the establishment & promotion of decentralized identity technology. This is done via the collaborative creation of white papers and specifications & by public presentations of these ideas.”