智能合约区块链了解一下2分钟懂区块链
首先我们来讲一下传统的合同是怎么签约的:
执行传统合同需要人工验证,以检查条款和条件,并根据书面协议决定下一步。
传统合同签约步骤
传统的合同签约步骤特点:
1、费时 - 检查合同条款,审核批准,再进行后续等步骤
2、资源消耗 - 执行传统合同需要人为干预
3、代价高昂 - 可能涉及第三方,在争议期间甚至更多
合同越复杂,需要控制的越多,而且存在争议的风险越大。例如,这可能涉及几个执行步骤,这些步骤可以启用特定的操作或产生某些特权。
还有另一种方式来处理合同,以克服前面提到的这些挑战和限制。随着技术的发展,我们处理合同的方式不断演变,智能合约诞生了。
那么,什么又是智能合约?
什么是智能合约?
智能合约步骤
智能合同是协议的翻译,包括条款和条件转换为计算机代码(脚本)。区块链开发人员以Java,C ++等编程语言编写脚本,其方式不会造成歧义,也不会导致误解。该代码翻译了一组自动执行和验证的规则。一个直截了当的例子就是翻译:“如果X提供服务,Y就会付钱。”
交易双方合约代码上传到区块链中检查合同的有效性并启用所需的步骤。 从初始化开始,智能合约就会自动执行。 智能合约与传统合约的主要区别在于智能合约不依赖第三方, 加密代码自动执行。
我们一起来想一下实施智能合约的自动售货机。 它验证以下属性:
1、交易中没有第三方参与。
2、当您将硬币放入机器并选择商品时,只要您符合条款和条件,即可将产品直接交付 - 您的硬币与您想购买的产品价值相同或更高。
现在我们对智能合约有了一定的了解,接着看智能合约是如何工作的。
了解区块链
为了更好地理解智能合约的工作方式,我们先来简单介绍一下区块链。
区块链是一个类似于我们记录信息的书籍的概念。 通常,这些信息是关于交易的,但情况并非总是如此,也不是唯一的情况。 我们将区块链看作是记录合同和交易的分类帐。 产生区块链的概念和想法并不新鲜,这个想法首先出现在1991年由哈伯和斯托内塔出版的论文中。
区块链简介
本文的目标是使用时间戳来认证和保护数字文档。时间戳是以无法更改的日期的方式完成的。因此,定义哪些文档最先出现比较容易。一个出现时间戳比另一个文档更早的文档被认为是首先创建的。这种方法利用了时间戳的不变性质。
区块链技术的出现允许第一个命题的细化。在区块链技术方法中,文档通过一个块连接在一起形成一个链。区块链是使用哈希指针的链接数据结构。因此,区块链特征和技术继承了哈希函数和哈希指针的特性。这些特点分别为:
1、任何给定的输入都有一个输出:散列。
2、输出是标准化的 - 一个固定的尺寸通常相当大,以确保它抵抗安全攻击和碰撞。
3、易于计算 - 我们可以根据输入大小确定计算输入散列值所需的时间。
这些特性至关重要,因为它们能够确保:
1、任何交易都能够加密。
2、对于任何给定的事务,输出具有相同的尺寸。
3、对于任何给定的事务,我们可以确定其散列的计算时间。
4、在处理交易时,安全是必选项。区块链技术使用的散列函数确保了安全性。它根据以下标准进行选择:
它抵制碰撞。当在相同的输出中找到两个不同的输入结果时发生碰撞。当发现碰撞的严重尝试不成功时,碰撞阻力就会发生。
了解输出,预测输入是做不到的。即使给定交易的散列值是已知的,交易本身仍然是未知的。
由于区块链是一个链接的数据结构,它包含数据和一个指向先前数据的哈希指针。通常情况下,交易是相互关联的。每一笔交易都记录在区块链中并发布。我们之前看到的属性确保区块链内交易的安全性。
现在我们知道交易记录形成区块链,接下来的问题是区块链技术和智能合约之间的关系是什么?
从区块链到智能合约
智能合约在分布式区块链中定义并执行。每笔交易和合约执行都必须在区块链内发生。有几个步骤来启用这个智能合约执行:
区块链开发人员使用编程语言将智能合约编写为脚本。在编码部分,开发人员实施合同背后的逻辑,以便在发生给定操作或事务时,脚本启用以下步骤。
一旦写好智能合约代码,脚本就会发送到区块链。分布式网络用于执行代码。通常情况下,每台可用于计算的计算机都可以执行合同,并且对于相同的输入,合同的输出应该相同,无论计算机在何处执行。
可以对多个条件进行编码,最终的智能合约用户可以选择此智能合约所需的条件。
合约的执行是以点对点的方式进行的,这非常接近权力下放。连接到Internet的简单用户通常可以是客户端。他们必须在电脑上安装客户端。我们把这个原则称为挖掘。用于运行程序的计算机称为节点。
通常情况下,每个人都可以创建智能合约,并在区块链上的特定交易中上传此合约。根据所使用的技术,特定的虚拟机将执行该合同代码。根据特定协议,可以使用一些API来公开合约,以便自动执行交易。