区块链、智能合约 与 数字货币 之关系
区块链(Blockchain),本质上是一个去中心化的数据库,是比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
区块链:就由哈希指针构成的“区块+链”的数据结构。
区块中的内容:本区块数据(data) + 本区块的hash值 + 前一个区块的hash值。其中本区块的hash值基于“本区块的data + 前一个区块的hash值”进行计算。
(0)区块链特征
①去中心化:数据采用分布式存储,区块链技术不依赖第三方管理机构(比如DAO[1])或硬件设施,没有中心管制,各个节点实现了信息的自我验证、传送和管理。
②共识机制(多方维护):写入数据不由单方控制,需要经过多方验证形成共识,才能写入,主要有POW[2]、POS[3]。
③开放性。区块链技术是开源的,除了交易各方的私有信息被加密外,区域链的数据对所有人开放,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个信息系统高度透明。
④独立性。基于协调一致的规范和协议,整个区块链系统不依赖第三方,所有节点能够在系统内自动安全验证、交换数据,不需要人为干预。
⑤安全性。只要不能掌控全部数据节点的51%,就无法肆意操控修改网络数据,这使区块链本身变得相关安全,避免了主观人为的修改。数据具有不可篡改、不可伪造、一致存储的特点
⑥匿名性。除非有法规规范要求,各区块节点的身份信息不需要公开或验证,信息传递可以匿名进行。
(1)智能合约
将合约写入代码(只能是可通过计算机执行的约定,比如到期自动转账)由区块链节点计算机自动执行,人工无法干预,无需彼此信任。是以太坊链对比特币链的升级,可称为区块链2.0版。
(2)数字货币
①交易信息存储。数字货币的交易信息存在区块链上的区域中,区块由拥有记账权的人产生。争夺记账权就是挖矿,具体是通过在不同的节点运行区块链客户端程序(所谓的去中心化)实现的。
②记账权之争。挖矿目前主要有两种形式POW、POS机制(即两种共识机制,严格地说POS机制不是传统意义上的挖矿),由于区域链是去中心化的,各节点自行计算,因此速度快慢不一,有效的矿(即记账的区块)必须符合两个条件:一是可以接在最长链上,二是该链必须是合法的区块链。
③区块链分叉[4]。第一种硬分叉:在新共识规则发布后,部分没有升级的节点无法验证已经升级的节点生产的区块,区块链发生永久性分歧;二是软分叉:当新共识规则发布后,没有升级的节点会因为不知道新共识规则下,而生产不合法的区块(即新节点程序不再认为旧节点继续生产的区块仍然是合法性,以前旧区块新节点肯定是认可的,不然接不上了),就会产生临时性分叉,旧节点必须升级,不然将持续挖出能上链但又不被认可的区块。
④稳定币。也是一种数字货币,号称是瞄准某一法定货币(一般是1对1关系)。稳定币可用于不同数字货币之间交换了桥梁,或以其为换算标准。常见的有USDT、USDC等
⑤多链币。一种数字货币在多种区块链上发布,比如:以太坊组织在BTC, ETH, EOS, TRON四条链上都发行了USDT,其中ETH和BTC链流动着超过80%的USDT,该币在不同链的价值基本相同。
(3)数字钱包
①私钥与公钥。用椭圆加密算法(ECDSA)来产生数字钱包的私钥和公钥。
②三者之关系。私钥—(SECP256K1算法)—>公钥—(RIPEMD160算法)—>钱包地址
SECP256K1是一种椭圆曲线算法;
RIPEMD160也是一种Hash算法(类似SHA256);
即:由私钥可以算出公钥(反之不行),由公钥可以算出钱包地址(反之不行),所以经常把公钥和比特币地址的说法相混淆,他们都是指的同一个概念,钱包地址只是另一种格式的公钥,但是两者的外在表现形式是不一样的。
③数字钱包。即是数字货币的钱包,不同的数字货币(肯定也在不同的链上)其钱包地址是不一样的;数字钱包中并没有钱,它只是一串地址,通过该地址可以计算得到该种数字货币在其所在链上的交易信息(当然包括余额)。
④身份钱包:助记词一般由12个单词构成,解决同一个人可能需记住多个钱包信息的问题。如果一个人有多种数字货币资产,其必须持有多个数字钱包(也就得记住多个私钥、公钥和钱包地址),也就必须记住多个钱包信息。为解决该问题,创造了身份钱包中的“助记词”,通过“助记词”,可以推导出该人员的其他数字钱包的所有信息。
⑤钱包的Keystore:Keystore的本质是加密后的私钥,Keystore必须配合你的钱包密码来使用。Keystore+密码=私钥。
备注:
[1] DAO(Decentralized Autonomous Organization)是在区块链上运行的去中心化组织,它的规则被写入网络代码,根据协议或当特定条件发生时会自动执行。社区(代币持有者)通过设定的流程可以投票更改规则。因此,DAO是一种新型的技术赋能组织形式,它允许人们聚集在一个共同的目标后面,并以正式的方式一起工作以实现他们的目标。
[2] POW:工作量证明(Proof Of Work),简单理解就是一份证明,大家用它他认可(形成共识)你做过一定量的工作,该共识让你获得记账权(出区块),进而获得奖励。是ETH1.0时的共识机制,主要是计算(寻找)特定的一段文本,该文本用SHA256算法计算后摘要与指定的相同。
[3] POS:权益证明(Proof Of Stake),系统在符合条件的节点中随机选择,直接赋予其记账权。是ETH2.0时的共识机制。符合条件的节点指,该节点有用于质押的Stake数量,每1个Stake为32个ETH(持币时间、数量都是考虑内容)。
[4] 区块链分叉:是由节点程序升级导致的。由于某种实际需要,区块链节点程序需要修改或升级,升级后的节点程序产生的新区块与未升级的节点程序产生的区块(也就是原先的区块)可能会不兼容,此时会出现几种情况。