Extending Verification to the Entire Circuit in Runera
Last updated
Last updated
In the previous section, we discussed constructing a verification Taproot for validating a single logic gate in Runera. Now, we will extend this concept to verify an entire circuit. The principle is simple: the output of each logic gate serves as the input to the next logic gate.
In the diagram below, the output of gate B (denoted as (4)) acts as the input to gate C. If the output of gate B does not match the input of gate C, it implies that (4) has two conflicting values, which is incorrect. Using the previously discussed script, we can verify both the input and output of gate B, as well as the input and output of gate C. By ensuring that the output of gate B equals the input of gate C, we can validate the correctness of the two interconnected logic gates. Extending this logic, we can verify the entire circuit.
If the Prover violates this rule, issues within the circuit become apparent. For instance, if the Prover assigns different values to (4), the Verifier can easily detect this inconsistency and declare the circuit invalid.
The Verifier constructs all possible scenarios of logic gate malfunctions within the Verification Taproot. If a single logic gate malfunction is detected off-chain, the Verifier can construct a spending Taproot unlocking script. This approach is non-interactive, simplifying the verification process.
Summary:
Each logic gateβs output serves as the next gateβs input.
Verification ensures that the output of one gate equals the input of the next.
Inconsistencies, such as conflicting values for (4), are easily detected.
The Verifier constructs all malfunction scenarios within the Verification Taproot.
A single detected malfunction allows the Verifier to unlock the script non-interactively.
By applying this method, Runera ensures the correctness and integrity of the entire circuit, maintaining a secure and reliable verification process on the Bitcoin blockchain.