Rwanda is a bit of a magical place! Awesome place to call home. I am a little biased of course. That being said, however, land ownership has been traditionally a major source of interpersonal conflicts. How do you know who owns what land? What happens when someone rightly or falsely claims that a piece of land belongs to them? For a long time, there were paper certificates. But those could easily be forged, leading to even more conflicts and court cases. I hope that's starting to sound like a serious data problem. If not yet, I will define it more concretely.
In 2018, The UK GDPR Article five set out seven principles to safeguard personal data. Among the others, I would like to pay special attention to sections d and f. They dictate that personal data should be accurate and safe from potential destruction or damage.
- "(d). accurate and, where necessary, kept up to date; every reasonable step must be taken to ensure that personal data that are inaccurate, having regard to the purposes for which they are processed, are erased or rectified without delay (‘accuracy’);
- (f). processed in a manner that ensures appropriate security of the personal data, including protection against unauthorized or unlawful processing and against accidental loss, destruction or damage, using appropriate technical or organizational measures (‘integrity and confidentiality).”
Now, as far as section (d) is concerned, Rwanda has taken some serious giant steps in the right direction. Every land is registered in a system that keeps track of who owns what and where. The friction is reduced, to a degree. That has lead to a reduction in property conflicts.
The problem, for which we are proposing a potential solution is the section (f). Personal data should be processed in "a manner that ensures appropriate security." In Rwanda's case, land data is centrally stored in a few databases. They are subject to hacking and data loss. As a result of this centralization, it still takes months for one to obtain a new certificate if they happened to, say, buy land. The data has to be validated by multiple government departments, the city planning, the tax, etc. Each takes months and update their record. To push the needle on this problem, we proposed
Oh and by the way, I'll let you in on a little secret. You just have to promise not to tell anyone.
Nala translates to land in Korean! Just between you and me.
✏️ What it does
NalaNet aims to decentralize land ownership by hosting proof of land ownership on the Hyperledger Fabric blockchain network. By doing so, we have an immutable, single source of truth that tells us how land has been distributed.
Government agents can “create” land and transfer it to the respective owner, and owners of land can choose to transfer those assets to others. Each of these transactions will be stored on the blockchain network, making it easy to see how pieces of land have been passed around.
Our website dashboard makes the entire land ownership easier to understand/visualize.
🛠 How we built it
Our backend was built on Hyperledger Fabric and was hosted on Microsoft Azure
- Our Fabric network requires use of various yaml files and chaincode written in Go
We interfaced with this network by using Express.js
- This allows us to create an API hosted on Azure that the frontend can easily call
- An (to be fully deployed/integrated) authentication system was built with Express.js and a MySQL database hosted on Google Cloud
Our frontend was built with React.js and hosted on Vercel
🛑 Challenges we ran into
Pulling the project together was challenging—we definitely over-scoped a bit and chose something maybe a bit too big for us to pursue.
A couple other challenges include:
- Hosting on Azure is expensive and one team member went through all his student trial credits
- We planned to host the frontend on Dfinity, but the file size was too large
- Learning how to build a blockchain network is a difficult process
🏆 Accomplishments that we're proud of
We’re proud of the fact that in the end
- We set up a Hyperledger Fabric network that functions properly
- We have the base setup for the Express.js API, a bit more time would’ve allowed us to get it fully working
- The website frontend looks amazing
🧠 What we learned
We learned A TON from this project. It was our first time putting together a Hyperledger Fabric network on our own, and there is sooo much stuff that goes into it, including:
- Yaml files to set it up
- Go files for chaincode
- Creating peers and organizations (users on the network)
- How peers/organizations interact and agree to transactions
We also learned about Express.js and how to create APIs using it, as well as the basics of deploying on Dfinity.
🖥 What's next for NalaNet
The biggest thing to do next would be to finish up the Express.js API and link it with the frontend. Besides that, it would be great to find a cheaper hosting solution and iron everything out.