区块链入门——关于比特币的疑问

    说起比特币相信大家都不陌生,毕竟在此之前从未有哪种电子货币像今天的比特币那为人熟知,以至于成为像黄金股票等可以用来“炒”的金融产品。比特币就像是互联网上的一个传奇,我们可能听说过它有许多许多神奇的特性,而作为像我之前对这些一窍不通的小问号,每每想起比特币都会有许多朋友。

小问号,你是否有很多朋友?
本文旨在尝试从各种技术的效果(功能)层面串联,即不讨论比特币所依赖的技术的具体实现,只是说明这种技术可以起到一种什么样的效果(功能),以澄清一些比特币中的概念,而不是现在的区块链。

预备知识

这里举的例子只是为了说明功能,与比特币的具体实现无关

hash函数

    大家最熟悉的hash函数应该非MD5莫属,它实在太常用了,我们知道网站数据库中的各种账户密码经常是用MD5加密的,因而我们选用MD5来说明hash函数的功能。简单地讲,hash函数就是把任何电子数据不可逆(只能暴力破解)的转换成一串定长的数字,例如字符串"admin"经过MD5 hash以后得到"21232F297A57A5A743894A0E4A801FC3",它是一个16进制数,你也可以把它当成字符串。此外hash函数还具有一个特点,即即使稍稍改动原数据,输出的数字将大不相同,例如我把上面的字符串改为"Admin",生成的数字变成了"E3AFED0047B08059D0FADA10F400C1E5",注意这一特性并不会因为输入数据的长度而改变。因而hash函数常常被用于检验文件或数据在经传输后的完整性。

非对称加密

    非对称加密算法有很多,最经典的就是RSA,其典型的功能就是用来克服传统对称加密因为加解密都通过同一密钥而在通信环境中无法保证密钥(这玩意拿啥加密?)安全传输的弊端。在非对称加密体系中,公钥是可以随便发的,谁都可以用公钥来加密,但只有私钥可以解密公钥加密的信息。与之对等的是只有私钥加密的信息才能被公钥解密,这便是非对称加密的另一种应用,即数字签名,在私钥不泄漏的情况下,用其加密信息就像是给信息签名了一样,可以证明该信息一定来自私钥的持有者(公钥大家都有,掏出来解密一下,成功了就说明有效)。

比特币和区块链的关系

    比特币是中本聪为了能实现一种像现金或者是黄金那样可以随时直接交易(P2P),而又可以避免因数字信息可以完美复制而导致一笔钱花n次(双花)的问题所提出的一种数字货币。而为了实现比特币,中本聪创造了一种具体机制,而这种具体机制被人们(中本聪并没有明确提出这个名词)抽象成了一种框架(因为现在的区块链和比特币所用到的还是有具体实现的区别的),称为区块链技术,显然这种技术不仅仅可以用来实现比特币,还有许多其他的应用,所以才会如此火爆。总之比特币是区块链的应用,而区块链由是在比特币诞生后被提出的。

区块链为什么要叫区块链?

    我们还仅仅是以比特币中的区块链为例子,为了避免双花问题,那么必须要把所有的交易都记录下来,而且这笔账必须真实可靠。而在实现这个记账机制时,比特币每10分钟左右把这段时间内发生的交易信息打包成一个“区块”(与这期间发生的交易数目没有关系),而为了保证真实性,这个区块的头部又被附上了上一个区块的hash值和一个工作量证明的数据(也即下图中的nonce,什么是工作量证明下面会讲),如此连续,每两个区块之间都通过hash值被串连起来形成了一个链,因而叫做区块链。如果想要修改链中的某一笔交易(做假账)就必须重做之后的区块的所有工作量证明才能让假账得到整个网络的信任。

区块链

比特币是怎样一种存在形式?(比特币是一个文件么?)

    不记得多久以前看见一个新闻说某宅男在自己的旧电脑里无意间发现了几个比特币,于是一夜暴富,从此走上人生巅峰。。。这新闻让我当时以为比特币是某种文件一样的东西。那不就可以通过复制粘贴来得到一堆么?事实上并不是这样,那宅男翻出来的并不是比特币本身,而是比特币钱包。所谓比特币钱包本质上是一对非对称密钥,用户通过私钥来给每一笔交易签名,而比特币网络则通过公钥来验证交易的真实性。所以他找到了私钥实际上就是获得了继续用这几个比特币交易的权利,也就是翻出了几个比特币。

所谓挖矿实际上是在干什么?为什么会要那么多显卡,费那么多电?

    所谓挖矿实际上就是在记账以便维护整个比特币网络,防止双花问题。那么为什么挖坑可以得到比特币呢?比特币的机制为了鼓励大家参与网络的维护,提出了一种激励机制,即每成功封装一个区块则可以获得新产生的比特币作为对维护者(矿工)的奖励。那么自然大家都想当那个可以封装区块的人,那么如何确定由谁来封装区块呢?比特币采用了一种所谓工证明的机制(PoW)即提出一个条件,只有率先满足条件的矿工才可以封装区块,那么是什么条件呢?比如说要找到一串数据,这串数据的hash值具有某种特点,比如和上一个区块的hash前n位相同(只有和上一个区块的hash有所联系才能起到放篡改的作用)。熟悉hash函数的童鞋马上就会意识到这需要大量的计算,当然也不一定,或许你运气好,随便random一个数一hash就满足条件了呢?(我感觉你在想peach)因而为了求稳求快,矿工们使用大量的计算设备(显卡)来寻找满足条件的数据以求能够封装区块进而获得奖励。这也就导致了大量电能的消耗。而随着越来越多矿工加入到竞争中来,网络的算力不断提升,满足条件变得更容易了,然而为了保证10分钟左右才封一次块,比特币网络会提升满足条件的难度(获得新币越来越难,做假账也越来越难)。

只要我挖矿一定能获得比特币嘛?

    看了上面的介绍,答案很明显是不一定。如果你只是随便找了个单片机来挖矿,率先找到符合条件的工作量证明数据的可能性太小了,完全无法与矿场竞争,因而很难获得封块的奖励。

为什么说比特币不会通货膨胀?

    中本聪在创立比特币的第一个区块时得到了50个比特币作为奖励,比特币机制规定,每满21万个区块,创立新区块的奖励将减少一半,而且中本聪还限制了比特币的总数为2100万个,因而便可以算出所有比特币预计在2140年颁发完毕。比特币越发越少的机制使得它不同于发币,一般不会通货膨胀。

为什么勒索病毒要使用比特币作为交易手段?

wannacry病毒

    我们都听说无法通过比特币的收款地址追查到收款人,但是还听说过比特币账户的流水信息都是公开透明的,这听起来有点点矛盾。那么究竟黑客是如何理由比特币实现匿名的呢?这涉及到两方面内容。

1.比特币本身的机制

    比特币网络是一个去中心化的网络,每个节点之间是平等的,他们共同维护整个比特币账本。而这些节点分散在全球各地,没有哪一个单独的权力机构可以控制全部的节点;其次尽管比特币流水信息是透明的,但这仅是钱包层面的公开,比特币账户仅仅是一对非对称密钥,不包含任何个人信息,而且可由用户随时生成新的钱包,在比特币创世论文中,中本聪就建议每次交易使用一个新的钱包来避免特定钱包关联到个人。;并且正常的比特币节点也不会储存某次交易究竟是先有哪个ip发起的。


    但是比特币的交易流量是不加密的,也即是说当黑客要从挂在勒索病毒上的账户里把钱转走时,这个转账的流量还是有可能被他所在的网络的防火墙截获的;并且如果有权力机构向网络广泛的中安插非正常的节点,该检点会记录交易与发起者ip的对应关系以寻找大概是哪些节点总是先收到交易请求,这时匿名性也会被衰弱。因而黑客还需要采用其他的辅助匿名手段。

2.黑客采用的其他匿名手段

    从上面的介绍我们看到黑客还是需要其他手段的辅助来隐藏ip,而这时就该大名鼎鼎的Tor网络出场了,至于Tor为什么可以隐藏ip,这不在本文的讨论范围之内。

发布了12 篇原创文章 · 获赞 23 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_33917045/article/details/105341873
今日推荐