区块链相关概念
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【区块链】一系列数据块(即区块)连接而成的链条,连接的方式是:其中第
N+1个区块中,包含第N个区块的哈希值。而且这样的数据块的链条,同时被分布广泛、数量巨大的服务器节点所存储和维护,每个服务器节点都拥有一份区块链的完整拷贝(即区块链数据的存储是高度冗余的)。
【哈希值】哈希值又叫“数字指纹”,无论多大的数据,经过一番计算后,都可以得到一个固定长度(例如256比特)的哈希值;数据的内容不同,哈希值必然不同,就像人和人不会有相同的指纹。
【去中心化(服务器)系统】数量巨大的服务器节点彼此平等,靠某种事先达成的协议来保证大家拥有数据是完全相同的拷贝,它们就构成了一个去中心化系统。而在一个中心化系统中,某个中心节点拥有更高的权力,它负责更新数据,所有其它节点从它那里获得更新后的数据。
【哈希碰撞】计算哈希值的过程是不可逆的,预先给定一个值,如果请你构造出一段数据,希望它的哈希值正好是这个给定值,那么就算你拿最强大的计算机算到天荒地老,也构造不出来。哪怕退一步,只要求你构造一段数据让它的哈希值小于给定值,都需要算很久很久。而且这个构造过程没有任何巧妙的算法可以利用,只能傻傻地去尝试所有可能的数据。这是一个“瞎猫撞到死耗子”的过程,因此被叫做哈希碰撞。
【工作量证明】区块链上的区块,除了包含上一个区块的哈希值(数字指纹)之外,还至少要包括一串无意义的数字,它被称为nonce。改变nonce的值,就可以改变本区块的哈希值。服务器节点尝试不同nonce的值,碰撞出一个足够小的哈希值,这个过程被称为工作量证明。哈希值有多小,就证明你大致尝试过多少个不同nonce。
【共识协议】维护同一个区块链的服务器数量众多,要维护数据的一致性,它们就必须在“谁来决定下一个区块内容”这一问题上达成共识。目前所广泛采用的共识协议是,谁先给自己的区块找到足够小的哈希值来完成工作量证明,谁的区块就是下一个区块。
【孤块】由于服务器的数量太多了,彼此通讯的延迟有大有小,有时候会产生区块链的分叉,比如说甲、乙两台服务器几乎同时找到了工作量证明,那么会导致有的服务器把甲的区块追加到自己所存储的区块链上,其它则追加乙的。这个时候,区块链就出现了甲乙两个分支,在两个分支上都有服务器在持续追加块。为了解决这个问题,共识协议约定,以最长的链为准,即经过一段时间之后,如果在甲分支上追加了的区块的数量大于乙分支,就以甲为准,这个时候乙分支上的块,就成为了孤块,不被系统所承认。
【51%攻击】“以最长链为准”,其合理性在于,最长链上累计的哈希碰撞的工作量最大,相当于服务器之间用哈希碰撞的算力来进行投票,投票选出的链,必然是最长链。只要系统中作恶的坏节点的算力不超过50%,它们就无法累积出最长链。但反过来讲,如果有51%的节点都是坏节点,它们联合起来,能任意决定区块中的内容,破坏整个系统,这就是51%攻击。
【确认数】某一笔交易被加入区块链的某个区块中,称为得到了一次确认。这个区块之后,区块链每被追加一个区块,就增加了一次确认。确认的数量越多,这笔交易所在的块成为孤块的可能性就越低。
【非对称加密】用户生成一对公私密钥,用公钥加密的数据,只能用私钥才能解密;用私钥加密的数据,用公钥才能解密。用户把自己的公钥公之于众,想给他发送秘密信息的人,只需用公钥把信息加密,就不怕信息传递过程中被窃听。私钥必须严格保护起来,不得泄漏。
【数字签名】我希望对外发布一个文件,怎样避免这个文件在传输中被篡改只需把文件的哈希值用私钥加密,和文件一起对外发布即可。接受者用公钥解密,得到了正确的哈希值,就证明文件的确是我所发布的,因为,一、文件一旦改变,哈希值就会变;二、天下只有我拥有私钥。这个被私钥加密的哈希值,称为数字签名。
【比特币】与区块链一同诞生的现金记账系统,区块链的第一个应用。它的区块中的内容,简单但不准确地说,就是一些这样的记录:“我是公钥为X的账户,我把我拥有的Y个比特币,转给公钥为Z的账户”,以及用X对应的私钥为这条记录加上的数字签名。中本聪于2008年发明比特币,2009年完成比特币的开源代码,2010年后逐渐销声匿迹。很多人怀疑中本聪是某个匿名团体的笔名。
【钱包】数字货币让人真正拥有了财富,只要你保存好私钥,任何暴力机关都无法剥夺你拥有的币。但是,一旦丢失了私钥,你就丢失了这个私钥所对应的所有币,而且无法找回。钱包就是帮助你保存私钥的工具,它可以是软件app,也可以是专门的硬件设备。当你需要给其它人支付数字货币时,钱包帮助你生成支付的记录、对应的数字签名,它还帮你把这些信息广播给负责维护区块链的节点们,请他们把这笔交易记录在区块中。
【挖矿】挖矿是一种发行数字货币的机制,也是对维护区块链的节点们的奖励机制。节点们需要接受用户发送来的交易记录,验证其数字签名,验证用户是否真的有他所声称的币,然后把很多的交易记录打包成一个区块,最后还得进行哈希碰撞以获得工作量证明。它们为系统付出了很多劳动,应该得到奖励。以比特币为例,它开始运作时,每当节点为系统追加一个新的区块(或者说“挖”出了一个新的块),节点就会“凭空”获得50个比特币的奖励,这些币是新发行的或者说新“印刷”出来的。之后,每过大约三年半,奖励就会减半,最终在100
多年后会减到0。整个过程中,总共将发行2100个比特币。挖出新块、得到奖励的过程,被形象地称为挖矿。
【矿池和矿工】挖到新区块的关键在于能不能以很高的并行度来进行哈希碰撞,于是有些服务器节点把哈希碰撞的工作“外包”给专门的矿工,自己只负责“接受交易、验证交易、打包交易”这三项任务,这样的服务器就是矿池。矿工专门负责哈希碰撞,一旦矿池挖到了新块,不论这个块究竟是哪个矿工找到工作量证明的,一律和所有的合作矿工按算力大小成比例地分享新块的收益。
【矿场】个人矿工用电脑、手机等设备来进行哈希碰撞,效率很差。为了利用规模效益提升效率,在一些电力廉价的地区,有人投资兴建起了专门的矿场,利用专门定制的硬件设备来进行哈希碰撞,并且聘请专门的工程师来管理众多的设备。
【智能合约】智能合约类似于数据库中的trigger(触发器),即特定事件出现的时候,自动执行的代码块。通俗地讲,它使得“钱自己会动”。比如说:老公账目上的钱如果超过一定限额,多出来的钱就会流到老婆账目上;公司的员工向某慈善组织捐一定数目的钱,公司会自动捐同样数额的钱。
【Token】这个词很难翻译,有人把它翻译成“代币”,感觉不是很全面,所以还是保留英文原文。它是某种资源、资产、股份在区块链上的表示。笼统地讲一下它的具体实现方法:资源、资产、股份的拥有者,使用自己的密钥为一些数据片段加上签名,这些数据片段就变成了Token,借助智能合约,Token可以被拆分成很多份,分配给很多个账户,以及在账户之间流动。
【ICO(Initial Coin Offering)】一家公司准备新创一种区块链来改变世界,但它没有钱,于是就号召大家给它捐助数字货币如比特币,以太币。同时承诺说,这些捐助的币,将会按比例折换成这个新创链上的数字代币送给大家,等有朝一日这个新链真的改变世界了,新创链上的币将暴涨,大家一起发财。
【IFO(Initial Fork Offering)】和ICO很类似,但不是新创一个链,而是说:我们是某个数字货币社区里的用户,我们觉得它不好,现在要分叉这个币、分裂它的社区了!我们分叉很辛苦,因此分叉后的链上,会凭空给我们记录一大笔数字货币的收益。请大家支持我们,支持的方式就是拿比特币,以太币这些硬通货来交换我们手头凭空多出来的收益。
【IMO(Initial Miner Offering)】和ICO很类似,但不是号召大家来换这个新链上的代币,而是号召大家来买这个新链上专用的矿机。大家用矿机挖代币,等代币暴涨,大家就发财了。