I think it would be great for the database to be implement on blockchain system, as it workflow (real world manual services) are not sufficiently great for maintaining a great amount of data.
Disclaimer: I don’t had any data to benchmark on Live Server of Indonesian Civil Registry (Dukcapil), anything measured on public available data ONLY.
The Migration Possibility
As you read this sentences, you might wonder if this migration would be useless (well, you not truly wrong) but if you thinking it throughly, This migration would be a great leap on how Indonesian data transferred inbound or outbound.
Disclaimer: This post is not talking about decentralized blockchain, only covering the technology in general.
You might already think, what exactly to migrate right? if you think it would be like a cryptocurrency, you are wrong, except it is equal terms on how the technology work. But in cryptocurrency, you had value to be marketed, this topic were talk the management on internal.
How is it related to current technology? Well, it is a bit (or much) worst than you think when they might be lazing off while data are leaked frequently. This scope has a tremendous impact on securing the data, which will be explained later in this post.
The performance? well security without performance are nothing if it not optimized, I’ll try to cover that too on how it impacted the manual services.
Civil registry on blockchain
If it a blockchain, there would be a genesis block existed? well try to explained that first: yes, it would be a genesis block existed on how the data served, the best data to be registered as genesis would be a related to government or the country, is it the mascot or anything that would fit the most, as it is immortal being or anything that would represent the country philosophy.
Was it the fitted most on how registry genesis should be? well, not enough if it is not held a special id, which no district or even city could be replicate, the identifier? yes of course it would be consist 16 length of integer as earlier version of national id would work, how about the 6205001708450001? is it sound so national enough?
62 represent the country phone code and 05 were represent the ideology consist of 5 verses, plus 00 is any technical terms would start on zero, 170845 would be the independence day of 17 August 1945 and the 0001 represent the country foundation.
- It is not affiliated with any district nor city, it is neutral
- Represent the country foundation, it’s national ethics
- Technology influence play a huge role on the philosophy, sign of modern age
How it works?
Well, the system is running on private isolated network, nobody could access the system without authenticated on main switch, authentication within RSA-2048, take a long time to crack.
If it were me, who developed the system, I’d create the data separated into several columns:
|Identifier||Name||Birthplace||Biometrics||Sign||Address 1||Address 2||RT||RW||Subdistrict||Religion||Occupation||Blood Group||Marrital||Photo|
|integer||string||string||child row||light model||string||string||integer||integer||string||integer||integer||integer||boolean||binary png|
How about gender, district, cities? It is already encoded in the identifier itself, which could be decoded anytime at ease. The hard part is getting started. As you say, it is blockchain but has seen no blocks. Well, it is appended in an extra column that consists of previous identifier hash and, of course, a timestamp, data mentioned earlier was just templates. It could be another form if required. Household cards would be written into the system at some point.
Do the miners get actually paid? Well, no, the miners are an internal system that gains nothings to solve the hash.
Is it safe enough to store data in unencrypted form even the authentication is complicated? Then, how about it is encrypted with a key that only can be accessed from the citizen card? The card would consist of an identifier number and the decrypt key.
What if the card is gone? The biometrics should remain unencrypted. Is it safe? Well, it is for validation purposes. The developer couldn’t decrypt the data with the biometrics alone. It only consists of a validation model.
There is nothing that can be done after the decrypt key is already gone. Validation will only create new data, not recover the data, as a reminder that identifiers remain unencrypted for lookup that could be duplicated, so how to determine whether the block is active or not? Add a new column that refers to older blocks of the same identifier.
Well that was a short explanation about this concept, I’ll try to cover more to explain if you getting interested on it.