【Cls1】Blockchain的一些基础概念和名词解释

2018-07-18  本文已影响0人  dev7

学习任何技术之前,都需要搞清楚这个技术的由来以及专有名词,心中刻下大致的模型,有个大致理解。

区块链技术起源于 2008 年 10 月 31 日 中本聪(Satoshi Nakamoto)发表的比特币论文:《Bitcoin: A Peer to Peer Electronic Cash System》,即现在大家所说的比特币白皮书,该论文论述了基于 P2P 网络的电子现金系统的设计,系统中产生和流通的现金就是比特币(Bitcoin)。

比特币网络的功能仅限于让用户进行财务交易(Financial Transactions),之后没多久,很多人意识到他们可以使用比特币创意中的区块链技术来进行金钱之外的价值交换,这些人中想得最清楚的 Vatalik Buterin(后来被大家尊称为"V神"的那个天才程序员)于 2013 年末发布了以太坊的白皮书:《Ethereum: The Ultimate Smart Contract and Decentralized Application Platform》,白皮书的最新版可以在 GitHub 看到。

基于智能合约创建更加复杂的去中心化应用(Decentralized Application,简称为 DApp)的技术设计


账户?交易?区块?区块链?

区块链技术通常被简单描述为:公开的、分布式、不可篡改的的数据库技术或记账技术

块高度?出块时间?

一图胜千言

以太坊网络

关于什么是以太坊网络,可以从整体和个体两个视角来理解:

整体视角

以太坊网络本质是 P2P 网络系统,其用途是发起交易、存储交易历史,这里的交易可以是转账或者是调用智能合约中的方法;

以太坊区块链则是存储了以太坊网络上发生过的每笔交易的数据库;

以太坊网络类比到 Web 开发工程里面3 套环境,可将其归类如下:

个体视角

P2P 网络通常包含多个节点,每个节点都需要运行以太坊客户端,而任何人都可以运行以太坊节点;

每个以太坊网络上的节点都包含了以太坊区块链数据库的整体副本;

每个以太坊网络节点都可以接收 RPC 交易请求并将请求广播给网络中的其他节点;

每个以太坊节点都会尝试进行交易的校验、打包(常说的挖矿);

即区块生产的任务,生产出的区块也会被广播给其他网络节点;

注意:
以太坊不同网络之间的账户可以完全相同;
就好比我们可以把线上数据库的数据全部同步到我们的测试环境数据库一样;
但是不同测试网络之间、测试网络和主网之间、本地开发网络和主网之间是完全隔离的;
即无法进行转账和智能合约功能调用。


与以太坊网络交互?

交互的具体定义是:向以太坊网络发送转账请求,或调用智能合约函数(调用api,获得res);

举个栗子:

微信小程序生态下,开发者、普通用户、平台之间的交互方式可简化如下:


微信小程序生态

以太坊生态中,开发者、普通用户、平台之间的交互方式可简化为:


以太坊生态

知识点:

实际上,不论是开发者,还是普通用户,与以太坊网络的交互都会落地到具体的网络节点上面;
因为只有节点可以接收 RPC 请求并将其广播给其他节点;
任何代码或者应用如果需要同以太坊网络交互,都需要通过某个具体的节点。


智能合约

两种账户的关系

我们常常用 智能合约 指代 智能合约源代码 或部署在 以太坊网络上的智能合约账户
但本质上两者是有明显区别的:

部署所产生的智能合约账户只存在于其被部署到的那个网络;
反过来亦然,普通账户则在不同网络间是通用的;

每个智能合约账户会有下面几个关键属性:


Cls1 end

上一篇 下一篇

猜你喜欢

热点阅读