区块链(BTC)学习总结1

前言

区块链是未来价值互联网发展的一个方向,具有广泛的应用前景。于是,我的本科毕设方向选择了区块链在数据共享应用的方向。前期我看了关于区块链简介的一些书籍,以及关于数据共享中的联邦学习的一些介绍。但是,我认为光看一些纸质的材料,始终不够深入。于是,我近期开始观看北大肖臻老师的区块链课程,并尝试做一些记录。

区块链的历史及其应用

区块链被认为是下一代价值互联网,因为其具有不可篡改、共识、公开透明、可溯源的特性。同时,它也被认为是最慢的数据库,因为随着时间的积累,全节点需要存储的信息会逐渐增多,维护成本将会超出其可能收益。自2008年中本聪设计的比特币问世后,全球加密货币逐渐形成了一个大爆发的趋势。早期阶段的矿工所积累的财富至今日已不知翻了多少番。所以,加密货币已然成为了一种商业模式,一种投资方式。继比特币之后,2015年由V神设计的以太坊中的以太币也成为了主流加密货币之一。

区块链(BTC)学习总结1_第1张图片

比特币(BTC)中的密码学原理

BTC中的密码学应用主要包括两个
1.哈希
2.签名

哈希是什么?

在数学中,所谓哈希就是一种映射关系。在BTC中,采用的哈希算法是SHA-256,即secure hash algorithm,输出的空间是256bits的。也就是不论输入空间有多大,其输出空间都保持不变。

SHA-256具有以下三个特性,来保证BTC系统中的公私钥安全:
1)collision resistance free:对 x != y, H(x) != H(y)
2)hiding:x -> H(x), 反之不然
3)puzzle friendly:只能通过逐一实验,即brute-force的方法查出落在某个输出的可能输入,没有其他捷径可走

这里需要注意的是,性质1在这里是相对的,严谨地说,是大概率不可能出现碰撞的情况。但如MD5加密算法,目前已经找出了制造碰撞的方法,因此该方法已被弃用。

为了避免在BTC中输入空间过小而导致brute-force难度不大的情况,设计者在block header(区块头)处引入了随机数nonce,这样H(x || nonce)就可以足够随机。

ps:所谓的挖矿,即找出合适的nonce,s.t. H( x || nonce) <= target
首先找出nonce的矿工获得记账权,即编写下一个合法区块的权利

如何建立一个BTC账户?

不同于中心化的银行开户,需要用身份证进行身份校验。BTC的注册无需其他验证,它会自动生成一个(公钥,私钥)对。其中,私钥自己保管好,而公钥的哈希值则对外公布并作为自己的地址。当别人向自己转账的时候,就可以直接向这个公钥的哈希生成的地址转账。

区块链(BTC)学习总结1_第2张图片

什么是签名?

所谓签名,即利用私钥生成的一个用于他人识别自己身份的序列。比如,我用私钥对交易签名,区块链网络上的其他节点将会用我的公钥验证签名。如果匹配,则说明我确实是该账户的主人,具有使用该地址中BTC的权利;反之,我则是冒名使用BTC的坏人。

这里有一个疑点:如果两人公钥和私钥完全重合岂不是可以偷别人的钱?

这是无需担心的,因为BTC机制保证了生成密钥的随机性,这种情况在概率上可以忽略。

这里采用的是非对称加密的方式,即加密和解密的密钥是不相同的;这就解决了对称加密中存在的密钥分发安全问题。

结语

这是本人第一次在CSDN上写博客,如有错漏之处,希望各位dalao不吝赐教!!!

你可能感兴趣的:(区块链,区块链,密码学,比特币)