This topic is dedicated for tracking the discussion ideas, and progress around ZKP opcodes such as zk-STARK.
- Discussion Points:
-
Generic Verifier or zk-STARK Integration:
- As Jason mentioned, privacy covenants can enable BCH and CashTokens to transact privately while maintaining total balance transparency on Layer 1. Could zk-STARK verifier opcodes enhance this approach by improving scalability and capabilities, such as supporting shielded pools or UTXO-based smart contracts?
- As Jason mentioned, privacy covenants can enable BCH and CashTokens to transact privately while maintaining total balance transparency on Layer 1. Could zk-STARK verifier opcodes enhance this approach by improving scalability and capabilities, such as supporting shielded pools or UTXO-based smart contracts?
-
Some Discussions revolved around the possibility of enabling shielded addresses and leveraging zk-STARKs where The goal is to hide sender and receiver addresses while maintaining transparent UTXO balances, potentially achieved by introducing advanced opcodes.
-
Shadow pointed out that BCH current opcode capabilities make implementation feasible.
-
bch_autist & JF suggests ZKP verification can be achieved on BCH wthout dedicated opcode.
-
btc_canary was proposing to explore forking a STARK verifier opcode.
-
-
Reference of Practical Implementation:
- Weikeng Chen showed that Bitcoin can support ZKP verification using OP_CAT and zkWASM.
βββββββββββββββββββββββββββ
-
Jason: Bitcoin Script: multi byte opcodes (ZKP OP_Code)
βIn the case of zero knowledge proofs (ZKPs) specifically, those will almost certainly not be a set of new opcodes β for ZKPs to be integrated that way, all other operations would also need to be compatible with the ZKP paradigm, including e.g. flow control + OP_DEPTH. That may be possible with a lot of big breakthroughs + complex hacks, but itβs far more likely that a smaller, more well-proven ZKP system will be integrated in a self-contained way (where existing opcodes donβt complicate or break otherwise well-proven security properties).
So in practice, this will likely look more like a single
OP_CHECKZKP
or a small set of setup/check operations. Like a new sort ofOP_CHECKDATASIG
rather than a new grab-bag of smallOP_ZKPADD
,OP_ZKPSUB
, etc. operations.When thinking about new crypto algorithms, itβs probably most useful to think of the VM as exposing them over a VM-friendly API. Contracts donβt manually use large integer math operations to implement signature checking, they use
OP_CHECKSIG
. Again, itβs possible that future crypto systems will require different, more complex API interfaces, but Iβve tried to account for that by estimating high β 4 per 10 years. (And remember, in the past 10 years, we added ~2:OP_CHECKDATASIG
and `aWSFX03Os0q3RLcMlr7bQsvRM8V.jpeg)
ββββββββββββββββββββββββββββ-
-
Reference
- ZK-SNARKs vs ZK-STARKs