大家好,我是银链科技(yinlian点io)的首席开发工程师“铸链工匠”,今天开始我会不定期向大家讲解一些基础的区块链知识,今天我们来初步讨论下智能合约的概念。要说清楚智能合约是什么我们需要搞懂几个传统概念。然后我们在这些概念的基础上比较容易讲清楚什么是智能合约了。
一、传统网络应用项目的构成形式

传统的网络应用项目一般又客户端(也就是你电脑里的应用、手机里的app)请求运行在服务器上的服务端程序,然后服务端程序对数据库进行增、删、改、查操作,然后向客户端返回数据。
这样的传统应用项目纯在两个问题:
1.管理者(开发者)可以随时修改服务端程序。
2.管理者(开发者)具有绝对的数据库增加、修改与删除权限。
也就是说,在传统的网络应用项目,你必须选择100%信任服务的提供者,也就是项目的管理者、开发者不会修改、删除与你有关的数据,比如你的账户余额。这种情况下,传统网络项目往往是通过其企业的信用来对项目的公平性进行背书。比如,你选择相信支付宝不会修改你的余额或者故意让你的转账出错是因为你对支付宝公司信誉的信任,而不是因为他们没有能力去那样做。
再举个简单的例子,一款手机网络游戏基本就是这样的传统网络应用。你用你手机里游戏客户端去访问位于游戏公司机房服务器上的服务端,服务端程序会从数据库中去读取你的等级信息和相关装备信息然后按照服务端程序写好的算法去计算你的伤害值、防御值等等。在你的游戏工程中,服务端程序会不停的去访问、更新、数据库。同时服务端程序还会不断读取并返回最新的数据到运行于你手机里的客户端显示给你看。
而不管是服务端程序还是游戏的数据库都运行在游戏公司的服务器上,所以游戏公司有绝对的权限去修改游戏的各项设置和数据,这就是为什么我们玩一款网络游戏经常发现某把武器的伤害被削弱了,某个boss变强了的原因。
二、什么是区块链
我们在前面提到了数据库的概念,简单来说数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。传统的数据库存放在一个中心服务器上,由管理者独享数据的管理权。
简单的理解,区块链就是一个所有参与者都有数据增加权限的去中心化数据库,这个数据库运行于点对点网络上,运行在每个参与者的设备中,而不运行在任何中心服务器上。

同时,区块链这个特殊的数据库利用密码学原理保证了它只能加不能删减和修改的特性。让任何参与者都只能增加数据而不能篡改数据和删除数据。
三、什么是智能合约
智能合约又叫做去中心化应用(DAPP)。
前面我们讲解了:服务端程序、数据库和区块链的基本概念。用一句最最简单的话说:智能合约就是以区块链作为数据库、同时将服务端程序的源代码也存放在区块链数据库的网络应用。

智能合约一般以基于web3.js技术调用区块链接口的web页面做为客户端,然后通过请求运行在区块链上的智能合约程序(类比传统网络应用的服务端程序),在通过智能合约程序去操作存储在区块链的(写入和读取)。
那么我们同样用网络游戏举例,当网络游戏的服务端和数据库都从游戏公司的服务器迁移到了不可任意篡改的区块链网络上成了去中心化的智能合约程序。游戏的开发者就基本只能在游戏开发过程中设定好每个武器的伤害值算法和每个boss的强弱,一但游戏正式发布到区块链网络上,开发者就无法再去修改智能合约程序。
好了,本文只是初略的大家讲解下智能合约的概念,之后我会继续写一些文章带大家由浅入深去了解真正的区块链技术。
添加新手交流群:币种分析、每日早晚盘分析
添加助理微信,一对一亲自指导:YoYo8abc