Tribute to Talk Status Report


#1

For the sake of transparency, I wanted to share a status report for the Tribute to Talk MVP, as some contract-level changes may further delay release.

Recap

In mid-March, we decided that the stablest path to an early Q2 release would be to launch on testnet. At the time, the UI was nearing completion, but we’d decided to make a couple of contract changes, to A) ensure upgradeability of the contract and B) build in a means of storing the personalized introduction message from the person with a tribute set.

Item A was particularly critical and should prevent disparate clients from using different version of TtT—and therefore, from users on either not being able to contact one another. We planned to launch the MVP without item B, personalized messages. This is a nice-to-have.

What ultimately happened was more significant: Ricardo added a means to stop the contract, allowing for versioning. He also reduced the contract to a registry, removing all record of relationships and transactions between users. In the original version, the contract contained a history of tribute amounts paid between users.

For obvious reasons, this is better for user privacy. It also makes contract upgradeability and versioning easier.

Currently

Eric & Vitaliy are working on the contract : UI interface, and there are a number of new complexities as a result of the contract changes. A to-do list can be found in the chat sync notes for April 4th.

The following still has to be considered before the feature is mainnet ready:

  • Encryption of manifests used to check tribute payment from user A by user B*
  • Potential race condition between moment of tribute payment and change of user B’s manifest*
  • More private means of payment
  • Future separation of chat and wallet IDs—feature is currently predicated upon their coupling

* = must-haves

Options

In light of all the work remaining, we have two options for launch:

  1. Use previous version of contract; release more quickly, with lesser privacy and no upgradeability.
  2. Introduce the feature progressively, on latest contract, starting with a testnet (i.e. imperfect) release and upgrading to mainnet when the above conditions are fully addressed.

The team is in favor of option 2. Trail of Bits is set to audit the latest version of the contract, and has only just begun work, so there is still a buffer before public release is actually viable.

That said, we are wary of focusing too many resources on Tribute to Talk as Q2 progresses, knowing that there are many other important items to address with an eye toward overall launch readiness.

The specific release path for option 2 is still being decided, but in the meantime, feedback is welcome on this decision and all the details.

Cheers!
(I’m British now.)