Zcash Viewing Keys
When a Zcash consumer creates a shielded transaction, they encrypt it to the recipient’s tackle. With the ability to entry the information hidden behind the encryption is a needed situation for the recipient to spend the funds, however it’s not enough because the recipient additionally must show possession of the spending key akin to the tackle. To decrypt the shielded transaction, the recipient makes use of a so-called viewing key, which they derive from their spending key. A viewing key permits decryption of the shielded knowledge however reveals nothing in regards to the spending key, successfully permitting “viewing” of shielded transactions however not spending of them.
Blockchain Scanning with Zebra
All Zcash customers use their viewing keys to study what transactions belong to them. They attempt to decrypt every transaction within the blockchain to see if they will unlock the shielded knowledge. We consult with this course of as scanning or trial decryption. Mild shoppers can carry out the scanning domestically in order that the general public server they impart with doesn’t be taught something about their transactions. Nevertheless, some customers function their very own infrastructure. These are usually enterprise customers, akin to exchanges, that are finest served utilizing a scanning service carefully linked to their full node.
At Zcon4, the Electrical Coin Firm and Zcash Basis agreed to maneuver the Zcash ecosystem to Zebra. To have the ability to accomplish that, Zebra must assist wallets able to changing the pockets in zcashd. As a primary step towards this purpose, we determined to increase Zebra with a blockchain scanner that accepts viewing keys and performs the trial decryption of shielded transactions. The scanner then shops the ends in persistent storage. This performance ought to permit for an environment friendly implementation of wallets counting on Zebra.
Implementation Particulars
The present scanner is a brand new crate within the Zebra repository, within the type of a minimal viable product. It depends on the librustzcash library to carry out the scanning, and helps solely Sapling. It reads all blocks via Zebra’s inner state service and shops the TXIDs, referring to transactions that include notes decryptable by the supplied viewing keys. The storage is a separate occasion of RocksDB that Zebra additionally makes use of for storing the state.
The present model of the scanner is documented for customers in our Zebra guide. If you wish to give it a strive, you need to use this instrument to learn the scanning outcomes. In the event you submit the scanning key from ZECpages, it can print all posts from the board to straightforward output. The following step for the scanner is to implement a gRPC frontend, exposing the scanner’s capabilities to Zebra customers.
You probably have any suggestions or strategies, tell us in our Discord, or on the Zcash Neighborhood Discussion board.
The publish Introducing Blockchain Scanning with Zebra appeared first on Zcash Basis.