diff --git a/components/Starknet/modules/architecture_and_concepts/pages/Smart_Contracts/cairo-and-sierra.adoc b/components/Starknet/modules/architecture_and_concepts/pages/Smart_Contracts/cairo-and-sierra.adoc index 4658e1fe90..bedf81818f 100644 --- a/components/Starknet/modules/architecture_and_concepts/pages/Smart_Contracts/cairo-and-sierra.adoc +++ b/components/Starknet/modules/architecture_and_concepts/pages/Smart_Contracts/cairo-and-sierra.adoc @@ -12,14 +12,14 @@ This new contract class is then compiled by the sequencer, via the Sierra → Starknet is a validity rollup, which means that the execution inside every block needs to be proven, and this is where STARKs come in handy. However, STARK proofs can address statements that are formulated in the language of polynomial constraints, and have no knowledge of smart contract execution. -To overcome this gap, we developed Cairo. +Cairo was developed to overcome this gap. Cairo instructions, previously referred to as Casm, are translated to polynomial constraints that enforce the correct execution of a program according to the Cairo semantics defined in link:https://github.com/starknet-io/starknet-stack-resources/blob/main/Cairo/Cairo%20%E2%80%93%20a%20Turing-complete%20STARK-friendly%20CPU%20architecture.pdf[_Cairo-a Turing-complete STARK-friendly CPU architecture_]. Thanks to Cairo, we can formulate the statement "This Starknet block is valid" in a way that we can prove. Be aware that we can only prove things about Casm. That is, regardless of what the user sends to the Starknet sequencer, what's proven is the correct Casm execution. -This means that we need a way to translate Sierra into Casm, and this is achieved with the Sierra -> Casm compiler. +So it is necessary to translate Sierra into Casm, which is achieved with the Sierra -> Casm compiler. == Why do we need Sierra?