Communicating about the view issue in Hangzhou

A critical bug was found in the implementation of Views in the protocol PtHangzH, which is currently in the exploration phase of the governance procedure. We have prepared a patch for the protocol.

If the protocol is rejected, either by failing to meet the quorum or the supermajority, we intend to submit a patched version in the next voting period.

If the protocol is voted as is, Nomadic Labs will configure the next Octez distribution to automatically patch the bug through the User Activated Protocol Override mechanism. We at Marigold recommend using that distribution as soon as it is available.

Details about the bug

In the Michelson interpreter, calling a view changes key constants in the caller’s environment, but does not restore them correctly. As a result, instructions such as SELF, SENDER and SOURCE will give incorrect results . Consequently, the instructions following a call to the view do not have the right semantic, and could, for example, originate operations that appear to have been sent from the contract providing the view.

7 Likes

By seing such an error at this point, makes me think we should vote no on promotion or is the work around acceptable. What is the impact if not all balers update to the new version of octez, this work around would not be uniformly functionnal?

Dan (from stakefish) here. Thanks for bringing up both courses of action.

It looks like there is about 25% participation with the majority voting yes.
https://www.tezosagora.org/proposal/PtHangzHogokSuiMHemCuowEavgYTP8J5qQ9fQS793MHYFpCY3r

Especially for a critical bug, it would be best that this is brought up to validators that have not voted yet and communicate a course of action swiftly.

Perhaps, in the interest of time, it would be good for you guys to pick one of the options and then communicate the recommended voting direction to the rest of the non-voting validators.

What do you suggest? stakefish has not yet voted here and we would look to your recommendation.

Why would you vote no? We vote for a feature, not the code! Or do you want a new governance process for every bug that is found in the future? If there will be a bug in Florence will you vote again on the Florence proposal?

1 Like

Never said we would vote no.

However you do bring up a very valid point. Clearly there was not robust enough checks on the Views that had the issue which caused this.

We need stricter standards to not let these slip through again. Especially for significant protocol upgrades, we need better audits. Community (and Validators by proxy) should demand it.

@gorfl do you operate your own infra? Or do you stake with a Tezos Validator? I think your voice and opinion should definitely be made known to the Validator you delegate your tezos to and ask them to act accordingly. I think your passion and opinion would be important a la delegator<>Validator conversations

@Marigold can you comment here on your suggestions?

What follows is my point of view, not necessarily representative of everyone at Marigold


What do you suggest?

I believe the Protocol Override is best, because I expect bakers to vote on features rather than a particular implementation.

Clearly there was not robust enough checks on the Views that had the issue which caused this.

This is not clear at all. Unfortunately, checking for robustness is not trivial. If anyone has any specific idea, I’d gladly discuss it with them in private.

From my point of view, the best thing to do is to hire more core devs across teams and train them to cover for blindspots.

1 Like

Got it. It looks like it will pass with yes and we’ll support the Protocol Override.

Thank you for bringing this up. Please do reach out if there is anything the validator community can provide!