Weekly Dev Update #29

THORChain Weekly Dev Update for Week 03–10 Feb 2020

THORChain
THORChain
4 min readFeb 10, 2020

--

Overview

The team are deep in real-world testing and optimisations. There are some issues with reliability so the team have taken the initiative to re-think how some parts of the protocol can be simplified. Work from this will add to the timeline but it is a necessary part of the process to achieve a safe launch.

Coordinated Key-sign

Once such initiative (which is already partially implemented) is how key-signing ceremonies are coordinated. Since the ceremony is already communication-heavy (with added security checks and now with the blame feature), having a leader-less ceremony in an asynchronous environment is posing reliability problems and may not actually be required. Key-signing has to be incredibly reliable, so the team are aggressively pursuing options to increase reliablity.

Under the assumption that at least 2/3rds of the nodes are not malicious, then the protocol can be simplified by electing a key-sign coordinator each ceremony. Instead of having O(n²) communication complexity, the ceremony (with a coordinator) will have O(n) complexity. The coordinator can not be malicious, they simply act as a hub to route information. If they fail to act as a coordinator when nominated, they earn slash points and can be churned out instead. The process is:

  1. Take the message to sign, hash it to derive a number
  2. Modulus the number by node-count to elect a node randomly as the coordinator
  3. Each online node reports availability to the coordinator node
  4. Once the coordinator receives the required threshold of reporting nodes, they inform each node of key-sign nomination
  5. Complete key-signing, purge logs.

As with everything, there are concessions made. The most obvious is that the coordinating node can halt the key-signing ceremony. The counter to this is that they will earn penalties and will be churned out. The second is that although the THORNode binary purges all logs of who is present in a signing ceremony, a custom binary could. The counter to this is that the coordinator is always complicit in the transaction they are coordinating, and the transactions they are the coordinator of are effectively randomly chosen.

The team are navigating unknown territory, with the THORNode binary likely to be the most complex BFT Multi-Party Computation system ever built in the public domain. The team are hyper-aware of the complexity and are working with audit partners Certik and Kudelski to cross-check all decision-making and ensure robust viability.

Care taken now will pay dividends into the future. It is unacceptable that in 2020 centralised exchanges still dominate the landscape, with manual non-BFT custody of assets. The industry is in desperate need of a generalised permissionless-BFT crypto-asset manager, and THORChain is building a solution which is likely to be widely adopted across the ecosystem.

Since the code-base is a public good funded by public money, the team welcome all feedback as to its design.

THORNode

Added features include more redundancy in THORNode, generalisation in the Observer and security enhancements in the Signer.

Real-world testings flushes out bugs which are immediately fixed.

Refactoring is continuous as the code-base matures.

Infrastructure work is necessary to build a network that can be tested regularly.

BEPSwap

While engineering is ongoing for THORNode, BEPSwap’s codebase is maturing and more focus is on hygiene and clean-up.

Asgard Wallet

The Asgard Wallet has been published internally and is undergoing testing before public beta testing. Features:

  • New/Import Keystore or Phrase
  • View Assets
  • Send/Receive
  • Freeze/Unfreeze

Audit

Code Review: 2/3 Review Complete

Economic Review: Commenced

TSS Audit: Commenced

Next Milestones

The updated testnet is in the final stages of testing.

Community

To keep up to date, please monitor community channels, particularly Telegram and Twitter:

--

--

THORChain
THORChain

The official team for THORChain — the decentralized liquidity network.