Zcashd Deprecation updates

I also want to thanks the Zcashers that reported issues and helped me reporting them with screenshots and reproducing steps.

4 Likes

an issue regarding zebra: It takes a transaction on the old branch id and returns a txid.
Therefore the user of an old release thinks their transaction is successful.

imo, it is an important issue that should be fixed urgently.

4 Likes

Update from exodus wallet

This software update that includes this fix for the Zcash issue will become available at different times for the different Exodus versions (Mobile (iOS and Android) and Desktop). We cannot guarantee when the software version will become available, but it will likely become available in the next week or two.

This newest version (24.49.5) has already become available for some users of Exodus Mobile on Android devices, and so for them, Zcash transactions should work as expected.

1 Like

Thank you for reporting! We are aware of this issue already and are working on a fix. I’ll update with the PR once it is up.

2 Likes

How did you discover this issue?

I’m asking because we’re seeing V5 txs with the nConsensusBranchId field set to the consensus branch ID for NU5, but they are using the consensus branch ID for NU6 in their SIGHASH, which seems strange.

Some people were using an old version of ywallet after NU6. Since their tx got an id, they thought it went through.

Also, I think it goes beyond just the consensus branch id. You can submit a double spend and get a txid. That’s not the case with zcashd. Getting a txid pretty much means a good tx.

Thanks for reporting this, we’re aware of the issue and a fix is coming soon.

Just to make it clear to everyone reading this, Zebra does not allow double spends. But when sending a transaction through Zebra, it may return a transaction ID (indicating the sending was successful) when submission actually fails internally. This causes some wallets to behave strangely, but any double spend attempt is effectively blocked by Zebra.

5 Likes

December 6th

Hello fellow Zebras! Another week, another update on Zcashd deprecation!

NU6 work is still around. This is the updated chart from last week

Status of wallet NU6 support

Wallet Ready on NU6 Same day or 1 day Nov 27th December 5th
Edge :white_check_mark:
Exodus :x: :warning: (FIX IN PROGRESS) :white_check_mark: release in progress
eZcash :white_check_mark:
NightHawk :x: :white_check_mark:
Ledger Transparent Zcash :x: :warning: (FIX IN PROGRESS)
Ledger Shielded Zcash :x: :white_check_mark:
Unstoppable :x: :white_check_mark:
Trezor :white_check_mark: :white_check_mark:
Trust :x: :warning: (FIX IN PROGRESS) :white_check_mark: release in progress
Ywallet :x: :white_check_mark:
Zingo :x: :white_check_mark:
Zashi :white_check_mark:

A note on Ledger Live issues

Yesterday, developers from Zondax, Zingo, ECC, members of ZCG and myself got together for a code walkthrough of the Shielded Zcash Ledger application code and its integration beyond the Zecwallet fork that Zondax is maintaining. Half of the meeting was dedicated to discuss the ongoing NU6 problem that the transparent Zcash app authored by Ledger for their Ledger live application and how we could contribute to help them solve the issue.

@ainhoa-zondax and Emmanuel from Zondax confirmed that the Shielded Zcash application does not have the problems that the one developed by Ledger has. There’s a tutorial on how to unlock funds from a Ledger device. Warning: It’s not easy and requires that users spend a considerable amount of time building the Zecwallet Application.

Note: I have built the application myself but only succeeded when using x86-64 based processors, that is AMD or Intel. If you have another kind of processor architecture it will probably fail to build.

Outreach (@pili @decentralistdan @pacu):

  • Status: on track

NU6 upgrade still takes a bit of the outreach time. Pili is looking to get in touch with people from Poloniex. If you have a contact to provide please contact us.

Zebra

  • Status: on track

No substantial changes from last week. The Zebra team has been working on RPC method development and also on NU6 derived fixes.

Important bug fixes on RPC return values and also important refactoring in critical RPCs such as getblock which is used by all known clients.

Zaino (ZingoLabs)

  • status: on track

Project Board
Zaino devs discovered a bug on the testing tooling of Zebra that they rely on for integration testing. This is a major blocker for development since they can’t fully test what they code. ZF and Zaino devs are getting together to fix this problem and continue improving developer experience.

In-Memory backend wrap up

- status: on track

Willem from Chainsafe started work on this upstream collaboration and Kris Nuttycombe from ECC has provided feedback on his review Add serde derives to primitive types behind feature flag by willemolding · Pull Request #1627 · zcash/librustzcash · GitHub

I started reviewing this Pull Request and found some improvement opportunities in terms of documentations and API ergonomics. After ECC folks are done with some pressing matters regarding Keystone integration they’ll start reviewing this too (around next week)

Zcashd Wallet CLI

  • Status: on track :warning:

This is scheduled to be completed by the end of January! This timeline is TIGHT!

tracking work on this repository.

ECC core engineers are working on Keystone integration items and looking for developers that can contribute to the RPC support of the cli wallet that will be hosted on github.com/zcash/zcash. Please get in touch with me or @pili if you are interested in contributing. This is the spreadsheet with the RPC methods that the zcash-cli would tentatively need

Wallet Export format

  • Status: Proposal ready, work started

Kudos to Dorian from ZingoLabs for starting a software archaeology work on Zcashd wallet.dat formats along the years. See https://github.com/zcash/zcash/issues/6873

This is super important to write parsers that can read an old wallet.dat file and put it to good use in a newer wallet.

Also, Christopher from Blockchain Commons drafted a proposal for “ZeWiF” with help of Zingo folks and myself. ZCG has brainstormed on it and they are waiting on further feedback from wallet specialists at ECC. We will coordinate a specific meeting with the involved parties to discuss feedback on the proposal and define steps forward.

Have a Fun Friday and a relaxing and repairing weekend.

7 Likes

Zaino devs discovered a bug on the testing tooling of Zebra that they rely on for integration testing. This is a major blocker for development since they can’t fully test what they code. ZF and Zaino devs are getting together to fix this problem and continue improving developer experience.

We have asked the Zaino team to open a GitHub issue on this so we can have all the details in order to prioritise and investigate accordingly.

3 Likes

Thanks for updating the community @pili .

I’ll let @idky137 speak to details on this issue, but from my perspective this is a really wonderful problem to have.

Yes, the Zaino team has invested some time in analyzing surprising behavior… but…

the Zaino team has invested time in analyzing surprising behavior

This is mid December 2024, and the Zaino project is already reaching one of its primary objectives… that is:

Providing the community with tooling that makes testing wider system behavior (e.g. zebra) ergonomic for a gaggle of Rust developers.

Imagine if the community was trying to analyze bugs in zebra through a Go binary lightwalletd, because that was the only option. I am totally unsurprised to discover that complex software systems interacting in complex ways behave in unpredicted ways.

The Zingoistas were skeptical that the community had a systematic understanding of the real behaviors that would emerge during the zcashd deprecation, which is why we started, on our own initiative, to contribute to regtest-mode-in-zebra last February.

@Marek and @arya2 and @pili have been responsive and efficient, and have already started fixing the first issue we noticed. In fact they’ve already fixed the first bug that we noticed, which shows that the diverse community is collaborating effectively, and synergistically.

In short, I’m thrilled. This is Zaino working with the wider community to make the deprecation happen.

12 Likes

Thanks @pili for adding more context to that :heart:

Also good reminder for everyone who finds bugs or problems within Zcash software. Always go through official channels.

For developers, Go to the GitHub and file the corresponding issue in the projects repository. If you think the issue you are reporting could be a security concern follow the procedure in the responsible disclosure section of the repository

3 Likes

December 13th

Hello fellow Zebras! Another week, another update on Zcashd deprecation!

NU6 work is over! There are some outstanding issues with wallets. This is the update from last week.

Exodus and Trust wallet have a fix that will go live in their next release cycle, while Ledger is still working on a solution to their Transparent Zcash Application with the help of Zondax’s team. Ledger engineers report having detected and assessed the cause of failure and it’s not related to NU6 changes but impacted by it given they had specific values statically coded into their app that in reality they need to change based on the anchor heights of the inputs.

While that gets sorted out this is their official workaround using the Zondax Shielded Zcash application.

Outreach (@pili @decentralistdan @pacu):

* Status: on track

With NU6 standing items being cleared out of the way we are back to our deprecation outreach efforts. We will be reaching out partners with a new and more concise wording and updated messaging based on the feedback we have already received and excellent contributions from @alchemydc who is collaborating with ZF. DC is a long-time Zcasher and hacktivist with an incredible talent on Decentralized and Distributed IT Infrastructure. We are thrilled to have him around! Thanks DC!

Zebra

As you might have heard from the last arborist call, it has been a bug squashing week for Zebra developers.

Zaino (ZingoLabs)

  • status: on track

Project Board

Zaino devs continue to work on their findings on Zebra Regtest issues. Also they are currently working on finding out indices that will be needed on Zaino. If you run Zcash infrastructure as a backend for your project Reply to that github issue NOW

Last Light Client Working Group meeting (number 90!) Zingo engineers and the rest of the bunch discussed strategies and timelines for Zaino to replace Lightwalletd and we hope we can do that early in 2025.

In-Memory backend wrap up

- status: on track

We need to provide reviews to this PR Add serde derives to primitive types behind feature flag by willemolding · Pull Request #1627 · zcash/librustzcash · GitHub

I got to the half of it and plan to continue to do so next week. It’s a very long PR. Take your time and review thoroughly.

On a related matter I got In touch with @DanForbes from ChainSafe and they keep working on the Metamask Snap. We will meet that team soon to talk about how PCZT, WebZ.js and the metamask snap could work together.

Zcashd Wallet CLI

  • Status: on track :warning:

This is scheduled to be completed by the end of January! This timeline is TIGHT!

tracking work on this repository.

ECC core engineers continue to look for developers that can contribute to the RPC support of the cli wallet that will be hosted on github.com/zcash/zcash. Please get in touch with me or @pili if you are interested in contributing. This is the spreadsheet with the RPC methods that the zcash-cli would tentatively need

Also, ECC has open-sourced their zec-sqlite-cli tool

Wallet Export format

  • Status: Proposal ready, work started

Blockchain Commons and Zingo are working on a proposal for “ZeWiF”. I organized a meeting with ECC Core Engineers and them to evaluate the work proposal. ECC devs will provide the requested feedback to ZCG for them to use as input in their grant evaluation.

This is a developing story (I always wanted to say that)

UPDATE

GRANT PRESENTED! Grant Proposal: Zcash Extensible Wallet Interchange Format (ZeWiF)

Zcash extensible wallet interchange format is a proposal that will solve a missing link for wallet interoperability, the ability to import and export wallet information and use it in different wallets

Another task will be developing tools to rescue old wallet.dar files and moving them into this new format, a super important requirement to deprecate Zcashd

Have a Fun Friday and a relaxing and repairing weekend.

4 Likes