Previous submission: https://devpost.com/software/community-loans
What it does
The idea is to allow users to give out and take uncollateralized loans in a peer 2 peer manner. Users can advertise loans they want to give out, other users can then accept those loans and finally, the loan advertiser can choose the accept the user that wants to take the loan.
Loans should be accepted based on a few factors:
- The general reputation of the loan taker/loan advertiser.
- Whether the loan advertiser/loan taker is trusted by others who we trust
The app uses ipv8, a p2p library so that the app can be used without a centralized server, and trustchain to record the loan agreements on a distributed ledger. The recorded loan agreements are used to determine a user's reputation.
I'm not sure about this, but you could potentially argue that the digital agreements can be seen as a contract, which could add a second layer of protection.
Currently, a token is used to represent a CBDC. When the app launches, the CBDC token will be acquired from the xrpl dex.
What is new
Compared to the previous hackathon, I added the following features:
- Ability to add a nickname
- Ability to "trust" another user
- A simple reputation scheme.
Who is the app for?
I took inspiration from where I am from. There, many people loan each other money informally, or they loan money from companies that charge extremely high interest rates.
With this app, people would be able to take loans without paying a huge amount of interest. The reputation and trust aspect of the app would minimize instances of fraud.
In my experience, people use their phones for everything and might not even have a computer.
In my experience, normal people that take loans don't have collateral to give that is easily tracked on a blockchain. I don't think collateralized loans really help the ones who actually need loans. If you are taking the loan, then you don't really have anything to give. Or at least anything that isn't something like a car or house.
Successfully repaying a loan should give + 1 reputation, while not doing so would give -1 reputation. I didn't think too much about this, but obviously not repaying a loan should have a large penalty.
I also need to think about how to incorporate the trust aspect into reputation. Currently, my idea is to show that a user is trusted by others that we trust, but it might be better to add this to the reputation score somehow.
I also need to think about what happens to those who trust a malicious user. So If alice trusts bob and then bob does not repay a loan. Then alice should probably also lose some reputation.
One of my ideas is to have instances of this app running in each city, town, or neighborhood depending on the number of people that live there.
The app is a peer-2-peer system, so anyone can join. However, hopefully, if a central bank issues a CBDC, they will also make some kind of identity mechanism available, so people can easily prove that they are real. Otherwise, they will have to rely on the reputation system.
Another idea is to have a company and make the app more centralized and require users to verify their information with the company.
Running the app
I've only run the app on my phones for testing, so I can't be sure that the app will run on other phones. I recommend giving the app all permissions in the settings since I still need to add logic to ask for permissions.