区块链和比特币(一)

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

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

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

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

加密算法 + 多人记账

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

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

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

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

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

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

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

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

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

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

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

A. 篡改交易记录 / 金额

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

B. 删除交易记录

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

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

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

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

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

什么是区块链token
区块链是由一串使用密码学方法产生的数据块组成的,每一个区块都包含了上一个区块的哈希值(hash),从创始区块(genesisblock)开始连接到当前区块,形成块链。每一个区块都确保按照时间顺序在上一个区块之后产生,否则前一个区块的哈希值是未知的。这些特征使得比特币的双花(double-spending)非常困难。...

比特币的意思是什么
在幕后,整个比特币网络共享一个称作“块链”的公共总帐。这份总帐包含了每一笔处理过的交易,使得用户的电脑可以核实每一笔交易的有效性。每一笔交易的真实性由发送地址对应的电子签名保护,这使得用户能够完全掌控从他们自己的比特币地址转出的比特币。另外,任何人都可以利用专门硬件的计算能力来处理交易...

区块链的局限是什么(区块链的基本问题有哪几项)
利用区块链和多方安全计算技术,实现不同隐私等级数据采取不同数据共享方式,实现数据的“可用不可见共享”,充分释放数据价值,赋能金融业务场景。区块链有哪些看不到的痛点?但人们如信仰般狂热追捧区块链时,看不见这些“痛点“:其一,比特币区块链难以建设一个去中心、民主平等的社会。不可篡改、撤销...

比特币不是10分钟一个块吗
比特币是平均10分钟产生一个块,并不是平均分配的。一个块是块链中的一条记录,包含并确认待处理的交易。平均约每10分钟就有一个包含交易的新块通过挖矿的方式添加到块链中。普银、莱特币、狗狗币、瑞波币都有自己的区块,交易的信息都会记录到区块链上。

比特币与其它数字货币区块链都一样吗
不一样,每一种加密数字货币都有自己的区块链。块链是一个按时间顺序排列的比特币交易公共记录。块链由所有比特币用户共享。它被用来验证比特币交易的永久性并防止双重消费。一个块是块链中的一条记录,包含并确认待处理的交易。平均约每10分钟就有一个包含交易的新块通过挖矿的方式添加到块链中。

比特币都有哪些基本概念和术语?如何通俗地理解它们
一个块是块链中的一条记录,包含并确认待处理的交易。平均约每10分钟就有一个包含交易的新块通过挖矿的方式添加到块链中。双重消费 如果一个不怀好意的用户试图将比特币同时支付给两个不同的收款人,就被称为双重消费。比特币挖矿和块链将就两比交易中那笔获得确认并被视为有效在网络上达成一致。...

区块链到底是不是骗局
为什么现在很多人听说块链(数字货币)像骗局,巴菲特说:远离比特币,那只是幻觉.在我看来,有很大内在价值的想法是笑话.笔者认为技术书没有正确的错误,但应用者认为正确的错误.许多人羡慕货币圈(块链的应用程序)一夜之间发财,但忘记了一夜之间回到贫困(其多种货币操作手法与当时的白银现货邮票卡等相同)....

比特币挖矿机是什么原理赚钱的?深度解析比特币挖矿机原理
每一个网络节点向网络进行广播交易,这些广播出来的交易在经过矿工(在网络上的计算机)验证后,矿工可使用自己的工作证明结果来表达确认,确认后的交易会被打包到数据块中,数据块会串起来形成连续的数据块链。每一个比特币的节点都会收集所有尚未确认的交易,并将其归集到一个数据块中,矿工节点会附加一个...

区块链认证模式是什么?
区块链是比特币的一个重要概念,它本质上是一个去中介化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。 区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模...

区块链与数字货币的区别
因此制作了链接.比特币是数字现金,可以在两人之间直接交易,不通过银行那样的第三者.2、区块链唯一应用是数字现金 块链和数字现金就像花生酱和果冻.他们在一起很优秀,他们自己也很优秀.块链不仅仅是用途.每个企业和行业都可以使用分布式分类帐的基础技术.3、块链活动的信息不能公开 ...