智能合约最早由尼克萨博在95年提出,旨在根据合同或协议的条款自动执行、控制或记录事件和行动。智能合约的目标是减少对可信中介的需求、仲裁成本和欺诈损失,因为以及减少恶意和意外异常。
以太坊最早引入的智能合约的概念,作为其网络上的应用程序。现在该概念已经扩展到整个区块链领域。已经成为去中心化应用的基础,初学者可以把合约理解为应用程序的后端服务程序。
以太坊的智能合约是代码和数据(状态)的集合。主要使用 Solidity 语言 编写智能合约代码。EVM 是执行 Solidity 字节码的虚拟机,由于有很多 EVM 虚拟机兼容的链,如:Polygon、BNB Chain,Gnosis Chain 等,这些链也都是使用 Solidity 编写智能合约。
Solidity 当前是智能合约领域里应用最广泛的语言,工具链也比较丰富,用户可以选择开发框架或工具有: Remix 、Foundry、Hardhat 。
Solana 的智能合约,称为程序(program),和以太坊合约不同,程序中不包含数据,Solana 是一条高性能的区块链,通过程序和数据分离,可以智能合约运行时,能够并行处理来自不同交易的指令。
程序(program)主要用 Rust 语言 和 Solana SDK 来编写,Solana 提供了 Anchor 开发框架,以简化程序的开发过程,包含了高级抽象、自动生成的客户端代码和测试工具。
Move 是一种专门为区块链和智能合约设计的编程语言,最初由 Facebook(现 Meta)开发用于其区块链项目 Libra(后更名为 Diem)。Move 语言旨在提高智能合约的安全性和灵活性,并被用于在Aptos 和 Sui 等多个区块链中。
Move 借鉴 Rust 资源所有权,因此资源在 Move 程序中不能被意外地丢失或复制,从而防止常见的安全漏洞。
TON 智能合约由存储在 TON 区块链上某个地址的代码(编译后的 TVM 指令)和数据(持久状态)组成。他们运行在 TVM(TON 虚拟机)上,
TON 智能合约 通常由 FunC 编程语言编写。
StarkNet 是一个基于 STARK(Scalable Transparent ARgument of Knowledge)证明系统的以太坊 Layer2 ,旨在实现以太坊的可扩展性。StarkNet 智能合约采用 [Cairo 编程语言]()进行编写, Cairo 是 StarkWare 开发的一种专门用于区块链和零知识证明的编程语言, 通过生成高效的 STARK 证明,使得区块链能够处理大规模的交易和复杂计算。
Cairo 程序(字节码)在StarkWare 开发的 zkVM( STARK VM )上执行,生成可以在链上验证的 STARK 证明。确保程序执行结果的正确性和安全性。