区块链火了有几年了,由于项目需要,本社畜需要了解区块链背景及主要原理。因此,时隔几年,再次从csdn上撰文,力求用简单的语言对区块链进行描述,边学习边整理,用不太学术又不太业余的语言描述区块链。下面 ,我将以问答的方式,解释区块链中几个关键的问题。
1.什么是区块链?
可以从三个粒度进行理解:
(1)区块链是一种数据库。
(2)区块链是一种分布式账本数据库。
(3)区块链是一种去中心化的分布式账本数据库。
区块链由一个个区块链接而成,当前区块通过存储上一区块的哈希值实现链接,每个区块中都记录着一条条交易记录,而每个交易记录都有双方的数字签名。区块链还具有时间戳。可通过区块上的交易记录追溯交易流程。
或许现在你还不能理解标红的词是什么意思,别担心,接下来我会一一解释。
2.什么是分布式账本?
所谓的分布式账本,就是同时在不同地方记录同样的事情。这样做的好处是可以有效防止数据被篡改,毕竟篡改数据也需要成本。
3.什么是去中心化?
去中心化指的是区块链的分布式结构。通常,一个机构或系统是有中心的,其他所有节点都要听从中心的指挥,中心可以监管节点。而区块链自身的机制决定了它的安全性和可靠性,无需监管,因此其每个节点的权力是相同的,没有中心。
4.什么是挖矿?什么是矿工?
挖矿是一种创造区块的过程,试图参与挖矿过程的节点被称为矿工。
5.什么是数字签名?
数字签名是一种早已存在的技术,分为基于哈希值的数字签名和不基于哈希值的数字签名。我们假定要基于一段报文进行数字签名,分别介绍。
基于哈希值的数字签名:首先把报文通过哈希函数映射成一个固定长度的哈希值。报文发送者用私钥加密哈希值,形成数字签名。把报文和数字签名一起发给接收者。接收者用公钥对数字签名进行解密,并用同样的哈希函数将报文映射成哈希值。对比两个哈希值,如果一样,证明报文没有被篡改。
不基于哈希值的数字签名:报文发送者用私钥加密报文,形成数字签名。把报文和数字签名一起发给接收者。接收者用公钥对数字签名进行解密,得到还原的报文。对比两个报文,如果一样,证明报文没有被篡改。
数字签名是一个相对复杂的技术,若想了解详情请移步某位大佬的csdn专栏:
密码学基础_砖业洋__-CSDN博客
顺便解释一下数字签名技术涉及到的两个其他技术:
哈希函数可以把任意长度的报文映射为一个固定长度的哈希值。
非对称加密算法有公钥和私钥一对密钥。如果用公钥加密报文,则需要用私钥解密。如果用私钥加密报文,则需要用公钥解密。通常,公钥是所有人都知道的,私钥只有自己掌握。
6.什么是共识算法?
共识算法是一种规则,用来从挖矿周期中选择矿工的优胜者。因为区块链的分布式账本特性,区块链是同时在多个主机上构建的。可能有多个主机都创建了新的区块,以谁的区块为准(标准的那个区块链称为主链)需要一种裁决算法,这种算法就是共识算法。
7.什么是智能合约?
智能合约是一段写在区块链上的代码,事件触发其条款时自动执行特定程序。其作用是辅助共识算法,当前主机可自动化地和主链同步。
阅读了上述问答,你应该和我一样,已经明白了区块链中几个常出现名词的意思。那么,区块链的构造是什么?它是怎么运行的?我们下篇文章再详细说明。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)