Please describe your proposed solution.
Cardano’s usage of the UTXO model is arguably its greatest benefit over the plethora of other chains that exist. The UTXO model provides greater security and once you wrap your brain around it, the development of smart contracts is greatly augmented by it. However, UTXOs can be tricky to work with for larger transactions, moreso if non-Ada assets are involved.
Suppose your wallet contains a large number of UTXOs each having different combinations of Ada and non-Ada assets. If you would like to transfer several assets contained in different UTXOs to different output addresses, this transaction could be tricky to structure. Particularly if you are using the CLI interface to do so, which many developers are.
The workaround many use is to run all the transactions sequentially using some kind of queuing mechanism, that executes transactions sequentially. This is an adequate workaround in most cases, but as Cardano grows, the concurrency of UTXOs can become a powerful tool to maximize the efficiency of transactions. The parallel nature of the UTXOs themselves can be leveraged to improve the scalability of the network.
The way to solve and maximize the efficiency would be to devise an algorithm that can schedule transactions given the current UTXO state, predict the future UTXO state, and use that to schedule subsequent transactions. Because of the deterministic nature of Cardano transactions, it is possible to structure transactions during one time period, to optimize for transactions that need to be run in the future. This also means that we can predict the future state of a wallet, if we know what the structure of the transactions are on our planning horizon.
This algorithm would compute the optimal schedule of transactions and UTXO consumptions to use per time period. So instead of running several sequential transactions, you could then use the optimal schedule to get the same done, with fewer transactions. Additionally, a smart algorithm would be able to structure these transactions in light of network parameter constraints to maximise the computational ability of each transaction and subsequently the network nodes that compute it. That way transactions maximize the usage of the potential power of Cardano transactions.
This algorithm would naturally improve the developer experience for projects that run high volumes of complex transactions (Dexes, marketplaces, games et cetera), it would reduce the burden to operate queuing infrastructure and it would subsequently reduce the volume of small transactions on the network, maximizing the computation efficiency of the network and reducing the transaction volume load.
This problem of concurrency has been solved in many different ways in the field of industrial engineering because similar problems occur in logistics and manufacturing. Most notably, the fields of Operations Research and Scheduling Theory contain a number of methods to approach these kinds of problems. Just off the top of my head, this problem could be approached using linear programming, or finite-horizon markov decision processing, or even graph traversal and optimal path algorithms.
I propose creating a math model that solves this problem using some of the aforementioned methods, and a subsequent Javascript/Python script that developers could use to structure their transactions that implements this math model. I propose taking on this challenge as part of an independent study that will count towards my post-grad degree. My degree is a Master of Science with a major in Industrial Engineering, at Wichita State University, in Wichita, Kansas, USA. The outcome of this research would count towards the final semester of my degree, with my graduation being in December of 2022.
Cardano’s success can also be attributed in part to its slow and methodical research-driven approach to solving problems. My goal is to produce a research worthy of being published at the end of this study. Ideally, I would like to see it published in a journal or conference proceedings however that decision can only be made once all the work has been completed and it would be ignorant of me to promise that during a proposal.
Cardano is also a blockchain of the people and the last thing it needs, is to have research conducted that is locked behind corporate paywalls. Wichita State University has a student-owned IP policy, which means that the ownership of this research resides with the student and is not closed behind an institutional paywall. As a member of the Cardano community, I will make this research and the codebase accessible under an MIT license.
There are many discussions that can be had about how blockchain technology can be used to reform the world of education. I believe community based funding platforms such as Catalyst could prove to be incredibly powerful ways to do so particularly as a bridging mechanism to on-board a very traditional system into the next era of technological innovation. Students can get access to very specific funding that is scoped and preconditioned well in advance and audited by a community of people with a shared governance interest that is not motivated by profit only.
Beyond solving an actual problem in Cardano, my hope is that this project could serve as inspiration for future students to make a contribution to Cardano through academic research, and use Project Catalyst as a way to help them along. In that way this would serve both as a solution to an existing problem, and a prototype for solutions to future problems.
Please describe how your proposed solution will address the Challenge that you have submitted it in.
This proposal will improve the efficiency of large and complex transactions, most of which are usually generated using the CLI, a developer tool. This tool would make projects more efficient, reduce the burden for developers to create queuing systems, and allow for the current abilities of Cardano to be maximized.
Besides these immediately tangible ways this proposal will address the challenge, I also believe that this project could become a template or prototype for future researchers to become on-boarded into the world of blockchain and specifically Cardano. There is a massive number of extremely talented individuals out there pursuing post-graduate studies, many of whose contributions will end up being shelved after submission because of the way the traditional academic system works. This proposal will serve as a proof that it is possible to solve difficult real-world problems, through targeted academic research, whilst meeting the requirements for the traditional education system.
What are the main risks that could prevent you from delivering the project successfully and please explain how you will mitigate each risk?
Many of the risks that could occur, even if they occur, will be dealt with before funding is even received or fully realized. Because of the timeline of delivery to meet degree requirements, a lot of the work will be done well before funding is received, possibly even completed. Also, to preserve the privacy of my faculty advisor, their name will not be mentioned in this proposal. Here are some of the risk I can foresee and how I would address them:
- The scope of the project is too small to conform to the requirements for the degree
- This will be addressed by submitting a scope document to my faculty advisor at WSU, which will be approved first.
- The research to develop the math model takes much longer than expected
- This project will be initialized with an in-depth literature study that will have been completed or in its later stages, by the time the first batch of funding will be received. This literature study should provide enough detail to adequately gauge and scope the true extent of the problem. Scope creep or research delays are very difficult to pre-empt so they will be evaluated with my faculty advisor as they present themselves and relevant mitigation steps for each will be put in place.
- The coding takes longer than expected
- The coding will be produced after the math model has been created. One workaround in this situation would be to publish the math model first and then follow up with the coding implementation.
- I become a bad student and I don’t deliver the deliverables
- This research will be guided by three faculty member check-ins. This research will be conducted during the last semester of my studies, with my main thesis research already having been completed. There is very little incentive for me to fail this close to graduation.
- I cannot manage juggling my various responsibilities
- I have been doing the work + study juggling for 2.5 years, with exemplary results. I am confident I have more than enough time management in place to manage my commitments everywhere. Additionally, this independent research replaces the requirements for an in-person course I would have otherwise had to attend and have worked into my timeline.
- Research sniping
- As much as I would like to believe in a perfect world, the reality is, that doesn't exist. There are certain actors in the world of academia that actively engage in research sniping in an attempt to steal the contributions of others and claim ownership of the IP before the original authors have a chance to do so. To reduce the risk of this happening, I will provide my Catalyst co-ordinator with the check-in information and progress reports of where my study is, however the final full version will only be made public once the risk for research sniping has been largely mitigated.