-
Notifications
You must be signed in to change notification settings - Fork 0
/
updates.tex
7 lines (4 loc) · 2.03 KB
/
updates.tex
1
2
3
4
5
6
7
% !TEX root = GovChain.tex
It seems counterintuitive at first to use an established, immutable blockchain in order to commit to data that is subject to change often. It is yet a principal requirement of governments for data to be updated, given the complex architecture of hierarchies and the nature of the information the documents may contain. Documents collecting signatures may change daily, spreadsheets may be corrected for errors, and agendas of public projects may be filled with more details as the time passes. The basic solution given above with a small tweak actually allows to perform this.
The solution is based on the following simple idea: allow two types of leafs in Merkle trees: new documents and new versions of previous documents. Whenever a new version of a previous document is published, it must include the hash value of the \emph{last version} of that same document, thus creating a blockchain structure for the history of each document. Now, since this is not occurring in a smart contract, the government could simply publish two different updates of the same document, thus \emph{branching} a document's history. However, in such a case an interested organization verifying governments actions would have a trivial proof (verifyiable by anyone) showing that the government is doing something incorrect.
More formally, leafs of a Merkle tree would now look like $h_1,\ldots,h_j,(h_{j+1}:h_{j+1}'), \ldots,(h_n:h_n')$ where $h_1,\ldots,h_j$ are hashes of new documents and $(h_{j+1}:h_{j+1}'), \ldots,(h_n:h_n')$ represent that the document with hash $h_{i}$ is an updated version of the document with hash $h_{i}'$. Note again that there is not enough information in this data structure to verify that the government is behaving correctly. For example, we cannot immediately deduce that $h_{j+1}'$ is indeed the last version of a document (or if was ever published). However, this is a task that a guarding entity can perform at relatively low cost, and could output irrefutable proofs proofs of both misbehaviours (or errors) and integrity.