智能合约是在区块链上运行的计算机代码

描述

智能合约

智能合约是在区块链上运行的计算机代码,其中包含一组规则,在该规则下该智能合约的各方同意彼此进行交互。如果满足预定义规则,协议将自动执行。 智能合约代码促进、验证并强制协商或履行协议或交易。这是分布式自动化的最简单形式。 它是一种涉及数字资产和两方或多方的机制,其中部分或所有参与者将资产存入智能合约,并根据某些数据自动在这些参与者之间重新分配资产,在合约开始时,这些数据是未知的。

区块链

智能合约这个词有点不幸,因为智能合约既不聪明也不会与合法合同混淆:

(1)智能合约只能与编程时考虑到所有可用信息的人员一样聪明。

(2)如果满足某些条件,智能合约有可能成为合法合同,但不应将其与法院和执法部门接受的法律合同混淆。 然而,随着技术变得更加成熟和广泛采用法律标准,我们可能会在未来几年看到法律合同和智能合约的融合。

削减交易成本

你会与你从未见过的人签订合同吗? 你会同意把钱借给埃塞俄比亚的一些农民吗? 你会成为战区报纸的投资人吗? 您是否会为通过互联网花费5美元购买有法律约束力的合同而烦恼? 对于大多数人来说,答案是否定的,因为这些例子的交易成本超过了获得的价值。

智能合约最初由Nick Szabo在1996年提出。其目的是提供优于传统合同法的安全性,并降低与合同相关的其他交易成本。 可自动执行的代码,无论是在协议级别还是在应用程序级别,对事务规则进行标准化,从而降低达成协议、形式化和强制执行的交易成本。

智能合约可以形式化人、机构和他们所拥有的资产之间的关系。 智能合约的交易规则集(协议)定义了合同双方达成一致的条件——权利和义务。它通常是预定义的,并且通过简单的选择操作达成了一致。 该交易规则集在可读的机器代码中以数字的形式表现出来。 一旦双方达成协议并达到协议的条件(执行),智能合约中确立的这些权利和义务现在可以由计算机或计算机网络自动执行。

虽然智能合约的概念并不新鲜,但区块链技术似乎成为智能合约实施的催化剂。 智能合约最原始的形式是自动售货机。 交易规则被编入机器。 您可以通过按下与该产品相关的数字选择产品,插入硬币,机器作为智能合约检查您是否插入了足够的钱。 如果是的话,机器被编程为弹出产品,如果您插入了太多的钱,它也会找零。 如果你没有插入足够的钱,或者如果机器内的钱用完了,他会退回你的钱。 自动售货机不仅可以降低交易成本,而且还可以扩大服务范围,提供全天候的可用性,而不是像售货亭一样只在指定时间开放。

区块链

智能合约案例

如果A和B不认识也不相互信任,他们通常需要一个值得信赖的第三方作为中介,以验证交易并强制执行。借助智能合约和区块链,您不再需要这些可信中介机构来结算您的交易。 以购买和销售汽车为例:如果Alice想从Bob那购买汽车,则需要一系列可信赖的第三方来验证和认证交易。 这个过程因不同国家而有所差异,但总是涉及至少一个可信的第三方:机动车登记管理机构,结合公证人和/或保险公司。 这是一个复杂而漫长的过程,对这些中间商来说,需要收取相当可观的费用。

区块链

在区块链中,一旦所有相关的权力机构和公司都在区块链上,就可以使用智能合约来定义销售的所有规则。 如果Alice想用区块链上的智能合约从Bob购买汽车,交易将由区块链网络中的每个节点验证,看看Bob是否是汽车的拥有者,以及Alice是否有足够的钱支付Bob。

区块链

如果网络人为这两个条件都是真的,Alice自动获得车库智能锁的访问代码。 区块链将爱丽丝注册为汽车的新的所有者。 鲍勃的账户上多了20,000欧元,而爱丽丝少了20,000欧元。 没有中间人的要求。 在区块链上,谁拥有汽车是透明的并且同时是匿名的。 这意味着运行区块链协议的每台计算机都可以检查某个人是否是该车的合法拥有者。 偷车并不像今天那么容易,特别是一旦我们拥有通过区块链验证访问控制的智能钥匙,即可解锁我们未来的车辆。 作为汽车的拥有者,您可以授权其他人驾驶它(说明相应个人的公钥)。 在这种情况下,只有通过区块链上的智能钥匙才能打开汽车。

区块链

智能合约的类型

区块链和智能合约有可能扰乱许多行业。其应用可以在银行,保险,能源,电子政务,电信,音乐和电影行业,艺术世界,流动性,教育等等中找到。智能合约使用场景从简单到复杂的都有。

政府和半政府登记机构(土地所有权,出生证,出生证,大学学位)等时间戳服务是较简单的(监管方面可能更为复杂)的例子。另一方面,分散的自治组织是智能合同中最复杂的形式。 2016的DAO年就是这样复杂的一个智能合约的例子。

考虑到区块链仍然是一项新技术,一些行业可能会比其他行业更晚地采用智能合约,特别是如果它们受到政府的严格监管,或者其应用需要较高的网络影响,例如在供应链中采用广泛的技术,标准化等等。总的来说,建议从一个不太复杂的小型应用试点项目开始,以便更好地构建专业知识并更好地理解技术,并在稍后阶段转向更复杂的应用。

智能合约编码

Solidity是一种智能合约编程语言。 语法与JavaScript类似,它的设计目的是编译以太坊虚拟机代码,创建投票,众筹,匿名拍卖,多签名钱包等等的合约。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分