区块基础知识

2018-07-26  本文已影响12人  歌白梨

哈希算法的本质:

哈希函数输入可以是任意长的字符串
函数输出是固定长度的
函数计算过程具有一定的效率

为保障哈希函数的安全性,区块链中的哈希函数的额外性质:

1.抗冲突性:collission-resistance:不同输入很难产生相同输出
2.信息隐藏:information hiding不可逆性:知道哈希函数的输出无法逆向推导出输入
3.谜题友好型:puzzle friendly:输入变化一位输出变化也很大

哈希算法的种类:

MD5:输入不定长度,输出128bits
SHA1:SHA家族第一代,用于TLS和SSL,已被攻破
SHA2:SHA家族第二代,支持更长的信息摘要输出。如SHA224,SHA256,SHA384,SHA512,数字后缀为哈希摘要结果的长度
SHA3:目前无明显弱点,如Keccak算法
RIPEMD-160:160输出的加密算法,旨在代替128位哈希函数MD4,MD5和RIPEMD128

merkle tree梅克尔树

梅克尔树在不同的区块链系统中有不同的细节,但本质相同

比特币中的梅克尔树又称二叉梅克尔树
每一个区块都有自己的梅克尔树

梅克尔树功能
用于检验区块数据的完整性
用于对SPV钱包进行支付验证

存储hash的树
起源于哈希列表 hash list,多层哈希列表点对点网络传输数据,不把数据集中于几台机器,而是从多个机器中下载数据
为检验完整性把大文件分割成小数据块,损坏了则下载该数据块即可

比如:BT。先下载可信hash列表的根hash,然后校验hash列表,再娇艳hash列表中的数据块

以太坊:梅克尔树-帕特里夏树

提高效率节点引入节点类型
常规类型:空节点,叶子结点
引入类型:扩展节点,分支节点


梅克尔树作用
1.验证交易完整性
2.SPV简单支付验证


公开迷药算法,非对称加密算法
两把钥匙:公钥,私钥
公钥公开,私钥必须保密
1.加密,需要保护信息,公钥加密,私钥解密
2.数字签名,手写签名的计算机实现,私钥签名,公钥验证签名


常见算法:

1.RFA:最常见的公开秘钥算法
最流行的公开秘钥算法
公钥和私钥是一对质数
难度基于大质数分解的难度

缺点:
产生麻烦
秘钥长度较大,运算代价高,速度慢
已被成功破解

2.椭圆曲线 ECC
难度基于椭圆曲线离散对数问题

使用更小的迷药,存储空间小
更高的安全性,
常用语比特币中ECDSA(椭圆曲线数字签名)
比特币使用了Secp 256k1标准定义特殊曲线和系列参数

编码
Base64:基于64歌可打印字符表示二进制数据,2^6=64,所以每6隔比特为一个单元,对于一个可打印字符。
BAse58:Bitcoin使用,用于产生Bitcoin的钱包地址

p2p网络协议
1.发现节点,dnesseed,addr
2.打通局域网,nat,upnp协议
3.通信协议

共识算法
1.拜占庭将军问题
2.PBFT算法
RAFT算法
POW

密码学算法

私钥-》椭圆曲线算法-》公钥-》Base58-》比特币地址

UTXO

上一篇 下一篇

猜你喜欢

热点阅读