# 什么是智能合约

By [Jerry Lee](https://paragraph.com/@jerry-lee) · 2021-12-25

---

![](https://storage.googleapis.com/papyrus_images/c8fda5197d0fa9262d3b96d520bf742b75f4df6bcf16195d3d298d7bb6d0770b.jpg)

背景
--

智能合约就是用计算机语言取代了法律语言记录条款并由程序自动执行的合约，是区块链链上的协议。**本质是一种能够自动执行相关代码与合约条款的计算机程序。**

![](https://storage.googleapis.com/papyrus_images/72f6bfd641f5f320e16b94cfbb6761798a0a5b86673ee9b8872f097ba40f741a.jpg)

以太坊的智能合约有以下几个特征
---------------

**分布式**：分布式的意思是说智能合约在以太坊网络的所有结点中被复制和分发。这种方式于基于中心化服务器的其他解决方案区别显著。

**一致性**：一致性是说在满足要求的情况下，智能合约仅执行其预先设计好的操作，而且无论任何节点的执行它的结果都是一致的。

**自动化**：它可以自动的执行各种任务，就像是自动程序一样，但是在没触发智能合约的情况下它将保持休眠状态，不会执行任何的操作。

**不可篡改**：智能合约一经部署就无法再更改了，所以我们可以说智能合约提供的是防篡改的程序。

**定制化**：在部署之前，智能合约可以通过多种不同的方式进行编码，所以他可以用于创建不同的分布式程序。也就是 dapp。

![](https://storage.googleapis.com/papyrus_images/c9511fb50cbbfa5c6f7370e6d6d10799096231351bcfdd9d2b9739331f28118d.jpg)

智能合约的应用
-------

智能合约已在各种区块链网络中得以实施，其中最重要和最受欢迎的依然是比特币和以太坊。虽然比特币网络以使用比特币执行交易闻名，它的协议也可以用来创建智能合约。比特币实际上提供的是一种编程语言，允许创建自定义智能合约，比如支付通道。

在不同行业的也有用户场景，例如选举、供应链优化、电子商务中可有效利用智能合约。

智能合约可以用比特币和以太坊创建。各行各业可以从智能合约发展中受益，包括选举、供应链和电子商务等。

![](https://storage.googleapis.com/papyrus_images/8f25d26d0539e5536662c46ea550604f0ac4377d57c858a4864569b2d30d5bea.jpg)

智能合约优点
------

\*\*自动执行：\*\*智能合约利用去中心化的网络架构，自动执行合约后端流程，包括托管、维护、触发和结算。一旦合约代码完成并发送至区块链，合约就会严格按照代码执行，人为无法干预。因此，在合约整个生命周期中，公司相关的运营费用会大幅下降。

\*\*可靠性：\*\*智能合约拥有高度自治的特性，因此可靠性大大高于通过中介展开交易。由于不存在中间人，因此也无法贿赂中间人或对其展开攻击，另外也不会存在服务器停机问题。由于智能合约没有妥协机制，无法逃避合约义务，因此天然具有防篡改性和安全性。

\*\*高效性：\*\*与通过第三方执行的数字化协议相比，智能合约极其高效。合约双方都无须手动输入数据然后等待另一方处理，也无须中间人处理交易。智能合约可以消除人为错误和交易对手方之间的纠纷，因此能加快合约端到端的执行速度。

![](https://storage.googleapis.com/papyrus_images/e8730925280a2de39279bb897a07fd454ab3e1f21ab60d392c8a31bc1edbb37b.jpg)

智能合约缺点
------

\*\*智能合约规模化产生问题：\*\*和软件发展过程一样，可以预计智能合约是需要规模化生产应用的，如何规模化生产可信智能合约是个大问题，笔者提出的智能合约工程正是未雨绸缪的理论。

\*\*智能合约公信编写问题：\*\*作为一种代码合约，和文本协议很大的不同在于，如何公信编写，谁来验证、测试？合约当事方显然是不合适的，一般的第三方也很难有公信立场，建立公信生产机制是发展的关键。

\*\*智能合约的可信问题：\*\*由于智能合约是管理巨大数字资产的特殊软件，软件bug的问题目前非常突出，软件陷阱会导致明显地有利于合约的一方，该怎样进行对合约进行查验和修复？如何验证合约的逻辑正确并杜绝漏洞？形式化方法是目前软件可信性验证的重要手段, 避免类似于由于代码本身漏洞给黑客攻击的机会。

\*\*智能合约的智能化问题：\*\*目前基本是简单合约，或固定的合约模板，智能合约的语言、编写、部署、审计、自动辅助工具、动态修改都会是全新的模式，与人工智能技术结合是研究趋势。

\*\*合法性问题：\*\*智能合约具有与“真正”合约一样的法律效力吗？如果智能合约的结果违背法律，或者法庭发现它有与合约法冲突该如何解决？计算法律学只是研究法律化的问题，而笔者提出法律代码科技，要解决代码即法律问题。

\*\*智能合约执行问题：\*\*存在多个合约需要时间触发的时候，待触发事件由谁管理与发送？如果多个合约同时执行，会带来复杂的访问控制、同步并发以及一致性问题。

\*\*性能问题：\*\*把合约状态的一致性过程与区块链的一致性过程区别处理，有可能会增加区块的制作时间，比如区块的构造时间就包含了区块中交易的处理时间，减慢了建块速度，该如何加快合约执行效率？

作者：蓝衫轻科技 链接：[https://zhuanlan.zhihu.com/p/449743390](https://zhuanlan.zhihu.com/p/449743390) 来源：知乎 著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。

---

*Originally published on [Jerry Lee](https://paragraph.com/@jerry-lee/xSmtRm3V7UtEsass1YgS)*
