自从2008年中本聪的比特币白皮书发表,至今区块链已经发展了近十年的时间。但在最近的加密数字货币大浪潮中,许多人只是知道比特币、以太坊,却不知道区块链到底是什么。
实际上,以比特币为代表的各种加密数字货币都是区块链技术的一种应用。
只为寻找发财捷径而买币,难免沦为韭菜。在群体性疯狂之中,思考和认识水平要比账户上一时的数字更关键。
区块链相关概念。公众号关注:博森科技小蝶。
1. 哈希值
哈希值又叫“数字指纹”,无论多大的数据,经过一番计算后,都可以得到一个固定长度(例如256比特)的哈希值;数据的内容不同,哈希值必然不同,就像人和人不会有相同的指纹。
2. 区块链
一系列数据块(即区块)链接而成的链条,链接的方式是:其中第N+1个区块中,包含第N个区块的哈希值。而且这样的数据块的链条,同时被分布广泛、数量巨大的服务器节点所存储和维护,每个服务器节点都拥有一份区块链的完整拷贝(即区块链数据的存储是高度冗余的)。
3. 去中心化
数量巨大的服务器节点彼此平等,靠某种事先达成的协议来保证大家拥有数据是完全相同的拷贝,他们就构成了一个去中心化系统。而在一个中心化系统中,某个中心节点拥有更高的权力,它负责更新数据,所有其他节点从它那里获得更新后的数据。
4. 哈希碰撞
计算哈希碰撞的过程是不可逆的,预先给定一个值,如果请你构造出一段数据,希望它的哈希值正好是这个给定值,那么就算你拿最强大的计算机算到天荒地老,也构造不出来。而且这个构造的过程中没有任何巧妙的算法可以利用,只能一直去尝试所有可能的数据。
5. 工作量证明
区块链上的区块,除了包含上一个区块的哈希值之外,还至少要包括一串无意义的数字,他被称为nonce。改变nonce的值,就可以改变本区块的哈希值。服务器的节点尝试不同nonce的值,碰撞出一个足够小的哈希值,这个过程被称为工作量证明。所以说,哈希值越小,就会证明你大致尝试过多少个不同的nonce。
6. 共识协议
维护同一个区块链的服务器数量众多,要维护数据的一致性,他们就必须在“谁来决定下一个区块内容”这一问题上达成共识,目前所广泛采用的共识协议是,水献给自己的区块找到足够小的哈希值来完成工作量证明,谁的区块就是下一个区块。
7. 孤块
由于服务器的数量太多了,彼此通讯的延迟有大有小,有时候会产生区块链的分叉,比如说甲、乙两台服务器几乎同时找到了工作量证明,那么会导致有的服务器把甲的区块追加到自己所存储的区块链上,其他则是追加乙的。这个时候,区块链就出现了甲乙两个分支,在两个分支上都有服务器在持续追加块。为了解决这个问题,共识协议约定,以最长的链为准,即经过一段时间之后,如果在甲分支上追加了的区块的数量大于乙分支,就以甲为准,这个时候乙分支上的块,就成为了孤块,不被系统所承认。
8. 51%攻击
“以最长链为准”,其合理性在于,最长链上累计的哈希碰撞的工作最大,相当于服务器之间用哈希碰撞的算力来进行投票,投票选出的链,必然是最长链。只要系统中作恶的坏节点的算力不超过50%,他们就无法累积出最长链。反过来讲,如果有51%的节点都是坏节点,它们联合起来,能任意决定区块中的内容,破坏整个系统,这就是51%攻击。
9. 确认数
某一笔交易被加入区块链的某个区块中,称为得到了一次确认。这个区块之后,区块链每被追加一个区块,就增加了一次确认。确认的数量越多,这笔交易所在的块成为孤块的可能性就越低。
10. 智能合约
智能合约类似于数据库中的trigger(触发器),即特定事件出现的时候,自动执行的代码块。通俗的讲,它使得“钱自己会动”。比如说:老公账目上的钱如果超过一定限额,多出来的钱就会流到老婆账目上。交流请加笔者!