Cairo’s Labeled Jump Exercise II

Edit the loop my_loop in the exercise below so that it starts by writing 10 to [ap], continues by writing the decreasing sequence  and then returns. Don’t forget the ret instruction. Verify that your code works as expected by looking at the memory.

func main():
    [ap] = 2; ap++

    my_loop:
    [ap] = [ap - 1] * [ap - 1]; ap++
    [ap] = [ap - 1] + 1; ap++
    jmp my_loop
end
Continue reading “Cairo’s Labeled Jump Exercise II”

Cairo’s Continuous Memory Exercise I

Run the following program:

func main():
  [ap] = 100
  [ap + 2] = 200
  ret
end

Explain why the execution of this program creates a memory gap, and therefore an inefficiency (given what you’ve just read in the above section). Add one instruction at the end of the function (just before ret) so that there won’t be a memory gap.

Continue reading “Cairo’s Continuous Memory Exercise I”

Beyond the Blockchain

Probe to Mars

tl;dr;

  • StarkWare has a set of software tools that allows for the creation of cryptographic proofs that attest to the computational integrity of the execution of a computer program
  • Cryptographic proofs enable regular computers (ex. a laptop) to keep supercomputers in check
  • Blockchains guarantee computational integrity by replying the same transaction over and over
  • Although used to create an Ethereum layer 2, this technology can be used outside of the blockchain as well
  • This technology can be the tool of choice for Enterprises
Continue reading “Beyond the Blockchain”

Four Challenges to StarkNet’s Success

Boxing match

tl;dr

  1. Vendor lock-in: difficulty moving away from StarkWare’s ecosystem
  2. System centralization: the Sequencer and the Prover are operated by StarkWare
  3. Steep learning curve: Cairo is hard to learn and the documentation has gaps
  4. Upgradable smart contracts: StarkWare can make changes at any time
Continue reading “Four Challenges to StarkNet’s Success”