![]() ![]() We've been dogfooding the SDK internally for the last few months and used it to instrument over 20 DeFi protocols supporting over a dozen customers and thousands of users. Today, we are excited to announce a software development kit (SDK) to query data from the Ethereum blockchain – a problem we've been trying to solve for many years. Blockchain data is messy, disorganized and time-consuming even for an experienced engineer. The proof can be the private input to the next proof.įinally, the usual operator finds a Uniswap transaction mixed with many activities among many addresses.Introducing Covalent's DeFi SDK – An integrated approach to value your digital assets with 5 lines of codeĭespite all the progress we've made in crypto tooling the last couple of years, one difficult task remains unsolved: extracting data from blockchains. Such a batch, which is actually a transaction, can be combined with others by applying recursive zkp repeatedly. Then the final operator( the usual operator) only knows that one of the addresses with dummies sent a Uniswap trade transaction. The transactor has or generates several dummy accounts and integrates the dummy transactions (or cheap transactions from those) to the main transaction as a batch like at the first step. The final operator (is the usual operator) combines all batches all small operators (just the users) make. If the operator is the last person who has secrets of the others, let’s make all transactors operators. 3) Third, combining transactions makes “weak secrecy.” ![]() So, at the same time, the operators themselves have the “mixing-level” privacy for their transactions because only the operator and a transactor know the activity. In this situation, only the operator and a transactor know what the transactor is doing since all tx histories banish into the private input, and the result is mixed. (The important thing here is that other operators cannot know that from the batch.) If you are the operator, you can know each content of trades in the batch you aggregate. If there is global state then this breaks privacy as it needs to be shared for others to make proofs about this state. So with ZKPs you end up building private things using only user specific state. ![]() If they can monitor as the state changes they can see what others are doing. If they have the state info they can monitor as the state changes. So anyone who is able to update the system must have this state info in order to create the zkp that they updated correctly. Why you can't build a private uniswap with ZKPs This is what zkp can do as was researched in the works by Barry Whitehat. Here you find that the user balances/states are hidden if you combine the first step (result mixing) and this second step. The Merkle proof of the inclusion of the assets bind to the last Merkle root, and the Merkle proof of the inclusion of the changed balance/assets bind to the next Merkle root, can be in the private input of the zkp circuit, and the relevant change of global states can be the public input. If you define the data model that every asset is described as a leaf of the small Merkle Tree for each user, each user can prove her assets and these relevant transitions with zkp without revealing their balance/assets themselves. 2) Second, zkp and the “user state” model hide the user’s balance. Here you find the result is mixed, and hard to distinguish them IF THE USER BALANCES / STATES ARE HIDDEN. The remarkable thing is that the final state diffs are the result of many transactions. ![]() Tx history data will be part of the private input of a zkp circuit (like Groth16 or Plonk) and prove that final state diffs are the correct result of that hidden tx history data. Then you can make a batch of zkRollup without tx history data. The soundness of the Merkle root transition is guaranteed by zkp. In option 2, millions of transactions with the same result of no transactions use 0 gas for the txcalldata use, since there is nothing to record in the txcalldata. Option 2 is recording the diff of the final state as a result of transactions in the block (batch). Option 1 is recording all of transaction history data to txcalldata. There are 2 two options of using txcalldata to restore the full states. A zkRollup with no transaction history data to enable secret smart contract execution with calldata efficiency ![]()
0 Comments
Leave a Reply. |