安徽省2021区块链知识考试题及答案
一、区块链技术
1.什么是区块链?
去中心化的、分布式的、区块化存储的数据
存储全部账户余额及交易流水的总账本
每个节点有完整的账本数据
账本数据记录了全部的历史交易数据
交易数据存储在区块上
每个区块包含前一区块ID及HASH,形成链
2.区块链基本原理
如果把区块链作为一个状态机,则每次交易就是试图改变一次状态,而每次共识生成的区块,就是参与者对于区块中所有交易内容导致状态改变的结果进行确认。
交易(Transaction):一次操作,导致账本状态的一次改变,如添加一条记录
区块(Block):记录一段时间内发生的交易和状态结果,是对当前账本状态的一次共识
链(Chain):由一个个区块按照发生顺序串联而成,是整个状态变化的日志记录。
3.区块链要解决的问题
如何去中心化地共享数据?
如何确保账户不被冒用?
如何确保账户余额足够?
如何确保交易记录不被篡改?
谁负责记账?
怎么保障记账者的可信?
怎么保障记账者的积极性?
4.区块链特性
去中心化
开放性(没有限制,开源,数据公开)
去信任(仅信任机器)
自治性,集体维护
可靠的数据库(不可更改,永远可访问)
怎么挖比特币匿名性,隐私保护
5.核心技术
P2P网络、数字签名、区块化数据库,竞争记账权、共识算法、交易回溯。
二、P2P网络及通讯技术(分布式技术网络)
1.自动发现
通过种子文件,获取初始节点(地址及端口)
连接初始节点,获取初始节点知道的Peer
把自己的地址及端口广播给各个Peer
接收各个Peer广播的地址信息,构建出网络的全貌或片段
2.技术领域
分布式存储、分布式计算、分布式协同
组播
流媒体
搜索引擎
3.通信协议
napster、Gnutella、eDonkey、Bittorrent(文件分发协议)
XMPP、Jabber(即时通信协议)
Paxos、Gossip(分布式系统状态同步协议)
JXTA
4.使用HASH算法及非对称加密及签名技术
每个节点、每个人有唯一的一对公钥及私钥
公钥同时也是每个节点、个人的地址和账号
私钥是证明”我就是我“的唯一手段
HASH算法对数据进行规整
5.算法
RSA、Elgamal、D-H、ECC
SHA256、RIMPED160
6.通常使用椭圆曲线算法生成密钥对
比特币密钥长度:256位
公钥哈希值=RIMPED160(SHA256(公钥))
比特币地址=1+Base58(0+公钥哈希值+校验码)
校验码=前四字节(SHA256(SHA256(0+公钥哈希值)))
7.加密
发送方使用接收方的公钥加密数据
接收方使用本方的私钥解密数据
通常使用本方面交换对称加密的Key
8.签名
发送方使用HASH算法计算数据的HASH值
发送方使用本方的私钥加密HASH值,得到签名
接收方使用HASH算法计算数据的HASH值
接收方使用发送方的公钥解密签名得到发送的HASH值
比较两个HASH值的一致性
9.参考
ElGamal算法,是一种较为常见的加密算法,它是基于1984年提出的公钥密码体制和椭圆曲线加密体系。既能用于数据加密也能用于数字签名,其安全性依赖于计算有限域上离散对数这一难题。在加密过程中,生成的密文长度是明文的两倍,且每次加密后都会在密文中生成一个随机数K,在密码中主要应用离散对数问题的几个性质:求解离散对数(可能)是困难的,而其逆运算指数运算可以应用平方-乘的方法有效地计算。也就是说,在适当的G中,
指数函数是单向函数。
椭圆曲线密码体制是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制。解椭圆曲线上的离散对数问题的最好算法是Pollardrho方法,其时间复杂度为,是完全指数阶的。其中n为等式(2)中m的二进制表示的位数。当n=234,约为2117,需要1.6x1023MIPS年的时间。而我们熟知的RSA所利用的是大整数分解的困难问题,目前对于一般情况下的因数分解的最好算法的时间复杂度是子指数阶的,当n=2048时,需要2x1020MIPS年的时间。也就是说当RSA的密钥使用2048位时,ECC的密钥使用234位所获得的安全强度还高出许多。它们之间的密钥长度却相差达9倍,当ECC的密钥更大时它们之间差距将更大。更ECC密钥短的优点是非常明显的,随加密强度的提高,密钥长度变化不大。