IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> Cairo 或将取代 Solidity 的原因 -> 正文阅读

[区块链]Cairo 或将取代 Solidity 的原因

Cairo 或将取代 Solidity 的原因

未标题-3

img

在这篇文章中,我将论证Cairo可以影响即将到来的可证明计算的浪潮,就像Solidity支持可组合计算一样。Cairo是StarkNet的原生编程语言,StarkNet是一种用于扩展以太坊的L2网络。

当我们把智能合约仅仅看作是金融的延伸(DeFi)或网络的泛化(web3)时,这是令人遗憾的。智能合约网络实际上是可组合计算的平台。

以太坊嵌入了一些允许其计算机程序互操作的标准:

  • 透明字节码(没有隐藏的Web API)
  • 标准化API结构(称为ABI)
  • 保证正常运行时间(每个应用都托管在多台机器上,每个应用程序拒绝服务是不经济的)
  • 内置支付基础设施(不依赖于Stripe等第三方)
  • 完整的部署和交易沿袭
  • 不同应用程序层(治理、所有权等)之间无摩擦的合约

这些限制可能会降低开发人员的生产力,但也会以前所未有的规模激励有状态应用程序的组合和重用。

Solidity 是可组合计算的第一个主流语言

Solidity被创建为一种与上述标准兼容的简单语言。它提供了:

  • 基本状态机功能(状态、访问、更新等)
  • 无法访问不可组合的原语(例如,外部数据馈送)
  • 合约对合约交互的接口(组合方式)
  • 用于交易费用的内置gas计量
  • 对底层虚拟机(程序集)的高性能访问

虽然现有的编程语言可以适应可组合计算,但它们需要扩展(为组合添加接口)和限制(消除所有形式的非确定性和外部访问)的组合,这很难合并。此外,在优化上其是与优化 Solidity 代码(gas 成本)完全不同的性能指标(执行足迹),这些语言的编译器就是这么被定义的。

引入可证明的计算

StarkNet的可扩展性工具ZK-Rollups启用了一种被称为可证明计算的新范式。在这个范例中,我们保留了可组合计算的所有优点,但也允许程序证明它们已被执行,而无需重新运行。

这个简单想法允许我们从一个需要重新运行交易的网络(以太坊)转移到一个更好的网络(StarkNet),在这个网络中,通过验证交易已以特定结果执行的证明来验证交易,这是一个更经济的操作。

因为这个范式是如此不同,它也需要一个不同的计算模型,有效地将程序转换成数值理论方程,而不是在机器上执行它们。

我们可以用什么编程语言来实现呢?

Solidity vs. Cairo

考虑Solidity是很自然的。首先,它已经支持组合(调用其他智能合约),并被广泛采用。第二,在Solidity上部署了一系列应用程序,可以很容易地迁移到其他Layer 2解决方案(包括支持可证明计算的zkSync)。第三,Solidity有一个维护良好的多层编译器,可以适应不同的用例。

但是Solidity并不是可证明计算的固有特性。任何接受惯用的Solidity代码并将其转换为证明的编译器都会遇到以下问题:

  • 依赖于低效的数据结构,如`uint256
  • 语言层面的可变性
  • 缺乏高效的内置插件
  • 没有底层访问。

技术细节:在实践中,有两种不同的技术来证明通用程序(SNARK和STARK)。SNARK青睐的指令集更适合作为Solidity等语言的编译目标。STARK提供了更多的可伸展性,同时具有不太自然的指令集。当我们说“Solidity 不是可证明计算的有效语言时,我们实际上是指两件事:1) Solidity 可以有效地编码为 SNARK,但它们不像 STARK 那样可扩展 2)Solidity不是编译到STARK的最佳语言,因为在 Solidity 中常见的构造对于 STARK 来说是“昂贵的”。

Cairo有上述所有解决方案:

  • 一个称为felt的底层字段整数数据类型是可用的(与uint256类型一起)
  • Cairo语言习惯上只编写一次(类似于函数式编程语言)
  • 正在为常见计算开发越来越多的内置非确定性提示
  • Cairo提供了对底层原语的完全底层访问

Cairo编程更具挑战性,生态系统工具仍在不断成熟。但扩展以太坊的全部意义在于超越现有的限制,构建更好的可组合应用。如果是这样,为什么止步于Solidity?

Source:https://medium.com/yagi-fi/provable-vs-composable-computation-or-why-cairo-will-supersede-solidity-6b00e69bfc9e

关于

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

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

640

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2022-01-30 18:59:17  更:2022-01-30 18:59:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:54:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码