为什么 Gear 会使用 WebAssembly?

简介: WebAssembly (简称 WASM)是W3C 社区开发的一种标准,它定义了一种低级的二进制代码格式,以便在浏览器中运行可执行程序。虽然开发 WebAssembly 是为了使高性能应用程序能够在浏览器中运行,但它自身也可以作为一个独立的虚拟机运行。

概述

WebAssembly (简称 WASM)是W3C 社区开发的一种标准,它定义了一种低级的二进制代码格式,以便在浏览器中运行可执行程序。虽然开发 WebAssembly 是为了使高性能应用程序能够在浏览器中运行,但它自身也可以作为一个独立的虚拟机运行。

WebAssembly 的可执行文件是预编译的,这使我们能够在浏览器中使用各种编程语言构建和运行应用程序。WASM 对于编程语言没有偏好,目前有几十种语言可以编译到 WASM 中,甚至可以在 WASM 中拥有它们的 VM。此外,WASM 是独立于硬件之外的,尽管受到一些限制,但它可以被编译到任何现代架构、桌面甚至移动设备上。

快速和安全

WebAssembly 的主要目标是在浏览器中提供媲美原生性能的可执行代码。使用二进制格式是因为它们传输速度更快,相较于典型的文本和原生代码,它们的格式更小。这意味着程序可以单独传输、兑现和使用,因为它们被分割成更小的部分,并运行独立的并行任务。另外,代码将在一个内存安全的沙箱环境中进行验证和执行,以防数据损坏和安全漏洞。

Wasm 对于区块链的意义

区块链网络得到广泛应用的关键之一就是其最大限度地提高可扩展性,这已经不是秘密了。这是因为速度和交易吞吐量的增加将导致交易成本的降低。传统区块链存在严重的可扩展性问题,正因为如此,它们的交易成本不断增加。以前负责智能合约字节码执行的技术在当下运行缓慢,而且在编译大量代码时效率低下。这意味着区块链技术还有很大的改进空间。

WASM 显著提高了交易速度,这将有助于提高效率。除此之外,WASM 支持用不同语言编写的智能合约,这意味着任何人都可以使用现有程序或用简洁的语言编写新程序,并将其编译以便在 WebAssembly 虚拟机中执行。与基于领域特定语言的解决方案相比,这显著提高了应用程序的包容性。

安全注意事项

WebAssembly 本身并不提供对执行代码的计算环境的环境访问。任何与环境的互动,如 I/O、访问资源或操作系统调用,只能通过调用嵌入到主机环境中的 WebAssembly 来实现提供的功能,并导入到 WebAssembly 模块中。

这样的实现过程定义了如何加载模块,如何提供导入以及如何访问导出。它通过控制或限制导入功能来负责适合于各自环境的安全策略。

由于 WebAssembly 被设计成直接在主机硬件上运行的机器代码,它有可能受到硬件层面上的旁路攻击。当考虑到这一点时,为了实现嵌入式 Wasm,我们可能必须采取适当的缓解措施来隔离 WebAssembly 计算。

研究人员曾报告过,存在与共享内存线程相关的可能的漏洞。Gear 在底层上使用 WebAssembly,在设计上不会受到这些问题的影响。任何 Gear 智能合约都是一个 WebAssembly 程序。作为一个并发计算系统,Gear 使用消息传递通信(Actor 模型),而不是共享内存通信模型。这消除了任何安全问题。

关注 Gear 的GitHub ,获取最新资讯!Gear 团队

目录
相关文章
|
测试技术 持续交付 人机交互
软件测试计划说明书模板
软件测试计划说明书模板
595 0
|
5月前
|
机器学习/深度学习 人工智能 监控
“上海有AI”,一座城市的智惠答卷
上海正以“智云上海”为核心,构建城市级AI中枢,推动人工智能从实验室走向街头巷尾,融入医疗、制造、交通等日常生活场景。在WAIC 2025上,上海展示了AI落地的广度与深度,从智慧社区到工业智能,AI已成城市“呼吸”的一部分。
194 0
|
5月前
|
机器学习/深度学习 人工智能 安全
企业内外网文件导入导出审计系统
Next FileFlow 是一款企业级轻量文件传输与安全管理平台,支持内外网隔离环境下的文件交互与安全审计。系统具备全流程审批、大文件传输、智能内容审计、统一权限管理等功能,满足金融、涉密机构、制造业等多行业需求,保障文件流转安全性与合规性。
|
5月前
|
存储 弹性计算 固态存储
阿里云服务器配置费用整理,支持一万人CPU内存、公网带宽和存储IO性能全解析
要支撑1万人在线流量,需选择阿里云企业级ECS服务器,如通用型g系列、高主频型hf系列或通用算力型u1实例,配置如16核64G及以上,搭配高带宽与SSD/ESSD云盘,费用约数千元每月。
515 0
|
6月前
|
监控 安全 网络安全
网络安全新姿势:多IP配置的五大好处
服务器配置多IP地址,既能提升网络速度与安全性,又能实现多站点托管和故障转移。本文详解多IP的五大妙用、配置方法及进阶技巧。从理论到实践,合理规划IP资源,让服务器性能跃升新高度。
210 2
|
数据可视化 Linux 测试技术
7zip压缩工具的Linux命令
本文介绍了如何在Linux系统中使用7zip压缩工具,包括通过brew安装、使用基本命令进行文件压缩、解压、列出存档内容、测试存档完整性以及进行性能基准测试等操作。
794 3
7zip压缩工具的Linux命令
|
8月前
|
自动驾驶 安全 物联网
5G加持自动驾驶:从“聪明”到“智慧”的进化
5G加持自动驾驶:从“聪明”到“智慧”的进化
240 8
|
11月前
|
Python
Python调用函数并获取返回值
通过本文的介绍,我们详细了解了如何在Python中定义和调用函数,传递参数,以及获取函数的返回值。掌握这些基本操作是编写高效、清晰和可维护Python代码的基础。希望这些内容能够帮助你在实际编程中更好地使用函数。
399 18
|
人工智能
从观看《长安三万里》有感,动手基于SD生成山水图
最近,我尝试使用stable diffusion来生成一幅山水画,灵感来自动漫《长安三万里》。这幅画的背景是一个美丽的山水风景,有着连绵起伏的山脉、宁静的湖泊和繁华的城市。在这个背景中,我想要表达出一种深沉的情感,让人们可以感受到这个世界的壮丽和美丽。
2099 21
|
安全 数据安全/隐私保护
新版发布功能上线,新增「大屏快照」功能!
新版发布功能上线,新增「大屏快照」功能! 发布分享 链接设置 分享链接 ​ 打开「发布分享」按钮之后,会随机生成一个分享链接,此链接每次打开之后都会变更,上一次的分享链接随即失效且不能恢复到历史分享链接。
15146 152