The document summarizes the development of a blockchain-based notarization application for digital documents. It describes how the application was built for a hackathon but was missing a key feature of backing the digital agreements with bitcoin payments held in multisignature addresses. The developers then extended the original application to include this crucial feature of depositing funds into a 2-of-3 multisignature address to provide a payment backing for the digitally notarized documents on the blockchain.
2. The Slackathon
• PayPal Blockchain Slackathon December 2015
• We set out to build a Notarization application
for digital documents built on the blockchain.
• We delivered the application within the
hackathon deadline
• But it was missing a crucial feature
Objective of talk
Product created during a Hackathon
This talk will cover: What we did, What we were SUPPOSED to do, How we should address the GAP
Ends at: 30’
Background surrounding the event this product came out of.
A Hackathon done on Slack, hence Slackathon
No logo , only my Tee-shirt
Our product goal: Digital Notarization of files using the blockchain
Delivered on-time!
But Missing a feature
Ends : 58’
Product Origins
Example app from bitcore site
How It works: File is observered at point t in time such that later on it can be compared against other files ‘claiming’ to b the same file that was seen.
Bitcoin blockchain provides an immutable data-store for recording time stamped data.
Ends: 1’’ 23’
legal-agreements with 2 parties would be partially digitized and ratified via the blockchain
Example: Tenancy Agreement between a Landlord & a Tenant.
TA scanned into a PDF file. Need to setup a digital agreement that this file was the file that was agreed upon.
Ends: 2’’ 00’
Ends at: 3’’ 20’
Blockchain resembles a linked-list datastructure, has merkel tree for transactions
uses blockchain headers as a datastore for file-hashes
small payment in bitcoins per notarization to cover cost of writing to blockchain
used micropayment API to insert file-hashs to block-header
privately verifiable via bitcoin API
Ends at: 4’’ 30’
Money backs most common legal contracts
Example of a tenancy agreement, tenant would provide a deposit to bind the contract.
Need for escrow
a 3rd party would act as the agent in the contract, the agent being our application
3 parties below: landlord, agent & tenant
Ends: 5’’ 25’
APIs are available to implement our escrow
Construct inputs & outputs for the BTC transaction
Note the input address of the tenant’s BTC account (he’s paying for the deposit remember)
Note the 3 output addresses of the 3 legal parties: lanlord, tenant, agent (DigiNotarize)
Ends at: 6’’ 10’
How do we bolt on this feature on to our original implementation?
This is our proposal
Recall the header-injection we did earlier?
Now we construct a 2-of-3 multisig escrow for the tenant’s deposit
Note the value in BTC, 3 parties defined
We now add it as a transaction in the block which has our file-hash
Thus both the file-hash underpinning the agreement and the deposit backing it are bound as one.
Ends at: 7’’ 00’