文章目录
一、区块链是什么?二、智能合约三、去中心化应用一、区块链是什么?
区块链本质上是一个去中心化的分布式账本数据库,目的是解决交易信任问题。广义来看,区块链技术是利用块链式数据结构验证与存储数据、利用分布式节点共识算法生成和更新数据、利用密码学方式保证数据传输和访问的安全、利用自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。狭义来看,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。
区块链技术来源于比特币的,其本质是一个基于共识机制、无中心化的数据库,具有去中心化、可溯源、不可篡改性和准匿名性等特点。
区块链分为公共链(Public Blockchain)、联盟链(Consortium Blockchain) 和 私有链(PrivateBlockchain)。而随着区块链技术的演进,依据不同架构,区块链可分为三个阶段:
(1)区块链 1.0 架构:比特币区块链;
(2)区块链 2.0 架构:以太坊区块链;
(3)区块链 3.0 架构:超越货币、金融范围的区块链应用
二、智能合约
智能合约是一种可编程合约,允许交易对手间设定交易条件,交易的执行无需信任第三方。
例如,如果Alice想建立一个信托基金,在接下来的12个月内,每月初将支付Bob 100美元。Alice可以编写这样一个智能合约:
检查当前日期每月初自动给Bob发送100美元重复直至智能合约中的资金耗尽
区块链技术为智能合约的实现提供了良好的执行环境。在区块链上执行的智能合约能够保证合约结果的正确性以及可信性。基于区块链的智能合约能被看做一个完全可信的计算参与方。
在编写智能合约时,可借助于以太坊中的编程语言来实现,编程语言主要有四种,一种是 Solidity,另一种是Serpent,还有两种是LLL与 Mutan。一句话概括智能合约:代码即法律
通过使用智能合约,Alice绕过了可信第三方中介(律师,托管机构等)将信托资金发送给了Bob,使整个流程对所有参与方透明。智能合约按照“如果这样,那么那样”的原理工作。当满足某一条件时,智能合约将按预先的设置执行操作。为了完成更复杂的流程和计算,多个智能合约可以被组合在一起来互相操作,这被称为去中心化应用(Dapp)。
三、去中心化应用
通常我们与传统的 web 应用程序交互时,使用浏览器并与我们的网络中央服务器交互, web 应用程序代码位于该中央服务器上,所有数据也都位于中央数据库中,在我们任何时候想使用应用程序时,必须和中央服务器通信,这就是 web 应用程序工作方式。
Web 应用程序存在的问题:
数据库中的所有数据都可能随时更改,我们的投票可能会改变,也可能会被完全删除应用程序中的所有代码都随时可能更改,这意味着选举中的规则可能会改变,这样一个中心化的 web 应用程序是不安全的。
应用程序在区块链上的所有数据并不位于中央服务器上,而是数据分散在连接到区块链的每个设备上,区块链是节点的点对点网络,这些节点相互通信,因此如果一个设备并且连接到区块链,那么该设备就是一个节点并且与所有其他节点通信,并会分担一些 Web 服务器可能承担的相同职责,并且将获得一个跨区块链共享的所有数据的副本,所有这些数据都包含在称为块的记录包中,这些记录包被链接在一起以创建公共分类帐。网络上的所有节点一起工作以确保公共分类账上的所有数据都保持安全和不变,这对于应用程序很重要,因为这意味着我们将始终知道,我们的帐户在我们投票时发送了交易,并且我们的交易数据被永久记录,并且因为所有数据都在区块链上的设备之间共享。
所以区块链从根本上说是一个数据库,并且因为所有节点在区块链上相互通信。它也是一个网络,因此可以想到传统的网络模型,而不是传统的网络模型。区块链可以看作一个网络和一个数据库的结合体。
Dapp建立在去中心化区块链网络(如以太坊)之上,通常具有以下优势:
● 不变性:一旦信息保存在区块链上,任何人都不能更改;
● 防篡改:发布在区块链上的智能合约不能在区块链上的其它参与者不知情的情况下被篡改;
● 透明性:智能合约驱动的Dapp是公开可审计的;
● 可用性:只要以太坊网络保持活性,在其之上搭建的Dapp将保持活性和可用性。