初识区块链
一、基数概念
1、区块链系统本质上都是由共识机制、加密算法、网络路由和脚本系统这些装配在一起的,组成一个区块链软件,将软件运行起来后就称为一个节点。多个这样的节点在不同的计算机设备上运行起来,就组成了一个网络,即区块链网络。
2、区块链数据本身是一种数据的记录格式,将数据分成一个个的区块,然后按照时间顺序先后串联起来,就成了区块链了。
生活中有很多相似的记录方法,比如企业一般每个月会把记账凭证汇总成账簿并月结,这样就形成一个按月的连续账簿,每个月就相当于一个区块,区块间通过时间串联起来。比特币是每10分钟产生一个区块链,区块链中包含了交易数据及区块链的摘要信息。
3、在区块链网络中,每个节点都维护者自己的账本,账本中记录着网络中发生的一笔笔账务。网路中的节点是独立记账的,因此需要确定一种规则来保证每个节点的账本都保持一致,这一规则在区块链网络中成为共识算法。
共识算法本质上是一套规则,每个节点都必须按照这个规则去确认各自的数据。根据区块链轮流记账的原理,共识算法必须选出特定时间的记账节点,然后其他节点负责验证记账的正确与否(有点像现实的选举制度)。在区块链系统中,主流共识算法有POW(proof of work,工作量证明)、POS(proof of stake,权益证明)、DPOS(delegate proof of stake 、委托权益证明)及BPFT(practical byzantine fault tolerance,实用拜占庭容错算法)等。
4、密码算法
区块之间的连接是通过一种叫做哈希值的数据来关联的,哈希值是通过密码算法中的哈希算法计算得出的。哈希算法可以通过一段数据计算后得出一段摘要字符串,这种摘要字符串和原始数据唯一对应(原始数据的微小变动都会得出不一样的哈希值)。
区块链账本对每个区块都会计算出一个哈希值,成为区块哈希,通过区块哈希来串联区块。如果有人篡改了中间的某一数据,那么后面的区块都要进行修改,而这不是简单的修改一下后面区块的地址指向就能结束的(只要前面的区块发生变动,这个区块哈希就无效了,就指不到正确的区块)。
另外一个对密码学的应用就是默克尔树,对一个区块中所有的事物进行哈希计算后,可以得出一组事物哈希,再通过对这些事物哈希进行加工处理,最终会得出一棵哈希树的数据结构。哈希树的顶部就是树根,称为”默克尔根“,通过这个默克尔根就可以将整个区块中的事物约束起来,只要区块中的事物有任何改变,默克尔根就会发生变化,利用这一点就可以确保区块数据的完整性。
5、在区块链系统中,是通过以一种密码学算法来实现用户识别,即公开密钥算法。
公开密钥算法都有一对密钥,其中一个叫私钥,必须自己保管好,另一个叫公钥,可以公开给别人,是用来做身份识别的。用公钥加密的数据必须要用对应的私钥来解密,而用私钥加密(在区块链中成为签名)的数据必须要用对应的公钥来解密。根据这些功能,记账节点先用公钥加密,然后再签上自己的名字(私钥签名),其他节点再接受到数据之后可以验证数据的有效性,但无法更改账本。这种功能设计再区块链系统中成为“脚本系统”。
6、在区块链网络中,会设计一种激励机制,给负责打包数据的节点一定的奖励。因此,区块链系统会设计出一种带有竞争的机制,让各个节点去拼抢,我们将这个竞争过程叫做挖矿。
7、智能合约(英语:Smart contract )是一种特殊协议,在区块链内制定合约时使用,当中内含了程式码函式 (Function),亦能与其他合约进行互动、做决策、储存资料及传送以太币等功能。智能合约主力提供验证及执行合约内所订立的条件。智能合约允许在没有第三方的情况下进行可信交易。这些交易可追踪且不可逆转。
区块链是我们所知道的实现数字记录永久性和不变性的唯一途径。一旦智能合约被部署,它就会永远保持不变。
二、扩展概念
1、以太坊(英文Ethereum)是一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币以太币(Ether)提供去中心化的以太虚拟机(Ethereum Virtual Machine)来处理点对点合约。
2、区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。本质上是一个去中心化的、分布式的、区块化存储的数据库。
存储全部账户余额及交易流水的总账本。
每个节点有完整的账本数据,账本数据记录了全部的历史交易数据。
交易数据存储在区块上,每个区块包含前一区块ID及HASH,形成链。
区块链特性
去中心化
开放性(没有限制,开源,数据公开)
去信任(仅信任机器)
自治性,集体维护
可靠的数据库(不可更改,永远可访问)
匿名性,隐私保护
3、DApp
dapp就是D+app,d是英文单词decentralization的首字母,单词翻译中文是去中心化,即dapp为去中心化应用。
DApp = 前端 + 智能合约 + token(通证经济)
4、智能合约
智能合约是电子版合同、数字化合约、智能化合约,是将合同合约用代码写成一段小程序,重要的是这段代码一旦写好就无法修改无法篡改,并公之于众保存在区块链中去中心化,当外界条件发生变化如违约或合同到期,智能合约会自动触发。
5、区块链受制于“三元悖论”:没有一个区块链能同时具有准确、去中心化和成本效率这三个特征。
三、Token
Token及其交易的以下性质是区块链应用于金融基础设施的关键。第一,区块链内不同地址对应着不同用户,类似银行账户。密码学技术(主要是基于椭圆曲线的数字签名算法和哈希加密算法)保证了地址的匿名性,只有具备相应权限的用户才能操作地址,类似银行账户密码。
第二,Token本质上是区块链内按规则定义的状态变量。按同一规则定义的Token是同质的,可拆分成较小单位。不同地址内Token数量,类似银行存款账户余额。分布式账本记录区块链内每个地址内Token数量,类似银行账户报表。分布式账本由多个“矿工”或“验证节点”共同更新和存储,以确保一致。在金融交易后处理中,区块链被用于缩短托管链条、优化交易流程和简化对账工作等,就是基于分布式账本的这一特征。
第三,Token可以在区块链内不同地址之间进行转移,类似银行转账。Token转移过程中总量不变,甲地址之所得就是乙地址之所失。Token交易确认与分布式账本更新同时完成,没有结算风险。分布式账本和已确认的Token交易是全网公开、不开篡改的。
第四,区块链的共识算法(比如中本聪发明的Nakamoto共识)和不可篡改的特点,使得在不依赖中心化受信任机构的情况下,可以保证Token不会被“双花”(double spending)。
第五,区块链运行在互联网上,Token在区块链内不同地址之间的转移天然是跨国界的。这一特点是区块链应用于跨境支付的基础。
Token在存在形态上是一段计算机代码,没有任何内在价值。那么,Token的价值来源是什么?Token在中文里一般翻译成记号或表示物。记号或表示物本身没有价值,价值来自于所承载的资产。用Token承载现实世界的资产(所谓“资产上链”),实质是基于法律法规,用区块链外的经济机制,使Token和某类标的资产的价值挂钩。