当前位置:   article > 正文

区块链与智能合约以及衍生应用

区块链与智能合约

在开始编写代码之前,了解什么是区块链和智能合约,怎么获得智能合约是至关重要的,这将对你自己编写属于自己的智能合约和智能化分布式网络系统。

区块链的概念再被中本聪首次提及之后,在2015年的以太坊上首次出现了较为成熟的技术应用,以太坊提供了一个没有第三方协议和集中式管理的网络系统允许所有组织在这个分布式系统中执行完全去中心化的交易与数据信息。
智能合约工作时遵循简单的“if/when…then…” 语句,这些语句被写入区块链上的代码中。 当满足并验证预先确定的条件时,计算机网络将执行操作。 这些操作可能包括向相应的各方发放资金、登记车辆、发送通知或开具凭单。 然后,在交易完成时会更新区块链。 这意味着交易无法更改,只有获得许可的各方才能看到结果。
在一个智能合约中,可以根据需要设立多项规定来让参与者满意,以便圆满地完成任务。 要确立条款,参与者必须确定交易及其数据在区块链上的表示方式,同意管理这些交易的“if/when…then…” 规则,探索所有可能的例外情况,并为解决争议定义一个框架。开发人员可以对智能合约进行编程,尽管使用商业区块链的企业已越来越多地提供模板、Web 界面和其他在线工具来简化智能合约的构建。

总之,智能合约是一个在区块链网络中自动执行的没有第三方介入的指令集合。智能合约的概念等同于纸质合同,但是它是完全由代码实现的。存在预言机的智能合约被称为混合智能合约,不仅可以使用区块链内部的数据还可以从真实世界获取数据来影响区块链网络。

区块链网络的对外交互

使用Oracle(预言机):区块链外信息写入区块链内的机制。预言机的功能就是将外界信息写入到区块链内,完成区块链与现实世界的数据互通。它允许确定的智能合约对不确定的外部世界作出反应,是智能合约与外部进行数据交互的唯一途径,也是区块链与现实世界进行数据交互的接口。
而关于 Oracle,大家又会联想到甲骨文公司(Oracle)或 Oracle 数据库,在区块链世界中,预言机与 Oracle 公司和数据库也没有任何关系。
Oracle 这个词最初是来源于古希腊宗教,意为“神谕、先知、预言”。在互联网领域,预言机(Oracle Machine),又称谕示机,是一种抽象电脑,用来研究决定型问题。可以被视为一个多了个黑盒子(预言者)的图灵机,这个黑盒子的功能是可以在单一运算之内解答特定问题。
这么看来区块链领域的预言机也是像一个黑盒子,用来解决区块链与现实世界中间的特定数据问题。

区块链为什么需要预言机?
区块链是一个确定性的、封闭的系统环境,目前区块链只能获取到链内的数据,而不能获取到链外真实世界的数据,区块链与现实世界是割裂的。
一般智能合约的执行需要触发条件,当智能合约的触发条件是外部信息时(链外),就必须需要预言机来提供数据服务,通过预言机将现实世界的数据输入到区块链上,因为智能合约不支持对外请求。
区块链是确定性的环境,它不允许不确定的事情或因素,智能合约不管何时何地运行都必须是一致的结果,所以虚拟机(VM)不能让智能合约有 network call(网络调用),不然结果就是不确定的。也就是说智能合约不能进行 I/O(Input/Output,即输入/输出),所以它是无法主动获取外部数据的,只能通过预言机将数据给到智能合约。用户的智能合约把请求给链上 Oracle 合约,通过链下的 API 接口获得外部数据,更确切的说是外部把数据给链上的 Oracle 合约,然后 Oracle 合约再把数据给用户的智能合约。在互联网中,调用数据是非常容易的,只需要在程序中写调用的代码就可以了。但是区块链与外部世界的数据交互,确实不能进行这样的操作。

分权自治组织(DAO):有时也被称为分布式自治公司(DAC),是一种以公开透明的计算机代码来体现的组织,其受控于股东,并不受中央政府影响。 一个分布式自治组织的金融交易记录和程序规则是保存在区块链中的

区块链网络

去中心化:构成区块链网络的所有节点都是独立运行的,在区块链网络中没有任何机构可以统合管理这些节点。这个概念被提出的背景是因为中心化网络中集权管理机构过于强大的权力限制了每个独立节点的权益,就好比银行。银行固然提供非常多的服务并付与用户与生活之间的灵活性,但是银行手中一直拥有一个开关可以限制用户的账户内容,如冻结资产、充公等。虽然这样的行为并不会必然发生,但是在满足某些条件后中心化的管理组织确实可以完全扼杀所有用户的可能性,进而限制用户与生活的进一步联系。
因为去中心化的需求愈发强烈,特别是对于一个个体而言,每个个体都希望不论发生任何事都能保护自己的利益不被侵害,且同时不希望其他人利用资源优势进行不公平竞争。而区块链网络正能提供这样的一个能力和保障。但是自由就意味着不可靠(不可信),当每个人都可以完全展现自己的本性的时候,他们的行动一定会被集权体系下被中央监控和有一致性标准的系统内作恶的概率更高,因此解决分布式系统内的信任问题至关重要。
透明与灵活:任何发生在区块链上的操作对所有区块链网络都是可见的,所有人都可以鉴证一个结果并承认其公信力。这里没有集中式网络的后门系统,开发者无法给自己编写一个安全获利的不平衡竞争后门。
但是这不意味着你做的每件事都是可以被追踪的,区块链是伪匿名的系统。你可以创建许多账户并在不同的地点使这些账户之间互动。
不可篡改:区块链上的所有内容是无法篡改的,黑一个区块链网络的难度远大于一个集中式网络的难度。
自我激励与利益冲突:合约一定会存在尽可能钻漏洞并达到利益最大化的情况。比如保险合同与医患纠纷,很多时候矛盾的发生并非对错,而是因为矛盾的双方都希望自己的利益最大化,为了自己的利益最大化很多时候他们很自然的选择牺牲其他人。智能合约可以规避巨大的利益冲突,所有行为模式按照合约设定。且允许网络中的节点参与不信任或者信任最小化协议

Metamask

在这里插入图片描述
这个应用是一个基于区块链的网页扩展程序(也有移动端),其本质是一个数字钱包,你可以将你的钱存入这个数字钱包。这里面的货币可以是假币也可以是真钱,钱包创建以后可以进入如下界面。
在这里插入图片描述
其中最上面是这个账户的地址,这个地址可以在下面的这个网络查看对应的账户详情,也就说这个地址是公开的,网络上的所有人都可以查询对应账户内部的存储信息和地址内容。
一个钱包可以创建多个账户,每个账户有一个独立的私钥,如果将私钥交给其他人,拥有这个私钥的人可以访问这个钱包内的对应账户,但是由于每个账户都有私钥,因此只有一个账户的私钥无法访问钱包内的所有账户。
但是如果是创建metamask的时候使用的mnemonic,则可以访问这个钱包,也就意味着对应的所有账户。因此如果使用该数字钱包存储真实货币,务必保管好mnemonic。
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/864039
推荐阅读
相关标签
  

闽ICP备14008679号