自从区块链、比特币等加密数字货币成为热词以来,人人都在讨论,似乎不谈区块链就已经落后于互联网发展了。为了让大家对区块链技术以有深入了解,币百通这次给大家带来了区块链基本技术的干货资料,话不多说赶紧Mark起来吧!
2.1区块数据
2.11什么是区块/BLOCK
区块是在区块链网络上承载交易数据的数据包,是一种被标记上时间截和之前一个区块的哈希值的数据结构,区块经过网络的共识机制验证并确认区块中的交易。
2.12什么是父块/Parent block
父块是指区块的前一个区块,区块链通过在区块记录区块以及父块的哈希值来在时间上排序。
2.13什么是区块头/Block Header
记录当前区块的元信息,包含当前版本号、上一区块的哈希值、时间截、随机数、Merkle Root的哈希值等数据。此外,区块体的数据记录通过 Merkle Tree的哈希过程生成唯一的Merkle Root 记录于区块头。
2.14什么是区块体/Block Body
记录一定时间内所生成的详细数据,包括当前区块经过验证的、区块创建过程中生成的所有交易记录或是其他信息,可以理解为帐本的一种表现形式。
2.15什么是哈希值
散列函数(或散列算法,又称哈希函数,英语:Hash Function)是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hash values,hash codes,hash sums,或hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。好的散列函数在输入域中很少出现散列冲突。在散列表和数据处理中,不抑制冲突来区别数据,会使得数据库记录更难找到
2.16什么是时间截?
时间截从区块生成的那一刻起就存在于区块之中,是用于标识交易时间的字符序列,具备唯一性,时间截用以记录并表明存在的、完整的、可验证的数据,是每一次交易记录的认证。
2.17什么是随机数?
Nonce是指“只使用一次的随机数”,在挖矿中是一种用于挖掘加密货币的自动生成的、毫无意义的随机数,在解决数学难题的问题中被使用一次之后,如果不能解决该难题则该随机数就会被拒绝,而一个新的Nonce也会被测试出来并且直到问题解决,当问题解决时矿工就会得到加密货币作为奖励。在区块结构中,Nnoce是基于工作量证明所设计的随机数字,通过难度调整来增加或减少其计算时间:在信息安全中,Nonce是一个在加密通信只能使用一次的数字:在认证协议中,Nonce是一个随机或伪随机数,以避免重放攻击。
2.18什么是梅克尔树/Merkle Tree
梅克尔树(又叫哈希树)是一种二叉树,是一种高效和安全的组织数据的方法,被用来快速查询验证特定交易是否存在,由一个根节点、一组中间节点和一组叶节点组成。它使用哈希算法将大量的书面信息转换成一串独立的字母和数字。最底层的叶节点包含存储数据或其哈希值,每个中间节点是它的两个子节点内容的哈希值,根节点也是由它的两个子节点内容的哈希值组成。
2.19什么是未花费的交易输出
未花费的交易输出是一个包含交易数据和执行代码的数据结构,可以理解为收到的但尚未花费的加密货币清单。比特币和其他加密货币在其区块链技术中使用UTXO,以验证一个人是否拥有未使用的加密货币可用于支出。
2.2链式结构
2.21什么是链/ Chain
链是由区块按照发生的时间顺序,通过区块的哈希值串联而成,是区块交易记录及状态变化的日志记录。
2.22什么是链下/ Off-chain
区块链系统从功能角度讲,是一个价值交换网络,链下是指不存储于区块链上的数据。
2.23什么是无代币区块链/ Token-Less Blockchain
即区块链并不通过代币进行价值交换,一般出现在不需要在节点之间转移价值并且仅在不同的已被信任方之间共享数据的情况下,如私有链。
2.24什么是创世区块/ Genesis Block
区块链中的第一个区块被称为“创世”区块。创世区块一般用于初始化,不带有交易信息。
2.25什么是区块高度/ Block Height
一个区块的高度是指在区块链中它和创世区块之间的块数。
2.26什么是分叉/ Fork
在区块链中,由矿工挖出区块并将其链接到主链上,一般来讲同一时间内只产生一个区块,如果发生同一时间内有两个区块同时被生成的情况,就会在全网中出现两个长度相同、区块里的交易信息相同但矿工签名不同或者交易排序不同的区块链,这样的情况叫做分叉。
2.27什么是软分叉/ Soft Fork
指在区块链或去中心化网络中向前兼容的分叉。向前兼容意味着,当新共识规则发布后,在去中心化架构中节点不一定要升级到新的共识规则,因为软分叉的新规则仍旧符合老的规则,所以未升级的节点仍旧能接受新的规则。
2.28什么是硬分叉/ Hard Fork
指在区块链或去中心化网络中不向前兼容的分叉,硬分叉对加密货币使用的技术进行永久更改,这种变化使得所有的新数据块与原来的块不同,旧版本不会接受新版本创建的区块,要实现硬分叉所有用户都需要切换到新版本协议上。如果新的硬分叉失败,所有的用户将回到原始数据块。
2.29什么是幽灵协议/ GHOST Protocol
通过幽灵协议,区块可以包含不只是他们父块的哈希值,也包含其父块的父块的其他子块(被称为叔块)的陈腐区块的哈希值,这确保了陈腐区块仍然有助于区块链的安全 性,并能够获得一定比例的区块奖励,减少了大型矿工在区块链上的中心化倾向问题。
2.210什么是孤块/ Orphan Block
孤块是一个被遗弃的数据块。因为很多节点都在维护区块链并同时创建多个区块,但是一次只能有一个被继续继承,而其它被遗弃的数据块就是孤块。
2.211什么是陈腐区块/ Stale Block
是父块的父块的“其他”子块,或更一般的说是祖先的其他子块,但不是自己的祖先, 如果 A 是 B 的一个叔块,那 B 是 A 的侄块。
2.3 非 对 称 加 密
2.31什么是非对称加密(主要RSA)
加密密钥和解密密钥是不同的,分别称为公钥和私钥。公钥一般是公开的,人人可获取的,私钥一般是个人自己持有,不能被他人获取。优点是公私钥分开,不安全通道也可使用。
缺点是加解密速度慢,一般比对称加解密算法慢两到三个数量级;同时加密强度相比对称加密要差。
代表算法包括:RSA、ElGamal、椭圆曲线(Elliptic Curve Crytosystems,ECC)系列算 法。
2.32什么是密码学?
密码学是数学和计算机科学的分支,同时与原理大量涉及信息论。密码学不只关注信息保密问题,还同时涉及信息完整性验证(消息验证码)、信息发布的不可抵赖性(数字签名)、以及在分布式计算中产生的来源于内部和外部的攻击的所有信息安全问题。
2.33什么是加密算法
加密算法是一个函数,也可以视为是一把钥匙,通过使用一个加密钥匙,将原来明文文件或数据转化成一串不可读的密文代码。加密流程是不可逆的,只有持有对应的解密钥匙才能将该加密信息解密成可阅读的明文。加密使得私密数据可以在低风险的情况下,通过公共网络进行传输,并保护数据不被第三方窃取、阅读。
2.34什么是钥匙?
钥匙是使隐藏的、不可读的信息可读的一串秘密字母和数字。
2.35什么是密钥
密钥是用于加密或解密信息的一段参数,在非对称加密系统中,是通过利用公钥(帐户)与私钥(密码)的配合而实现的。
2.36什么是公钥
公钥与私钥是通过一种算法得到的一个密钥对,公钥是密钥对中公开的部分,私钥则是非公开的部分,公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。
2.37什么是零知识证明
零知识证明”-zero-knowledge proof,是由Goldwasser等人在20世纪80年代初提出的。它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。大量事实证明,零知识证明在密码学中非常有用。如果能够将零知识证明用于验证,将可以有效解决许多问题。
2.4共识机制
2.41什么是共识机制?
所谓“共识机制”,是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共识。再通俗一点来讲,如果中国一名微博大V、美国一名虚拟币玩家、一名非洲留学生和一名欧洲旅行者互不相识,但他们都一致认为你是个好人,那么基本上就可以断定你这人还不坏。
2.42区块链共识机制分为哪几类?
工作量证明机制、权益证明机制、股份授权证明机制和POOL验证池
2.43什么是工作量证明(POW)?
PoW就是你必须花费一定的时间和精力完成任务以后,才能获得记账权,并且谁先完成任务,记账权就归谁。最典型的PoW行为就是比特币挖矿,谁的算力高、挖矿时间长,谁获得的比特币就越多。
PoW 的优点是算法简单,容易实现;完全去中心化,节点进出自由;因为系统庞大,不易被破坏,所以安全性高。缺点是挖矿耗费了大量的电力资源;比特币每秒只能处理7笔交易,所以达成共识的周期较长;随着算力越来越集中,有趋于中心化的趋势。
2.44什么是权益证明(POS)?
PoS简单来说就是谁手中的代币多,谁就有记账权。你手中持有的代币越多,持有天数越长,你获得的收益就越多。很多区块链内容平台都是采用这种共识机制,锁仓的代币越多,权重越高,发文和点赞的收益就越高。
PoS 的优点是不需要挖矿,节约了能源;缩短了达成共识的时间。缺点是有钱人可以通过购买代币提高权重,获得更多的记账机会,那么整个项目就会丧失公平性;为了提高权重,人们会长期持币,不进行买卖,容易产生垄断。
2.45什么是股份授权证明(DPOS)
我们可以把DPoS理解成选举制,网络中的所有节点投票选出一些超级节点,这些超级节点就成为代表,他们得到普通节点的授权,获得记账的权力,每个超级节点间的权利相等,按照既定的的时间表轮流记账。EOS的共识机制就是 DPoS。
DPoS 大幅减少了参与验证和记账的节点数量,能够以秒级的水平达成共识。但是它的缺点也很明显,就是与去中心化的理念相违背。
2.46什么是Pool验证池
Pool验证池基于传统的分布式一致性技术建立,并辅之以数据验证机制,是目前区块链中广泛使用的一种共识机制。
Pool验证池不需要依赖代币就可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础之上,可以实现秒级共识验证,更适合有多方参与的多中心商业模式。不过,Pool验证池也存在一些不足,例如该共识机制能够实现的分布式程度不如PoW机制等。
2.47什么是实用拜占庭PBFT?
PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。将所有的副本组成的集合使用大写字母R表示,使用0到|R|-1的整数表示每一个副本。为了描述方便,假设|R|=3f+1,这里f是有可能失效的副本的最大个数。尽管可以存在多于3f+1个副本,但是额外的副本除了降低性能之外不能提高可靠性。
2.48什么是图灵完备?
在可计算理论中,当一组数据操作的规则(一组指令集、编程语言或元胞自动机)满足任意数据按照一定的顺序可以计算出结果,则称为图灵完备。
2.49什么是混币服务?
混币服务,就是用一种加密货币从其他人那里得到同样金额的加密货币。原理是分离交易中的输入和输出地址,目的是提高加密货币的隐私性和匿名性,使其更难追踪加密货币的用途以及它属于谁。
2.410什么是零币协议?
零币协议是一个发布于2013年的独立协议,原先目的是为了在混币技术、环签技术外增强加密货币的匿名性,零币协议使用零知识证明实现完全匿名,通过一个集合的托管池删除交易的历史记录。零币协议有两个主要部分:“铸币”使有交易记录的币匿名化并置于托管池;通过零知识证明创建一个没有交易记录的新币,并销毁托管池中的币。
2.411区块链版本的技术应用
区块链1.0是以比特币、莱特币为代表的加密货币,具有支付、流通等货币职能。
区块链2.0是以以太坊、瑞波币为代表的智能合约或理解为“可编程金融”,是对金融领域的使用场景和流程进行梳理、优化的应用。
区块链3.0是区块链技术在社会领域下的应用场景实现,将区块链技术拓展到金融领域之外,为各种行业提供去中心化解决方案的“可编程社会”。
了解完区块链的基本技术后,下期币百通将给大家带来数字货币交易的基础知识。朋友们可加bibaitong1进入币百通学习交流群,更多直播课程、学习资料等干货多多~风里雨里我在群里等你~