SlideShare a Scribd company logo
1 of 27
Bitclamp
A Permanent and Anonymous Publishing
Platform Over Bitcoin
Joe Testa
jtesta@positronsecurity.com
Twitter: therealjoetesta
BSides Rochester 2016
April 23, 2016
Quick Primer on Bitcoin
● Bitcoin is a 100% digital currency.
– Protects against fraud using strong cryptography.
● It is decentralized.
● Payments can be anonymous.
● Payments are permanent.
Why Use Bitcoin To Publish?
● Anything that goes into the Bitcoin blockchain is
permanent.
– Its also (semi) anonymous.
● Removing anything from it implies you have the ability
to revert transactions for everyone.
– You'd need to hash faster than 1,300 PH/s.
● Perfect situation for whistleblower-type documents.
Outline
● I'm going to cover:
– Some bitcoin technicals & background
– Two prior methods of publishing; analyze their
shortcomings
– Unveil a new method; analyze its properties
– Discuss some advanced features
Bitcoin Background
● Bitcoin has its own scripting language to control
transactions (!).
● The stack-based language supports:
– Conditional statements
– Bitwise logic
– Arithmetic
– Cryptographic functions
● Docs: https://en.bitcoin.it/wiki/Script
Bitcoin Background: Transaction
Fees
● Miners want money.
– The block reward is the main motivator.
– Transactions can have fees attached which also go to
the miner.
● Fees aren't strictly mandatory, but zero-fee
transactions can be ignored for awhile.
– Or not, depending on what other transactions are
currently doing.
– It functions as a free market.
– 0.0003 BTC per KB ($0.13 per KB)
Prior Publication Methods
● Bitcoin addresses are encoded ECDSA keys:
Base58(0x00 + RIPEMD­160(SHA256(pubkey)) + checksum)
= 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2
● Base58 is Base64 with some characters removed.
– It is also reversable.
Prior Publication Methods
● The RIPEMD-160 output is 20 bytes.
● Take a 20 byte chunk of data, and apply
Base58 to make an address.
● Send a small amount of BTC to that address.
– Since a transaction can have 256 outputs, you can
put in 20 x 256 = 5K bytes.
– Use another transaction to continue the next block.
Prior Publication Methods: Example
Example for publishing “ABCDEFG...”
1. Convert to ASCII bytes (0x65, 0x66, 0x67, …)
2. Calculate checksum.
3. Create Bitcoin address:
Base58(0x00 + ASCII bytes + checksum)
= 1j3AzhncjRAxZQjiFikyBkCJwFVKNWTKVx
4. Send small amount to this address.
5. Repeat.
Prior Publication Methods
● Someone published the PDF of the original
Bitcoin paper using this method.
● I can't find where it is anymore.
● This says a lot about how useful this method is.
Prior Publication Methods
● This method has two major disadvantages:
– You're destroying coins.
– Nobody has the private keys to the “public keys” you're
sending to.
– UTXO pollution
– Its expensive.
– 0.00000504 BTC (?) per 20 bytes.
– AND have to pay transaction fees!
● 1 MB would cost 0.57 BTC ($255 USD)
Prior Publication Methods
● Bitcoin devs didn't like the UTXO pollution.
● A compromise was reached: the network would
allow the following:
OP_RETURN <40, 80 bytes>
● OP_RETURN results in failure, making the
transaction provably unspendable.
– Can be pruned from UTXO database.
Prior Publication Methods
● This method is very limiting because:
– Payload is tiny.
– Hard to reference other transactions.
– Only one OP_RETURN per transaction.
– Can't put one in each of 256 outputs.
● People currently use this to publish hashes,
silly messages: http://eternitywall.it/
Goals For New Method
● I want a way to publish data of arbitrary length.
● I want to be able to search and/or pull down all
data.
● I want it to cost as little as possible.
● I want tools available to everyone.
Bitcoin Background: Standard
Transactions
● Transactions are evaluated by IsStandardTx()
method call.
– If it fails this check, it will not be relayed around the
network!
● Many opcodes in the scripting language are no
longer allowed.
● I had to find a way to beat this.
New Method: Multi-sig Addresses
● Bitcoin supports “multi-sig” transactions.
– n of m keys need to provide signatures to spend
coins, n <= m <= 15.
– Could require any 3 of 7 keys, any 5 of 11 keys, etc.
● Useful to protect against malware/theft.
– In 2 of 2 scheme, one key compromise is OK.
● Multi-sig addresses begin with a “3”
– 3MtP95DQtAvDWeB45oi2XXv75L16QcFGyGn
New Method: Multi-sig Addresses
● Since up to 15 keys are supported, lets use them!
● We generate one legit key, then say 1 out of these
15 are needed to spend.
● The other 14 keys are really data.
– Raw ECDSA keys are used, which are 32 bytes.
● Hence, 14 x 32 = 448 bytes!
New Method: Multi-sig Addresses
● Advantages:
– Large payload
– Transactions remain spendable
– 448 bytes per output
– Only need to pay transaction fees (if at all)
● Transactions are limited to 10,000 bytes however
(including all headers, etc).
● Can get 90-95% efficiency?
New Method: Multi-sig Addresses
● Publishing 1 MB will cost up to 0.35 BTC ($156
USD)
– Contrast with $255 guaranteed for first method.
● Could cost much less if you're patient.
● Fastest publication time: 20 hours.
– Tradeoff between fees paid and time to publish.
– Very low fee can result in weeks or months.
Other Blockchains Are Viable
Other Blockchains: Dogecoin
● Advantages:
– Fast block times: 1 minute (vs 10 minutes)
– Extremely low/no transaction fees
● Disadvantages:
– Much lower hash rate
– Will it survive?
– Publication may not be permanent
● But maybe that's ok...
Other Blockchains: Dogecoin
● 1 MB can be published for $0.24.
● 1 MB can be published in 2 hours.
● Since the blocks are mostly empty, multiple
transactions can be sent simultaneously.
– 1 MB may be published in… minutes?
Special Features: Temporal Encryption
● By default, all publications are encrypted with a
random key.
– Uses GPG2
● In the last block, the key is divulged.
– Protects the content while its being published.
● Encryption can be disabled.
– In some cases, this may be better.
Special Features: Deadman Switch
● As an insurance policy, an encrypted archive
can be published without the key.
● The user sets up a process to check in every X
hours, days, etc.
● If the user is arrested or killed, the key is
automatically published!
Can Bitcoin Block This?
● Not without interfering with existing functionality.
– Multi-sig support can be reduced from 15 keys to
something lower.
– Can just bump up the number of outputs per TX.
● They might not even care.
– The UTXO database isn't polluted.
– Miners still get transaction fees.
Code & Web Front-End
● The code is available now:
https://github.com/jtesta/bitclamp
● Its currently in beta.
● There will be a website front-end for it.
– You'll be able to publish with it easily.
– Browse, search, and download content.
– ETA: summer 2016
Questions?
Code: https://github.com/jtesta/bitclamp
Joe Testa
jtesta@positronsecurity.com
Twitter: therealjoetesta

More Related Content

What's hot

Blockchain and bitcoin fundamentals (usages and applications)
Blockchain and bitcoin fundamentals (usages and applications)Blockchain and bitcoin fundamentals (usages and applications)
Blockchain and bitcoin fundamentals (usages and applications)Amir Rafati
 
Bitcoin Wallet &amp Keys
Bitcoin Wallet &amp KeysBitcoin Wallet &amp Keys
Bitcoin Wallet &amp KeysShun Shiku
 
gething started - ethereum & using the geth golang client
gething started - ethereum & using the geth golang clientgething started - ethereum & using the geth golang client
gething started - ethereum & using the geth golang clientSathish VJ
 
CBGTBT - Part 2 - Blockchains 101
CBGTBT - Part 2 - Blockchains 101CBGTBT - Part 2 - Blockchains 101
CBGTBT - Part 2 - Blockchains 101Blockstrap.com
 
Introduction to Lightning Network
Introduction to Lightning NetworkIntroduction to Lightning Network
Introduction to Lightning NetworkAlan Carbery
 
CBGTBT - Part 3 - Transactions 101
CBGTBT - Part 3 - Transactions 101CBGTBT - Part 3 - Transactions 101
CBGTBT - Part 3 - Transactions 101Blockstrap.com
 
Blockchain technology
Blockchain technologyBlockchain technology
Blockchain technologyAayt Bahaa
 
Meta X Blockchain Bootcamp
Meta X Blockchain BootcampMeta X Blockchain Bootcamp
Meta X Blockchain BootcampMetaX
 
Cryptocurrency_slide
Cryptocurrency_slideCryptocurrency_slide
Cryptocurrency_slideaman pandey
 
Blockchain Technology
Blockchain TechnologyBlockchain Technology
Blockchain TechnologyPalakGulati10
 
Blockchain Technology: A Technical Introduction to Non-Technical People
Blockchain Technology: A Technical Introduction to Non-Technical PeopleBlockchain Technology: A Technical Introduction to Non-Technical People
Blockchain Technology: A Technical Introduction to Non-Technical PeopleMecklerMedia
 
Blockchain overview, use cases, implementations and challenges
Blockchain overview, use cases, implementations and challengesBlockchain overview, use cases, implementations and challenges
Blockchain overview, use cases, implementations and challengesSébastien Tandel
 
Blockchain Session 1
Blockchain Session 1Blockchain Session 1
Blockchain Session 1DSCPICT
 
Build your own block chain
Build your own block chainBuild your own block chain
Build your own block chainBohdan Szymanik
 
Cryptocurrencies 101 v3
Cryptocurrencies 101 v3Cryptocurrencies 101 v3
Cryptocurrencies 101 v3Brett Colbert
 
Understanding Cryptocurrency
Understanding CryptocurrencyUnderstanding Cryptocurrency
Understanding CryptocurrencyKapil Gupta
 
Blockchain Technology
Blockchain TechnologyBlockchain Technology
Blockchain TechnologyRashi Singh
 

What's hot (20)

Blockchain and bitcoin fundamentals (usages and applications)
Blockchain and bitcoin fundamentals (usages and applications)Blockchain and bitcoin fundamentals (usages and applications)
Blockchain and bitcoin fundamentals (usages and applications)
 
Bitcoin
BitcoinBitcoin
Bitcoin
 
Bitcoin Wallet &amp Keys
Bitcoin Wallet &amp KeysBitcoin Wallet &amp Keys
Bitcoin Wallet &amp Keys
 
Intro into blockchain
Intro into blockchainIntro into blockchain
Intro into blockchain
 
gething started - ethereum & using the geth golang client
gething started - ethereum & using the geth golang clientgething started - ethereum & using the geth golang client
gething started - ethereum & using the geth golang client
 
CBGTBT - Part 2 - Blockchains 101
CBGTBT - Part 2 - Blockchains 101CBGTBT - Part 2 - Blockchains 101
CBGTBT - Part 2 - Blockchains 101
 
Introduction to Lightning Network
Introduction to Lightning NetworkIntroduction to Lightning Network
Introduction to Lightning Network
 
CBGTBT - Part 3 - Transactions 101
CBGTBT - Part 3 - Transactions 101CBGTBT - Part 3 - Transactions 101
CBGTBT - Part 3 - Transactions 101
 
Blockchain technology
Blockchain technologyBlockchain technology
Blockchain technology
 
Meta X Blockchain Bootcamp
Meta X Blockchain BootcampMeta X Blockchain Bootcamp
Meta X Blockchain Bootcamp
 
Cryptocurrency_slide
Cryptocurrency_slideCryptocurrency_slide
Cryptocurrency_slide
 
Blockchain Technology
Blockchain TechnologyBlockchain Technology
Blockchain Technology
 
Blockchain Technology: A Technical Introduction to Non-Technical People
Blockchain Technology: A Technical Introduction to Non-Technical PeopleBlockchain Technology: A Technical Introduction to Non-Technical People
Blockchain Technology: A Technical Introduction to Non-Technical People
 
Blockchain overview, use cases, implementations and challenges
Blockchain overview, use cases, implementations and challengesBlockchain overview, use cases, implementations and challenges
Blockchain overview, use cases, implementations and challenges
 
Blockchain Session 1
Blockchain Session 1Blockchain Session 1
Blockchain Session 1
 
Bitcoin
BitcoinBitcoin
Bitcoin
 
Build your own block chain
Build your own block chainBuild your own block chain
Build your own block chain
 
Cryptocurrencies 101 v3
Cryptocurrencies 101 v3Cryptocurrencies 101 v3
Cryptocurrencies 101 v3
 
Understanding Cryptocurrency
Understanding CryptocurrencyUnderstanding Cryptocurrency
Understanding Cryptocurrency
 
Blockchain Technology
Blockchain TechnologyBlockchain Technology
Blockchain Technology
 

Similar to Bitclamp - A Permanent and Anonymous Publishing Platform Over Bitcoin

Blockchan For Developers
Blockchan For DevelopersBlockchan For Developers
Blockchan For DevelopersAlex Chepurnoy
 
The Emergent Layer 2
The Emergent Layer 2The Emergent Layer 2
The Emergent Layer 2Chris Priest
 
Crypto & Crpyocurrencies Intro
Crypto & Crpyocurrencies IntroCrypto & Crpyocurrencies Intro
Crypto & Crpyocurrencies IntroTal Shmueli
 
Bitcoins: Application of blockchain technology
Bitcoins: Application of blockchain technologyBitcoins: Application of blockchain technology
Bitcoins: Application of blockchain technologyShiv Sahni
 
Blockchain, bitcoin, ethereum and ICOs
Blockchain, bitcoin, ethereum and ICOsBlockchain, bitcoin, ethereum and ICOs
Blockchain, bitcoin, ethereum and ICOsBogdan Fiedur
 
Bitcoin - Beyond the basics
Bitcoin - Beyond the basicsBitcoin - Beyond the basics
Bitcoin - Beyond the basicsChris DeRose
 
Fredericksburg LUG Bitcoin slides
Fredericksburg LUG Bitcoin slidesFredericksburg LUG Bitcoin slides
Fredericksburg LUG Bitcoin slidesAlex Akselrod
 
Blockchain For Developers
Blockchain For DevelopersBlockchain For Developers
Blockchain For DevelopersAlex Chepurnoy
 
Total privacy of transactions, Mimblewimble and Grin
Total privacy of transactions, Mimblewimble and GrinTotal privacy of transactions, Mimblewimble and Grin
Total privacy of transactions, Mimblewimble and GrinEugene Pavlenko
 
Introduction to Bitcoin for programmers
Introduction to Bitcoin for programmersIntroduction to Bitcoin for programmers
Introduction to Bitcoin for programmersWojciech Langiewicz
 
Bitcoin Blockchain - Under the Hood
Bitcoin Blockchain - Under the HoodBitcoin Blockchain - Under the Hood
Bitcoin Blockchain - Under the HoodGalin Dinkov
 
Bitcoin and the future of cryptocurrency
Bitcoin and the future of cryptocurrencyBitcoin and the future of cryptocurrency
Bitcoin and the future of cryptocurrencyBen Hall
 
A research-oriented introduction to the cryptographic currencies (starting wi...
A research-oriented introduction to the cryptographic currencies (starting wi...A research-oriented introduction to the cryptographic currencies (starting wi...
A research-oriented introduction to the cryptographic currencies (starting wi...vpnmentor
 
Intro to Blockchain Slides
Intro to Blockchain SlidesIntro to Blockchain Slides
Intro to Blockchain SlidesShannon Wells
 
Pettycoin: Losing Tiny Amounts of Bitcoin At Scale!
Pettycoin: Losing Tiny Amounts of Bitcoin At Scale!Pettycoin: Losing Tiny Amounts of Bitcoin At Scale!
Pettycoin: Losing Tiny Amounts of Bitcoin At Scale!RustyQRussell
 

Similar to Bitclamp - A Permanent and Anonymous Publishing Platform Over Bitcoin (20)

Blockchan For Developers
Blockchan For DevelopersBlockchan For Developers
Blockchan For Developers
 
The Emergent Layer 2
The Emergent Layer 2The Emergent Layer 2
The Emergent Layer 2
 
Crypto & Crpyocurrencies Intro
Crypto & Crpyocurrencies IntroCrypto & Crpyocurrencies Intro
Crypto & Crpyocurrencies Intro
 
Bitcoins: Application of blockchain technology
Bitcoins: Application of blockchain technologyBitcoins: Application of blockchain technology
Bitcoins: Application of blockchain technology
 
Bitcoin Talk at Rainbow
Bitcoin Talk at RainbowBitcoin Talk at Rainbow
Bitcoin Talk at Rainbow
 
Bit coin(2)
Bit coin(2)Bit coin(2)
Bit coin(2)
 
Blockchain, bitcoin, ethereum and ICOs
Blockchain, bitcoin, ethereum and ICOsBlockchain, bitcoin, ethereum and ICOs
Blockchain, bitcoin, ethereum and ICOs
 
Bitcoin p2p money
Bitcoin p2p moneyBitcoin p2p money
Bitcoin p2p money
 
Intro to blockchain
Intro to blockchainIntro to blockchain
Intro to blockchain
 
Bitcoin - Beyond the basics
Bitcoin - Beyond the basicsBitcoin - Beyond the basics
Bitcoin - Beyond the basics
 
Tmc mastering bitcoins ppt
Tmc mastering bitcoins pptTmc mastering bitcoins ppt
Tmc mastering bitcoins ppt
 
Fredericksburg LUG Bitcoin slides
Fredericksburg LUG Bitcoin slidesFredericksburg LUG Bitcoin slides
Fredericksburg LUG Bitcoin slides
 
Blockchain For Developers
Blockchain For DevelopersBlockchain For Developers
Blockchain For Developers
 
Total privacy of transactions, Mimblewimble and Grin
Total privacy of transactions, Mimblewimble and GrinTotal privacy of transactions, Mimblewimble and Grin
Total privacy of transactions, Mimblewimble and Grin
 
Introduction to Bitcoin for programmers
Introduction to Bitcoin for programmersIntroduction to Bitcoin for programmers
Introduction to Bitcoin for programmers
 
Bitcoin Blockchain - Under the Hood
Bitcoin Blockchain - Under the HoodBitcoin Blockchain - Under the Hood
Bitcoin Blockchain - Under the Hood
 
Bitcoin and the future of cryptocurrency
Bitcoin and the future of cryptocurrencyBitcoin and the future of cryptocurrency
Bitcoin and the future of cryptocurrency
 
A research-oriented introduction to the cryptographic currencies (starting wi...
A research-oriented introduction to the cryptographic currencies (starting wi...A research-oriented introduction to the cryptographic currencies (starting wi...
A research-oriented introduction to the cryptographic currencies (starting wi...
 
Intro to Blockchain Slides
Intro to Blockchain SlidesIntro to Blockchain Slides
Intro to Blockchain Slides
 
Pettycoin: Losing Tiny Amounts of Bitcoin At Scale!
Pettycoin: Losing Tiny Amounts of Bitcoin At Scale!Pettycoin: Losing Tiny Amounts of Bitcoin At Scale!
Pettycoin: Losing Tiny Amounts of Bitcoin At Scale!
 

Recently uploaded

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Bitclamp - A Permanent and Anonymous Publishing Platform Over Bitcoin

  • 1. Bitclamp A Permanent and Anonymous Publishing Platform Over Bitcoin Joe Testa jtesta@positronsecurity.com Twitter: therealjoetesta BSides Rochester 2016 April 23, 2016
  • 2. Quick Primer on Bitcoin ● Bitcoin is a 100% digital currency. – Protects against fraud using strong cryptography. ● It is decentralized. ● Payments can be anonymous. ● Payments are permanent.
  • 3. Why Use Bitcoin To Publish? ● Anything that goes into the Bitcoin blockchain is permanent. – Its also (semi) anonymous. ● Removing anything from it implies you have the ability to revert transactions for everyone. – You'd need to hash faster than 1,300 PH/s. ● Perfect situation for whistleblower-type documents.
  • 4. Outline ● I'm going to cover: – Some bitcoin technicals & background – Two prior methods of publishing; analyze their shortcomings – Unveil a new method; analyze its properties – Discuss some advanced features
  • 5. Bitcoin Background ● Bitcoin has its own scripting language to control transactions (!). ● The stack-based language supports: – Conditional statements – Bitwise logic – Arithmetic – Cryptographic functions ● Docs: https://en.bitcoin.it/wiki/Script
  • 6. Bitcoin Background: Transaction Fees ● Miners want money. – The block reward is the main motivator. – Transactions can have fees attached which also go to the miner. ● Fees aren't strictly mandatory, but zero-fee transactions can be ignored for awhile. – Or not, depending on what other transactions are currently doing. – It functions as a free market. – 0.0003 BTC per KB ($0.13 per KB)
  • 7. Prior Publication Methods ● Bitcoin addresses are encoded ECDSA keys: Base58(0x00 + RIPEMD­160(SHA256(pubkey)) + checksum) = 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2 ● Base58 is Base64 with some characters removed. – It is also reversable.
  • 8. Prior Publication Methods ● The RIPEMD-160 output is 20 bytes. ● Take a 20 byte chunk of data, and apply Base58 to make an address. ● Send a small amount of BTC to that address. – Since a transaction can have 256 outputs, you can put in 20 x 256 = 5K bytes. – Use another transaction to continue the next block.
  • 9. Prior Publication Methods: Example Example for publishing “ABCDEFG...” 1. Convert to ASCII bytes (0x65, 0x66, 0x67, …) 2. Calculate checksum. 3. Create Bitcoin address: Base58(0x00 + ASCII bytes + checksum) = 1j3AzhncjRAxZQjiFikyBkCJwFVKNWTKVx 4. Send small amount to this address. 5. Repeat.
  • 10. Prior Publication Methods ● Someone published the PDF of the original Bitcoin paper using this method. ● I can't find where it is anymore. ● This says a lot about how useful this method is.
  • 11. Prior Publication Methods ● This method has two major disadvantages: – You're destroying coins. – Nobody has the private keys to the “public keys” you're sending to. – UTXO pollution – Its expensive. – 0.00000504 BTC (?) per 20 bytes. – AND have to pay transaction fees! ● 1 MB would cost 0.57 BTC ($255 USD)
  • 12. Prior Publication Methods ● Bitcoin devs didn't like the UTXO pollution. ● A compromise was reached: the network would allow the following: OP_RETURN <40, 80 bytes> ● OP_RETURN results in failure, making the transaction provably unspendable. – Can be pruned from UTXO database.
  • 13. Prior Publication Methods ● This method is very limiting because: – Payload is tiny. – Hard to reference other transactions. – Only one OP_RETURN per transaction. – Can't put one in each of 256 outputs. ● People currently use this to publish hashes, silly messages: http://eternitywall.it/
  • 14. Goals For New Method ● I want a way to publish data of arbitrary length. ● I want to be able to search and/or pull down all data. ● I want it to cost as little as possible. ● I want tools available to everyone.
  • 15. Bitcoin Background: Standard Transactions ● Transactions are evaluated by IsStandardTx() method call. – If it fails this check, it will not be relayed around the network! ● Many opcodes in the scripting language are no longer allowed. ● I had to find a way to beat this.
  • 16. New Method: Multi-sig Addresses ● Bitcoin supports “multi-sig” transactions. – n of m keys need to provide signatures to spend coins, n <= m <= 15. – Could require any 3 of 7 keys, any 5 of 11 keys, etc. ● Useful to protect against malware/theft. – In 2 of 2 scheme, one key compromise is OK. ● Multi-sig addresses begin with a “3” – 3MtP95DQtAvDWeB45oi2XXv75L16QcFGyGn
  • 17. New Method: Multi-sig Addresses ● Since up to 15 keys are supported, lets use them! ● We generate one legit key, then say 1 out of these 15 are needed to spend. ● The other 14 keys are really data. – Raw ECDSA keys are used, which are 32 bytes. ● Hence, 14 x 32 = 448 bytes!
  • 18. New Method: Multi-sig Addresses ● Advantages: – Large payload – Transactions remain spendable – 448 bytes per output – Only need to pay transaction fees (if at all) ● Transactions are limited to 10,000 bytes however (including all headers, etc). ● Can get 90-95% efficiency?
  • 19. New Method: Multi-sig Addresses ● Publishing 1 MB will cost up to 0.35 BTC ($156 USD) – Contrast with $255 guaranteed for first method. ● Could cost much less if you're patient. ● Fastest publication time: 20 hours. – Tradeoff between fees paid and time to publish. – Very low fee can result in weeks or months.
  • 21. Other Blockchains: Dogecoin ● Advantages: – Fast block times: 1 minute (vs 10 minutes) – Extremely low/no transaction fees ● Disadvantages: – Much lower hash rate – Will it survive? – Publication may not be permanent ● But maybe that's ok...
  • 22. Other Blockchains: Dogecoin ● 1 MB can be published for $0.24. ● 1 MB can be published in 2 hours. ● Since the blocks are mostly empty, multiple transactions can be sent simultaneously. – 1 MB may be published in… minutes?
  • 23. Special Features: Temporal Encryption ● By default, all publications are encrypted with a random key. – Uses GPG2 ● In the last block, the key is divulged. – Protects the content while its being published. ● Encryption can be disabled. – In some cases, this may be better.
  • 24. Special Features: Deadman Switch ● As an insurance policy, an encrypted archive can be published without the key. ● The user sets up a process to check in every X hours, days, etc. ● If the user is arrested or killed, the key is automatically published!
  • 25. Can Bitcoin Block This? ● Not without interfering with existing functionality. – Multi-sig support can be reduced from 15 keys to something lower. – Can just bump up the number of outputs per TX. ● They might not even care. – The UTXO database isn't polluted. – Miners still get transaction fees.
  • 26. Code & Web Front-End ● The code is available now: https://github.com/jtesta/bitclamp ● Its currently in beta. ● There will be a website front-end for it. – You'll be able to publish with it easily. – Browse, search, and download content. – ETA: summer 2016