美文网首页
区块链和比特币(一)

区块链和比特币(一)

作者: 我要做大牛23333 | 来源:发表于2022-01-30 13:18 被阅读0次

    区块链(Blockchain)是一种很早就被学界提出但近几年才被比特币带火的一个概念。比特币是基于区块链技术的一种实现,比特币是一种加密货币,或者叫数字货币也可以。我们先以比特币入手谈谈比特币是怎么利用区块链技术的。

    什么是比特币

    假设06年世界杯决赛期间,两个互相不认识的足球迷碰到了,意大利打法国,法国球迷说我们法兰西有齐达内肯定赢你们意大利,意大利球迷不服气说我们意大利是战无不胜的,不信咱俩赌100欧元。现实世界里,怎么办呢?

    • 双方都讲信用,赛后法国球迷会规规矩矩的把100块给这个意大利球迷。
    • 输的一方不讲诚信,溜了。那这个赌是不是白打了,最后就捞了个口嗨。
    • 双方提前把钱给到一个第三方,让这个第三方来做裁判,结果出来后裁判把钱全部给赢的一方。

    我之前讲过我们搞计算机的,90%以上的时间都在处理异常情况,如果人类都很讲信用的话,那这个世界可能就不是现在这样了。秦国当年许给楚怀王那600里地就不是6里了,说不定统一中国的就是楚国了呢也说不定。如果把钱交到第三方手里,万一第三方也跑了怎么办?把钱私吞了。所以现实的陌生世界单靠一颗善良的心是靠不住的,必须有手段稳稳地保证这个承诺,法律契约等。如今很通用的做法是第三方要找权威机构,比如政府,银行等,要么找个有头有脸的人或组织,归根结底还是找个有公信力的机构或人。但一般情况下这个第三方肯定会“雁过拔毛”,收取一定比例的手续费。

    那么到底还有没有办法来解决这个难题呢?这就是比特币最初设计的一个初衷,解决两个陌生人之间的信任问题。

    比特币是怎么解决信任问题的?

    加密算法 + 多人记账

    加密算法

    首先说加密算法,这里又要我之前提过的非对称加密,即公钥私钥。每个人都可以有一对或多对公钥私钥,但一个公钥只能有对应的私钥,反之亦然。其原理就是两个非常大的质数(p和q)相乘得一个数字(n),如果要根据公钥破解私钥的话理论上必须暴力破解,算出这个数字是由哪两个大质数相乘得来的。目前世界上没有公布可以破解1024位以上的私钥,所以采用1024或者2048甚至更长的私钥是非常安全的。

    那么有了公钥私钥,我作为个人就可以用私钥加密,然后发布公钥,任何人都可以用我的公钥解密来确定这就是我本人发布的东西。同理别人给我的转账我也可以用他的公钥解密,从而判断这个就是某人的身份,这也叫数字签名。原理都是一样的,都是加密算法,利用数学欧拉公式,质数相乘等原理得到的。这是个非常伟大的算法,叫RSA,由3个数学家提出,我们普通人只要理解到公钥私钥的概念和用处就好了。

    多人记账

    之前传统模式里,银行或者政府机构都有自己单独的账本,比如张三转给了李四100块,那账本里怎么记?张三的账户里扣除100, 李四的账户里增加100,对吧?

    多人账本也是一样的道理,只不过从之前的中心化机构变成了分布式,去中心化的多个机构甚至个人。好比李白给杜甫转了100两银子,以前是财政部记账,区块链里则是唐太宗,杨玉环,张小静,贺知章等多个人一起记账,记到李太白转给了杜子美100两银子,以此为证,后面附有李白的印章。这样一来,有了多个账本,想要篡改那就难于登天了,李白可以放心的转给杜甫并且不担心他会篡改金额或者抵赖。

    这样做就可以解决开始提到的球迷打赌的问题,但还有个问题,别人为什么要帮我们记账?

    为什么别人要帮忙记账?

    答案是有报酬,这符合人性,不然谁肯帮忙记一笔跟自己没关系的账呢?

    但最终记账的人有且只有一个,不然就要乱套了。

    怎么确保只有一个记账人

    有好处的前提下,如何保证哪一个人来记账呢?这里要涉及到一个数学知识,每个要记账的人,其实也就是所谓的矿工他在记账钱必须要解一个数学问题,这个数学问题没有取巧的办法,只能通过把数字带入公式里硬算,算法就是一个Hash(哈希)算法,类似于算一串数字出来,矿工只可以猜,除此之外别无他法。而且目前比特币里这个猜到的概率是万亿分之一,大概一台普通计算机要持续不断的猜一年才可以猜出来这个数字。

    但世界上有成千上万台计算机,它们如果一起算的话速度会快很多,因为从概率上讲肯定会有一个计算机算出来,现实情况也确实如此。看个比特币真实的例子。


    2017年编号为490624的一个区块

    除此之外,还可以看到Miner(挖矿人)是谁, 这个块里包含了多少比交易(Number of Transactions)。

    矿工捣鬼

    如果这个矿工是个别有用心的人,他在算出来后,私自篡改转账记录和金额怎么办?

    A. 篡改交易记录 / 金额

    前面我们介绍了公私钥加密技术,矿工本身理论上是没有发款人或收款人的私钥的,所以他篡改过的交易记录在用正确的公钥解密的时候会出错,最终被认定为非法(这里作者本人不太确定是在什么时间点做的鉴定,但确定这个记录是可以被证伪的)。

    B. 删除交易记录

    假设一个场景,张三要在北京4环买一个两室一厅的房子,但张三不想出这钱还想白占房子,想到了一种偷鸡摸狗的办法就是篡改交易记录。理论上,在张三付款后,这个记录产生但并未确认,记录需要等到一个解出谜题的矿工来做,假设这个矿工是他自己人,他让矿工把这条记录抹掉,没有问题。但做法有几种:

    1. 确认的区块里就没有这条记录,房东看不到记录,自然不会把产权过户给你。
    2. 确认区块有记录,房东看到记录,然后过户,然后再试图篡改:

    众所周知比特币挖矿需要很长一段时间,因为要做提到很麻烦的数学题,现在这个周期大概是10分钟所有,这是基于全世界几十万矿机同时满负荷工作的前提下。也就是说每十分钟有上万笔交易会被统一确认并放到一个不可改变的区块里,并且这几十万台矿机同时更新自己本地的记录。

    2.1 如果这笔交易刚生成,房东看到了,然后下一秒就把产权过户给张三,那么张三如果想篡改这个付款记录他必须满足几个条件:

    • 下一次算出答案的的矿机必须是自己人
    • 同时有超过一半的节点(账本)承认这笔交易不存在

    成功的难度取决于在篡改的记录之后有多少块被确认过的区块。如果只有一个,那么太简单了,因为区块链算法默认矿工在发布新的区块时,采用第一个收到且较长的区块。所以这次修改后就一劳永逸,因为所有的账本都会背同步,但也有一个问题,就是这次同步会被记录,如果房东查不到账,张三最终还是会被抓起来的。如果有很多个,比如张三转账完后,房东在确认转账后1小时才做的产权过户,那么张三就必须篡改之前差不多6块左右的区块信息,这个很麻烦,因为每一个区块都会指向上一个区块,并且每个区块都会有一个摘要(Hash),这是当前区块所有交易记录的汇总。所以如果试图修改一个很久前的区块,那么后面的区块的摘要都会变掉,这就是哈希树(MerkleTree)。其他节点是可以报告区块链被篡改的信息的。这就要涉及到最重要的一点,经常有人提到的51%算力,就是说如果张三拥有了超过50%的账本都承认这次修改,那么其他节点按照算法设计也会承认这次修改。不过,先不谈世界上基本没人可以同时做到以上两点,就算做到了,如果有人对此有疑问,依然可以把系统强制修复,之前以太坊就出过类似的问题,结局是以太坊篡改了整个区块,追回了被盗取的财产。以太坊分叉事件

    区块链内部结构

    优势与缺点

    以上只是粗浅的介绍了应用区块链技术实现的比特币的特征,它可以很好的实现公开,公正,中立和平等。世界上任意两个陌生人可以依赖比特币或者其他区块链技术实现互相信任。

    • 匿名化:转账记录中的收付款人也只显示公钥地址,没有姓名住址等敏感信息,而且每个持有人可能会有许多个不同的公钥私钥对,在比特币里这些概念被称作地址(Address)。转账就是从一个地址到另一个地址,都是匿名化。当然这也为一些不法分子提供了一个交易平台,比特币背后的交易相当一部分是涉及毒品,腐败,枪支等社会不安定因素。这也是为什么很多国家禁止使用比特币的原因。

    • 密码安全:虽然交易很难篡改,但如果一个人的私钥泄露了或者他想不起来了,那他在比特币里的交易和财产也就化为泡影了,因为这个世界上没有第二个人知道你的私钥长什么样。这也是比特币很难解决的一个问题。反观现有的银行或者叫权威式机构,可以通过其他手段证明你的身份然后帮助你重置密码,最终恢复原本属于你的财产。

    • 算力资源:因为算法设计,比特币的矿机非常的浪费CPU等计算资源,它们只是单纯的计算(挖矿),没有任何其他的意义。据统计世界上有很多矿池(mining pool),这些矿池的算力基本可以占到世界总算力的10%甚至更多。某种程度上讲这就是一种浪费,这也是为啥马斯克会攻击区块链破坏环境的原因。

    • 手续费:对外宣称的都是比特币不会收取任何手续费,这让很多人对跨行转账,国际转账,换汇等操作在比特币上的支持提起了很大的兴趣。但真的没有手续费吗?不是的,众所周知,矿机挖到矿就会收到一份辛苦费,17年的时候是12.5BTC,这个报酬(incentive)每四年会减一半以上,那么矿机会不会就不那么卖力的计算了呢?很难说,因为没有谁会控制所有的矿机。现在是2022年,在写这篇文章的时候笔者查看了最新的比特币区块,矿机的报酬已经降到6.25了,并且难度几乎又翻了一番。这某种程度上意味着,现在去挖矿的投资回报率已经大不如前了,之前一小时挖矿的回报率可能是60多个比特币,现在可能就一半都不到。未来的交易肯定会有手续费的概念,只不过官方说法是,给的少算的慢,给的多,算得快,这就看博弈了,没有细研究这块的算法。

    • 比特币的价格:目前比特币的价格是3.8万美元,或者25万人民币。可以说还是非常的高。

      比特币价格走势
      2009年1月4号,比特币第一笔交易,创世区块被确认。一个叫中本聪的人给比特币区块链里发了第一笔交易。2011年上市,价格在2020年10月份开始暴涨,最高点到过近7万美元。但后来因为马斯克等一番言论,价格又暴跌,可以看到有很多拐点。笔者只是一个普通的工程师,看不出这其中的门门道道。大家可以根据自己的理解结合区块链的特点和应用场景,自己做出合理的判断。
    • 创始人成疑:比特币的创始人是中本聪,比特币的白皮书是他起草发布的。比特币的所有问题都是中本聪通过邮件等社交媒体回答的,但至今为止中本聪是谁,没有一个统一的答案。因为这个世界上还没有一个人以中本聪的名义抛头露面过。这是关于中本聪的百度百科。可以确定的是,这个创始人,或者组织是一个有理想有信仰的人,他不太喜欢权威,追求平等,公开,自由和公正。有点类似于无政府主义,但背后的动机是什么各位看官可以自己判断。

    • 区块链技术:比特币只是区块链技术的一个应用,它是一种加密货币。其实区块链技术远不止比特币,它的特点,不可篡改,公开,公证,自由,可以帮助解决很多社会里人与人打交道的问题。比如交易,比如医疗保险报销,比如冷链食品安全技术,这些需要信息绝对公开透明的场景都可以是区块链极佳的应用场景。只不过现在区块链有点前几年大数据云计算的意思,很多人只是人云亦云的谈名词,完全没有落地,区块链解决的问题是什么,如何盈利等。作为一名工程师或者商业从业者,我们聊区块链的时候应该更多的谈的是它可以帮助人类解决的问题,应用场景等,不要人浮于事,不停的抛出一些专有名词大概念,这对实干兴邦并无帮助。

    相关文章

      网友评论

          本文标题:区块链和比特币(一)

          本文链接:https://www.haomeiwen.com/subject/sxhnhrtx.html