• StarkWare:关于Cairo的10个资源


    StarkWare:关于Cairo的10个资源

    未标题-3

    截屏2022-08-12 上午10.49.05

    今年,加密货币经历了一段艰难的时期——比特币、以太坊和其他数字货币的价值暴跌了60%以上。尽管加密市场出现了低迷,但该行业仍在增长。人们认为智能合约只是金融(DeFi)的扩展或Web (Web3)的泛化,而它们其实是可组合计算的平台。

    StarkWare等公司正在开发提高区块链可扩展性的新方法。

    例如,zk-STARK或Zero Knowledge Scalable Transparent Argument of Knowledge是区块链上金融隐私的一种趋势创新,它使用了快速、可扩展的计算。

    zk-STARK是什么?

    zk-STARK背后的创新之处在于其作为以太坊区块链上的第二层网络运行。零知识证明允许用户和开发人员使用主网的安全性和可组合性的所有好处。

    一般来说,这是该算法中的加密算法和核心数学的结果。熟悉以太坊的人都知道,Solidity是智能合约的主要编程语言。

    同样的,StarkNet有自己的dApp原生语言Cairo,它是为扩展以太坊而设计的。它的优点是可证明的计算,就像Solidity实现了可组合计算一样。简单地说,Solidity语言接口主要是为合约间交互而开发的,这正是“可组合”计算的意思。

    在以太坊网络中,每一次验证都需要重新运行一次交易。相比之下,StarkNet提供了更经济的操作,通过验证交易是否已以特定结果执行来验证交易。ZK-Rollup 使这成为可能,并启用了一种称为可证明计算的新范式。

    什么是Cairo?

    如果你正在寻找一种具有成本效益的、可证明的计算编程语言,那么就可以考虑Cairo。以下是Cairo的一些优点:

    • 它是一种专门为智能合约设计的、可证明的语言。
    • 它不受EVM的限制。
    • 它的函数是导入的,而不是继承的。
    • 它支持Solidity到Cairo 的转译。
    • 它包括对底层原语的完全访问。

    在其最纯粹的形式中,Cairo的源代码看起来类似于ASM代码。唯一可能随时间变化的值保存在指定的寄存器中:

    • ap(分配指针)—指向一个尚未使用的内存单元。
    • fp(帧指针)—指向当前函数所在的帧。函数的所有参数和局部变量的地址都与该寄存器的值相关。当函数启动时,它等于ap。但与ap不同的是,fp的值在整个函数范围内保持不变。
    • pc(程序计数器)—指向当前指令。

    例如,如果我想计算x^4 + x,使用分配指针,我可以直接访问内存:

    [ap] = 3; ap++
    [ap] = [ap - 1] * [ap - 1]; ap++
    [ap] = [ap - 1] * [ap - 1]; ap++
    [ap] = [ap - 1] + [ap - 3]; ap++
    
    • 1
    • 2
    • 3
    • 4

    下面是一个关于如何在Cairo中组织循环的例子。在下面的例子中,你可以看到计算数组元素和的Cairo函数:

    # Computes the sum of the memory elements at addresses:
    # arr + 0, arr + 1, ..., arr + (size - 1)
    
    func array_sum(arr:felt*, size) ->(sum:felt):
    	if size == 0:
    		return(sum=0)
    	end
    
    	# size is not zero
    	let(sum_of_rest)= array_sum(arr=arr + 1, size=size - 1)
    	return (sum=[arr] + sum_of_rest)
    end
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    在Cairo中使用递归来替换循环结构。这样做的主要原因是Cairo的内存是不可变的,因此在将来没有机会更改内存单元。对于那些不熟悉原始汇编程序源代码、c风格编程语言或函数式编程语言(如Haskell或f#)的人来说,一开始可能会有点害怕。但是,对于开发内存有效代码来说,这是一个强大的优势。

    从原始的Cairo代码跳转到StarkNet,你可以直接打开一个语法糖:

    %builtins output
    from starkware.cairo.common.serialize import serialize_word
    
    func main{output_ptr : felt*}():
        tempvar x = 41
        serialize_word(x)
        return ()
    end
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    了解Cairo的十大资源

    Cairo是一种现代编程语言,诞生于2020年,并于 2022 年随着 StarkNet 生态系统的发展而开始流行。这里有10个关于Cairo编程和StarkWare的资源可供参考:

    • Narcissa :一个关于Cairo的问答论坛。
    • Cairo Resources List :精选列表,包含了很棒的Cairo相关资源、库、工具等。
    • Setting up the environment:关于如何安装Cairo和StarkNet的指南。
    • Starkware Cairo Whitepaper:所有Web3爱好者的必读。
    • Cairo Resource Guide :有文档、白皮书和其他资源的官方列表。
    • starknet-erc721:学习如何在StarkNet上部署和自定义ERC721代币的研讨会。
    • How Cairo Works :对Cairo机制的解释。
    • Hello Cairo:编写各种简单Cairo合约的教程。
    • Cairo Playground:一个浏览器内的Cairo IDE、示例和谜题。
    • Practical StarkNet lessons learned :对新的StarkNet/Cairo程序员的有用提示。

    Source:https://hackernoon.com/what-is-cairo-lang-10-best-resources-for-scaling-dapps-using-starks

    关于

    ChinaDeFi - ChinaDeFi.com 是一个研究驱动的DeFi创新组织,同时我们也是区块链开发团队。每天从全球超过500个优质信息源的近900篇内容中,寻找思考更具深度、梳理更为系统的内容,以最快的速度同步到中国市场提供决策辅助材料。

    Layer 2道友 - 欢迎对Layer 2感兴趣的区块链技术爱好者、研究分析人与Gavin(微信: chinadefi)联系,共同探讨Layer 2带来的落地机遇。敬请关注我们的微信公众号 “去中心化金融社区”

    img

  • 相关阅读:
    Proxy 、Relect、响应式
    nextTick的原理
    python中使用缓存技术
    %load_ext autoreload 介绍
    Python变量作用域指什么?分为哪两种?
    什么是接口自动化?为什么要做?和怎么做接口自动化?
    雷达编程实战之功耗优化技术(低功耗)
    [区块链go]windows系统中安装Go与环境变量配置
    springboot幼儿园幼儿基本信息管理系统设计与实现毕业设计源码201126
    python opencv之图像分割、计算面积
  • 原文地址:https://blog.csdn.net/chinadefi/article/details/126302618