Can you use a blockchain to track government funds? How hard is it? The answer is yes and ‘not hard.’
Recently I have heard stories of how there is government corruption and misuse of federal funds, and it has been going on for a long time. (Also here) However, I don’t often hear solutions of how to best track federal money or being able to run audits in a timely way. Enter blockchain technology.
Some would argue that it works just fine to use centralized solutions to track the money, but with blockchain technology, you can move funding around, and set up a structure that is transparent and easily auditable – by design.
There may already be solutions out there, but I haven’t found any good examples to post here. So if you find any, please let me know.
The following post will describe in detail how I set up a proof-of-concept to track government funds on a blockchain solution. It starts with the US Government approving the bill and issuing the funds. It then follows the funds from organization to organization. At the end, it will show one way of tracking the funds that are spent and removing the funds from the system. It doesn’t just get rid of the funds, but executes a transaction for the balance that is spent, and proves a transaction ID and audit trail of each dollar from start to finish.
Before I get into the actual solution, I wanted to mention what the process is for this tracking and how it works. There are some steps that would be needed in order to get this system into production. Everything described in this post is merely a proof-of-concept. I wanted to see if I could build a simple solution that could be used to track funds. Then I tested it out. There are probably a lot of questions about what this system would and would not be. At the end of the post, I will add a section for “things to consider” so hopefully that will answer some of the questions that will come up.
First, this system relies on many different Waves Cryptocurrency Wallets. (More about the Waves Platform here.) That will raise a lot of questions right away. Government funding and a slightly unknown crypto platform hardly can be seen hand-in-hand working together. But the Waves Project has been around for at least 5 years and is a solid blockchain platform that I have used for many projects. It is easy to use for most people in the blockchain space, and anyone with experience in an IT department would be able to figure it out with some light training. (very user friendly.) Unlike other blockchain platforms, you do NOT need to be a blockchain developer to use it.
Second, the process uses Token Creation. It is basically like creating your own cryptocurrency. However, even though this process could be used to create a crypto that has real-world-value, there are steps that were NOT done in order to make that possible. One example is: I didn’t list it on an Exchange. There are multiple other things that a developer team would need to do in order for it to be considered an actual cryptocurrency. So the coins mentioned here (called FundTracker Coins) should instead be called a token, because it is a digital asset that represents money, but it is not a full cryptocurrency. More details below.
Next, when using this system, there are some assumptions that should be known to everyone using it. Each token (called FundTracker token) should be considered equivalent to 1 US Dollar. (USD) When the token creation process was tested, there were properties configured that would make it similar – such as giving it two decimal places and making it re-issuable.
We took a recent example of Mississippi TANF funds (see here) that were approved for Year 2022, and created exactly 16.6 billion tokens to be issued out by the US Government. The tokens start in the US Government Wallet, and were moved to each state’s wallet – just as funding would move down to the states when they are issued. Wallets are created and issued out to each organization as the process is stood up. This is all explained in the next section.
This section will walk through how the FundTracker system was brought online and what each step entailed. There should be enough detail, so others can follow along and even replicate this system in the future as needed.
- The Waves Platform was chosen for this solution. We used the TESTNET so that we could run this system – and it would not cost anything besides the cost of existing computers and internet.
- Documentation here: https://docs.waves.tech/en/
- The software from the Waves Platform that was used was the Waves FX Wallet Software. It can be downloaded here.
- Everything on this blog post can be done on a Windows OS computer. So just ignore anything not related the basic Wallet FX install on windows OS.
- Once the software is installed, you will need to create a new account.
- Be sure to select TESTNET. (By default, the drop down says MAINNET. )
- The first account you create is considered the US GOVT Wallet. So you will want to name that account something like “WALLET_USGOVT_01” or whatever you want to call it.
- It will ask you to create a password. I used an online password generator for all passwords. Not the safest method, but this is only a test system.
- Consideration would need to be made for who should be the Administrator for each wallet that is created. Wallets are generally controlled by individual users. Otherwise there would need to be a Custodial Wallet process set up. I won’t get into details about this in this blog post, but can expand on this in a later blog post if needed.
- In the process of creating the wallet, it will give you SEED WORDS for you to save. Be sure to save them in a safe place. Losing the seed words could result in the loss of access to the Wallet permanently. (if password is lost)
Wallet 01 Name:
The following list are the Wallet Address IDs that were used in my test:
US GOVT 3NBUChGaPdCNkvL4SJZLfUbHW1M6egHUFBQ MS WALLET 3N2cbSPiAe9YknksccmuVQMevC9haNvQVLh TANF WALLET 3MuhYHrXFQxC2xNuS7Hs8yEwaUwnqQP1Z6D
6. The Waves Block Explorer that I used is here: https://wavesexplorer.com/?network=testnet
7. In order to do anything on the platform, you need WAVES Coins to pay for it. Since this is TESTNET, the coins can be received to your wallet from a Faucet. That is found here: https://wavesexplorer.com/faucet?network=testnet
8. A brand new token is created called FUNDTRACKER COIN. This coin has no real world value and is only used for tracking federal government funds as they are created and moved around between organizations, people, and wallets.
TOKEN ISSUED (Digital Asset) Name: FundTracker Coin Asset ID: 6RHmhAAMdY2QSyj74mQd4PEQ1wRxUEu2MTzPrLVWxsgY Balance: 16,600,000,000 DETAILS: ISSUED: Issued FundTracker Token Amount: 16600000000 6RHmhAAMdY2QSyj74mQd4PEQ1wRxUEu2MTzPrLVWxsgY 2022-09-14 22:06:55 URL: https://wavesexplorer.com/assets/6RHmhAAMdY2QSyj74mQd4PEQ1wRxUEu2MTzPrLVWxsgY?network=testnet
9. A wallet is created for every state in the United States. For this example, we are going to use the state of Mississippi.
- The reason we are doing that is because we want to be able to track the funds that went from the US Government to the State of Mississippi and on to other organizations.
NOTE: For this proof-of-concept (POC) we did not create the other 49 wallets for all the states. Only the Mississippi Wallet was created. In a further testing scenario, that would have to be done. It would definitely be needed for a production system.
10. Logged back into USA Government Wallet. (Wallet 01)
11. Send 94 Million FUNDTRACKER TOKENS to MS_WALLET_03.
Sent 94 M to Mississippi Wallet: Sent 94000000 FundTracker to 3N2cbSPiAe9YknksccmuVQMevC9haNvQVLh 4cmpUgXTMrc4K8p9wvow8HLMnjYEag3F37Ag5N8tMSBw 2022-09-14 22:17:55 TX ID: 4cmpUgXTMrc4K8p9wvow8HLMnjYEag3F37Ag5N8tMSBw
12. Log into the MS_WALLET_03 and check the balance to make sure the funds are there.
13. NEXT STEP IS SIMULATED: The remaining funds would normally be sent to the 49 other states for this fund. I did not create 49 other Waves Wallets for this. Remaining funds are still sitting in US_GOVT wallet.
NOTE: The remaining balance that is still in the US GOVT wallet can be seen here:
(look under Assets)
14. NEXT STEP IS SIMULATED: After the US Govt. has issued out all the coins from their wallet to all the states’ wallets, each state would distribute the correct amount of coins (funding) to each wallet for each approved organization. We continue on with this example for Mississippi.
15. Create wallets for each approved organization that will be receiving funds.
16. For this demonstration, I am going to create a wallet for MISSISSIPPI TANF WALLET:
MISSISSIPPI TANF WALLET Create next wallet: Account Name: MISSISSIPPI TANF WALLET Public wallet address: 3MuhYHrXFQxC2xNuS7Hs8yEwaUwnqQP1Z6D URL: https://wavesexplorer.com/addresses/3MuhYHrXFQxC2xNuS7Hs8yEwaUwnqQP1Z6D?network=testnet&search=3MuhYHrXFQxC2xNuS7Hs8yEwaUwnqQP1Z6D
17. Send FundTracker Tokens from MS_WALLET_03 to TANF WALLET
Sent 20000000 FundTracker to 3MuhYHrXFQxC2xNuS7Hs8yEwaUwnqQP1Z6D BW2UNxZfKK1TWmAcsgGTJKU6NyZbo7nTLSjqFmVp5gGe 2022-09-14 23:05:28 TX ID: BW2UNxZfKK1TWmAcsgGTJKU6NyZbo7nTLSjqFmVp5gGe
18. NEXT STEP IS SIMULATED: User Wallet Creation
The next step would be to require that all users who needed funding, to set up a Waves Wallet. They would use that wallet to track funds from TANF wallet.
For now, it is too new of a system to force users to do the above step.
For this demo, and probably for the production system to start with, administrators would create a wallet for each user that would be receiving federal funding from the State of Mississippi. Then send FundTracker Coins to each of the wallets. The amount of funds would match the USD amount that they would be receiving. Then you can track the funds to the user’s wallet.
19. NEXT STEP IS SIMULATED: Sending FundTracker Coins to Individuals
The next step would be to send coins from the TANF wallet to each user’s wallet. The amounts should match the dollar amounts of funding in USD that each individual would be receiving.
20. BURNING COINS PROCESS
There would need to be a process to burn FundTracker Coins. This would happen primarily at the end of the stream of transferring the coins from A to Z. At the lowest level of the transfer of funds, the funds would be used for buying items like groceries or paying contractors to build buildings.
This was tested out on WAVES TESTNET:
TX INFO: Burned 10 FundTracker Coins TX ID: 7Unsf5kmUowjKSjf1pnbmPipnvZNkQWRTQ24hCdtVvJa 2022-09-14 23:51:11 URL https://testnet.wavesexplorer.com/tx/7Unsf5kmUowjKSjf1pnbmPipnvZNkQWRTQ24hCdtVvJa NOTE: There isn’t a way currently to make additional notes during the burn process. So the reason for the burn would have to be noted somewhere else. That is why the Production System would be considered a hybrid system rather than a pure blockchain solution.
It is recommended to have a daily or weekly reconciliation process in order to account for every FundTracker Token in every wallet. This ensures accountability of every token and it makes the system the most accurate. Personnel from IT AUDIT and Finance/Accounting are well versed in this process.
This completes the section for using the Waves System for tracking government funds. It is not that complicated to use, and we can be contacted for any training that is needed.
OTHER THINGS TO CONSIDER
- ISSUE WITH WALLET IDs to REAL IDs
There is an issue with being able to connect the WALLET IDs to Real Government issued IDs – such as Driver’s Licenses. You could make this a requirement and turn this system into a HYBRID WEB APPLICATION and track the WALLET ID and REAL ID inside of a normal database (table). Whenever tracking is done and you get to the step of needing to identify who has the funds, you would use that other database table (ID >> ID) in order to identify who owns that wallet.
- DOWNSTREAM TRACKING REQUIRES A WALLET
In order for the system to work, anyone downstream that would want funding, would be required to set up a wallet. There could be a custodial system in which admins of this system would create wallets for them. Then as payments are sent from one person/organization to another, the same amount of FUNDTRACKER COINS are also sent wallet to wallet. The only way to ensure the system works, is to continue doing this process for each transaction.
- WALLET OWNERSHIP CAN BE COMPLEX TO SOME ORGANIZATIONS OR PEOPLE
Not everyone is good at technology. Creating and maintaining ownership of cryptocurrency wallets is not an easy task. It would probably be best to have admins of the main system work on behalf of the users to create wallets and maintain ownership on behalf of the organizations and users. This could get complicated, as cryptocurrency wallets are generally meant for individual users – rather than a custodial set up.
- FUNDTRACKER CRYPTOCURRENCY HAS NO VALUE CURRENTLY
This system as it is designed in this first version, creates the cryptocurrency as having no real world value. The creation of the coins is merely to indicate an equivalent real-world value of USD that is being moved around between organizations and people.
It certainly is possible to make additional changes to this system, that would then cause the cryptocurrency to have value on the open market. But there would have to be additional steps taken in order for that to happen. The system would have to have significant enhancements in order to turn it into a financial system – rather than just a record keeping system.
The process for creating a real world cryptocurrency is out of scope for this version of the FundTracker System.
- WAVES COIN IS REQUIRED FOR PRODUCTION SYSTEM
If this system is going to be considered for being LIVE in Production, it would cost real USD (money) in order to generate the FundTracker Coin. There are also transaction fees of 0.001 Waves or an amount less than 0.01 USD. It would take a fraction of a penny, for every transaction that the system would execute.
In order to estimate what it would cost to run the system, there would need to be an accountant on the project team that could calculate and forecast what that would be. Doing this is out of the scope of the current proof of concept.
- WAVES COIN FLUCTUATES IN VALUE
It is important to note that using the WAVES System in PRODUCTION would require the WAVES COIN for token creation (new coins) and to execute transactions on the WAVES MAINNET blockchain network. In order to find the current price up to the minute, go here