Thanks @zooko for taking the time to answer in such details.
About #1, FYI ywallet and Zingo can spend the existing notes before syncing (if they were not spent from a different device of course)
It won’t be a recent anchor but the protocol accepts it.
#2 is where the difference with SbS will be more visible. You prioritize the case when the user just received a shielded note and wants to spend it, vs catching up a wallet that hasn’t been opened for a while?
All three of our wallet partners (not counting Unannounced Secret Mystery Partner) are actively testing the release candidates and giving us issue reports! So the Release Candidate process is actually working and helping us find issues before the final release instead of after.
We’re testing internally, including using a quick and dirty version of the Zashi beta. Reach out to me if you want to help with that, and if what you like doing is finding bugs in beta software and giving nice detailed bug reports .
This is quite worrisome to hear, to be honest, as the last two times Zooko pushed similar “grandiose announcements,” they turned out to mainly serve as frames for even more grandiose pump & dumps (i.e., “Halo 2 is coming on January 3rd, Halo 2 is coming on January 3rd, Halo 2 is coming on January 3rd” and once the price had 3x’d, “Halo 2 is not coming on January 3rd for no technical reason whatsoever, we just did not feel like launching it on the announced date any more,” followed by an obvious monster dump, and then a few months later with “the identity of John Dobbertin is going to be revealed and it will blow your mind who it is, the identity of John Dobbertin is going to be revealed and it will blow your mind who it is, the identity of John Dobbertin is going to be revealed and it will blow your mind who it is” only to be followed by yet another very obvious monster dump).
I hope Zodlers will be much more cautious this time around.
The difference between these approaches and SDK 2.0’s Spend-before-Sync is that we ensure the anchor is recent, maximising the privacy set of the spent notes. Implementing this was a significant part of the SDK 2.0 engineering work.
The Spend-before-Sync prioritizes these two cases roughly equivalently:
Make existing notes spendable with a recent anchor.
For SDK 2.0 we target the single-wallet use case where previously-unspent notes are assumed still-unspent.
Detect and make spendable notes received in “recent blocks”.
This is because the process of making existing notes spendable with a recent anchor involves scanning blocks at the chain tip. We could make existing notes spendable faster by splitting these apart, but the added technical complexity is not currently justified; it’s something we’ll keep an eye on as SDK 2.0 is deployed and we get wider feedback from more users.
Prioritised below these two is “catch up with chain history”; as new notes are discovered there, they become spendable with a recent anchor on a similar timescale to existing notes.
It was also a nice job that ECC did with Halo 2, but what I was warning against are the monster (and in my humble opinion, blatantly manufactured) pump & dumps that usually (or is it “literally every single time”?) take place whenever “ECC and/or friends” release this type of “flamboyant” news.
This is very good news because it can help drive usage of shielded ZEC. We have incredible technology and it’s (unfortunately) been hard to use. This Brave partnership is exactly a step in the right direction. Bravo ECC
More than anything, I hope that this partnership illustrates how important having Business Development positions in an ecosystem is and that this community votes to fund an organization that is going to work on partnerships like this since ECC has stated it is no longer a focus for them and eliminated that work.
I encourage everyone to remember how to felt today when they saw this announcement and should the dev fund continue, ensure an organization is funded to work on projects like Brave.
This was the last remaining deliverable in our efforts to mitigate third-party wallet performance issues — and one of a bundle of releases that included two updates to zcashd and a new version of lightwalletd.
Super-special thanks to our engineers who have put in countless late nights and weekends over the last year, and especially the last few months. We are also grateful for our wallet partners — Edge, Unstoppable, and Nighthawk. Thanks especially to Edge for conversations about usability that helped inspire these ideas and others, and thanks especially to Nighthawk for testing the release candidates of SDK 2.0 and reporting a lot of issues before the final release.
The major component of this release is the Spend before Sync (SbS) capability. This feature enables a wallet user to spend funds as they are discovered without having to wait for a complete chain sync. The result is a faster and more robust user experience.
In addition to SbS, this release includes a number of performance-related improvements, stability enhancements, and bug fixes, providing a solid foundation for developing future Zcash-supported applications and systems.
Nighthawk, Unstoppable, and Edge are currently working to implement the SDKs, and as soon as we know that users of those wallets are able to access their ZEC funds, ECC can — finally — exit emergency mode.
#1179 and #1180 done (the last week of August).
#730 and #899#936#908 completed
Rest of the mobile code – code complete Friday 2023-09-08 excluding acceptance testing
Fix bug (#963) discovered during acceptance testing
Code review of mobile code changes, release SDK 2.0 Release Candidate Wednesday 2023-09-13
fix bugs from RC, release RC 2 Monday 2023-09-18
fix bugs from RC 2, release RC 3 Wednesday 2023-09-20
Acceptance testing complete by Monday 2023-09-25. Release SDK 2.0 Final!
☐ Ask Nighthawk, Edge, and Unstoppable to make announcements of their intentions
☐ Check in with wallets to ensure that the new SDKs are working and users are able to access their ZEC