Notarization in Blockchain (Part 1)
In this three-part article, we will examine various types of notarization using public blockchain. The types include (1) proof of existence of a document, (2) proof of existence and ownership of a document, and (3) transfer of ownership of a notarized document. Blockchains mentioned include Bitcoin, Ethereum and NEM.
Notarization is always considered one of the use cases that distributed ledger technologies (DLT) can provide or even disrupt. Although in short term we won’t see the complete replacement by technology, there are some implementations already providing notary services in the public.
In this series of articles we will take a high-level view on notary service and DLTs, and examines the various levels of notary services that can be delivered.
(Note: From now one I will use blockchain instead of DLT. Blockchain is one type of implementation and by far the major one, although the notary services described below can also be implemented in non-blockchain DLT.)
(Note again: The study of notary is inspired by an article written by Sean and you can find it here. From this article I am exploring some more notary service models available in other blockchains.)
Notarization and Blockchain: an Introduction
According to National Notary Association (link),
“Notarization is the official fraud-deterrent process that assures the parties of a transaction that a document is authentic, and can be trusted. It is a three-part process, performed by a Notary Public, that includes of vetting, certifying and record-keeping.”
In real life, notarization is relevant to law. Notary public plays the important role in the whole well-defined process and the result is legally binding.
People keep thinking of how to use information technology to achieve similar capability. The emergence and development of blockchain is highly expected to facilitate if not disrupt the notarization.
Blockchain technology assures that the integrity of data once written in the chain. The promises like tampering resistance, non repudiation and its traceability make blockchain a good candidate to provide some of the notarization capabilities.
There are several notary services available in the market. They have certain commonality in terms of service offering, and also some difference as they are using different blockchain implmenetations. Among them, public blockchain is more preferred. A service built on top of a private blockchain may be subject to service shutdown by a single organization. Public blockchain provides better resilience against attacks like distributed denial of service (DDoS).
We are going to examine three types of notary services, from a simple to a more complicated one in terms of functions and implementation requirement.
Note that these services cannot replace directly the existing notary services under the law. The services here by all means to facilitate or enhance part of the whole process. Whether they are acceptable in countries is subject to the law. We simply focus on their technical aspects and implementation mechanisms.
Type 1: Proof of Existence
This is the very basic but yet still the most common notarization using blockchain: to prove the existence of a document since a time. Any modification of the document can be detected and we can easily tell from the timestamp when this document begins to exist.
There involves two steps in this process: hashing the document and keeping a record on the blockchain.
Hashing the document
Instead of placing the whole document onto blockchain, a more practical way is to put the hash of the document. It is due to
- most blockchains come with limited data space.
- it may be very costly if the whole document is written even though the blockchain supports this.
- data privacy about document.
Hashing promises the following features.
- The same document will always yield the same hash result.
- The hash result is always of a fixed length, no matter what size of the document input.
- Any change of document will have a totally different hash value and therefore can be detected.
- It is impossible to recover the original document from the hash result.
Hashing is implemented as open algorithms, and anyone can implement it anywhere. One common algorithm is SHA256. Anyone can “hash” a document from any computer and using any programming langugages. A common one is done on browser: the hash is calculated without uploading the document to a repository.
Here is an example how a small change of document (from capital T to lower-case t) will yield a totally different hash value. We are using SHA256 algorithm.
Hashing is therefore widely accepted and implemented in almost all notary services and proof-of-existence systems.
Whether a service provider keeps the origin document or not depends on the business model. Some may provide document repository and therefore can cross-check the data integrity on demand or in regular basis. Others may consider this undesirable when data privacy is a major concern. Keeping the document or not does not have impact on the upcoming discussion.
Recording into Blockchain
Once the hash result is computed, it will be recorded to blockchain. Because each blockchain is built with its own purpose, the implementation may be of a bit difference.
In proof-of-existence type of service, only the hash value is stored in the blockchain. The data space requirement is quite low and therefore almost all blockchain can handle this.
Several notary services implemented on Bitcoin network. The method is quite straightforward: spend a small bitcoin payment good for miner processing the record, and place the hash value using OP_RETURN feature.
The transaction then returns a transaction ID. And this is the transaction ID associated with the hash just written on the blockchain.
Here is the model.
Here is taken from stampd.io (link), a notary service provider, who takes this approach to record the Bitcoin network. We see the transaction ID is returned (7c3b97…)
There is some more technical detail about the document.
Here we see,
- The hash result of the original document (65728d…).
- What is written in the Bitcoin blockchain. It is usually the hash value with a unique header (here it is STAMPD## for stampd.io).
- After this transaction is mined in Bitcoin blockchain, this transaction is included in a block (the block number here is 342489).
- The transaction ID (7c3b97…) is the same we see above.
As far as the blockchain is still up and running, using the Transaction ID one can always get back the hash recorded on the blockchain. If we are given a document and wish to check if this document is the original one, we can compare the calculated hash from the given document with this record. If hash value is identical, the document is exactly the original document which hash was recorded before. Also from the transaction ID we can get back the time when the transaction is done. This serves as a timestamp, as a proof when the original document is hashed and recorded.
The technical detail above also shows how to verify this based on the transaction ID. Here is one of several links.
It is a public blockchain explorer, not something provided by service provider (stampd.io). The transaction ID is embedded in the URL. Even stampd.io is no longer in service, the record is still in Bitcoin blockchain, and still can be verified any time.
Here is the output of the link.
What we see from the blockchain explorer is that,
- This transaction ID is found in the Bitcoin blockchain.
- The Received Time serves as a timestamp where this transaction was made.
- The Output Script shows the data being written in Bitcoin blockchain.
- The data contains (a) header and (b) the hash value, begins with 65728d…
- This hash value is used for verify a given document.
This is the first type of notary service, mainly on proving existence of a given document with timestamp. As it is rather simple, the requirement on blockchain is not high. Even Bitcoin blockchain which provides a little space for recording data is good enough for this type of service.
In the next article we will talk on the proof-of-existence of document with ownership information.
Please give me some claps if you find this article helpful.