The past month has been incredibly productive for us as we tie up the last few details around the Coordicide specifications. Handing over the Coordicide specifications to development will be a major milestone for our team. We appreciate everyone’s interest in our work and patience throughout this process. Below are specific updates highlighting progress in each area.
GoShimmer Implementation. The GoShimmer team has been focused on the integration of FPC with the value Tangle. A major effort has been dedicated to refactoring the entire value transaction process so as to make the code more stable and clean. We have also introduced the concept of synchronization. This means that a node joining the network is aware of its synchronization status by checking if the messages it is using as “anchors” are solid or not. A brand new Tangle visualizer is now part of the GoShimmer dashboard. Moreover, the integration test framework has been improved as well as enriched by implementing more tests for the dRNG, synchronization, and message relay. As always, you can follow the development on our GitHub repository.
FPC. We submitted a research paper on an optimized version of FPC. This version of FPC is tailored for a setting where the voting power is proportional to a node’s mana. Once the refereeing process is finished, we will make the results public. Currently, we are writing up a short research note that investigates effects that may arise from weighted voting such as loss of anonymity, centralization, scalability while discussing their relevance to protocol design and implementation.
Specifications. Many new specifications are in the process of being finalized, such as those for Peer Discovery and Resynchronization, and we expect many more to be finalized by the beginning of next month.
As we mentioned in last month’s update, we have been working on a new “naming” scheme for the new Coordicide structures. A couple of follow-up discussions on this topic have been very productive, and a new naming scheme has been finalized. A blog post on this is forthcoming, and we look forward to having new, standardized language for all aspects of IOTA after Coordicide.
Networking. We are currently working on performance optimizations of the congestion control algorithm. The proposed scheduler is based on deficit round robin, which is lightweight and allows the protocol to achieve minimum delay, maximum utilization and weighted fairness (i.e. throughput proportional to mana). As for the attack analysis, we have verified that a malicious node trying to exceed its allowed throughput will result in a delay for its own transactions, while honest transactions will be unaffected. As a consequence, malicious behaviors can be detected and penalized.
The team has also presented the paper entitled “On the Fairness of Distributed Ledger Technologies for the Internet of Things,” which discusses our Adaptive PoW algorithm, at IEEE ICBC 2020. In the context of VDFs, we are currently evaluating multi exponentiation techniques based on the Lenstra algorithm. Among other reasons, this algorithm is relevant to reduce the VDF verification time.
dRNG. We finished the first version of the dRNG module specification for the post-Coordicide IOTA network. Our solutions involve committee selection from high mana nodes (using a special “application” procedure). The committee then uses a threshold signature-based scheme to produce random numbers. Currently, we are focusing on a collaboration with engineers to help us improve on the specifications and optimization of the adopted solutions. We intend to share our results and publish them in the form of a scientific article.
Mana and Autopeering. In the last month, we have been writing the specifications for Mana and autopeering, with an internal goal of finishing both by next month’s update!
We noticed a few challenges with how we planned on implementing mana into autopeering. Essentially, our current proposal was going to cause the network diameter to be too large while not providing sufficient protection for low mana nodes. See the discussion here for the technical details. We devised a few potential easy fixes, and then we used our autopeering simulator to test these solutions. The simulations showed that one particular solution works very well, and so we will now add this to the specifications.
Protocol. The study of possible bottlenecks for the message processing by nodes gave us a list to be discussed and simulated with the other teams. These simulations, which we expect to perform this month, will also allow us to measure performance in different situations. We have progressed on solving small issues such as solidifications. In the Coordicide Tangle, there are two instances of solidifications that work much differently from each other. We also started to research the problem of orphanage, or how to define when a message should be removed from the ledger state. We expect to conclude this by next week and move directly into writing the protocol and processing specifications.
We look forward to sharing more updates with everyone next month! As always, you can stay up to date with the IOTA Research team in the #tanglemath channel on our Discord. And you are welcome to follow and participate in our technical discussions on our public forum: IOTA.cafe.