如何理解区块链的运行原理?

简介: 通过今天的武侠故事聊了比特币区块链,其中包括区块链中公开记账、创建创世区块、交易、打包 Transaction、广播交易的几个步骤。

上文,我们介绍了区块链的概念,今天就稍微深入一下,尽可能通俗地介绍一下:区块链的运行原理?

通过上文的小故事,我们知道了区块链的概念,它的本质就是解决信任问题,降低信任成本的技术方案,目的就是为了去中心化,去信用中介。

区块链是比特币的底层技术。比特币的概念最初由中本聪在2009年提出,它就是数字货币,海外也被称为法币。

首先,我们借鉴了一个区块链描述中的经典情景来模拟中心化记账。

假设武当派是一个由百户徒弟的门派,其中张三丰是武当派的掌门,掌门的大徒弟是宋远桥。徒弟们都把钱存到武当派哪里,张三丰负责记账。比如,张翠山用1000买了殷梨亭家的牛,张三丰就把张翠山名下的存款减去1000,殷梨亭加上1000。听起来是不是很想银行的操作呢?

就是要从中心化的银行记账开始聊起。徒弟们都相信张三丰,才愿意把钱存到张三丰的门派,它们相信张三丰不会做恶。

可惜好景不长,张三丰年纪太大了,卸任了掌门人位置。新上任的掌门宋远桥也是很正直和聪明的人,但也有个毛病,就是粗心大意。他不但经常算错帐,一次还被偷改了账单。

不过,幸好徒弟们自己都有记账,但是由于宋远桥每次错帐后都要和别人合队半天,导致村民对新掌门的记账能力十分不满。

时间就这么过去,然而最可怕的事情还是发生了,宋远桥的儿子宋青书竟然私下篡改账本,给宋远桥的亲人的余额全部偷偷加了好多,终于有一天事情暴露,徒弟们气冲冲地跑到宋远桥哪里逃说法,于是武当乱成一团,被赵敏偷袭了。

如果这个时候使用比特币的思路来解决这个问题,应该如何解决呢?

公开记账

每个徒弟都派发一只信鸽。这就是 P2P 网络,是一个点对点的分布式网络。
每个徒弟都发一个特殊的印章和一个扫描器。这个扫描器有两个功效,一是识别他人的交易是否真实有效,二是识别这个交易是不是自己账号的,同时识别并解锁未花费的余额。这就是非对称加密。
每个徒弟都可以参与记账,不过不再记余额,而是记交易本身的内容。这就是区块链中的交易,这个“交易”对应的英文单词是“Transaction”,这是个专有名词,专指一笔账,不同于金融交易的 Trade。
这三条总体来说其实是干一件事情,就是:

每家每户都记账,账簿上不再记载每户村民的余额,而只记载每一笔 Transaction,即记载每一笔交易的付款人、收款人和付款金额。

那么问题就来了:如果每个徒弟都记账,肯定徒弟们的账都不统一啊,你记你的,我记我的,最后不全乱了么?

这个时候需要大家统一账本,保证大家的账本都是一致的。因为记录的交易是门派所有人有序产生的,所以这就需要有一个广播机制。

其实很简单,我们现在先把门派所有人的资产都加起来。还真巧了,刚好 100 万。

只要账簿的初始状态确定,并且每一笔交易可靠并按照物理时间自然记录,并且只加不改不删,这样,当前每户持有多少资产是可以推算出来的。

第一块是一个可以识别的标记,比如我往纸上一敲,可识别的标记是 1MsTg2。

这就是你们的代号,由于我们账本是公开的,使用真实姓名会很危险,所以你们记账的交易单上收款人、付款人都填这个码,不用写姓名。你的扫描器和你的印章生成的代号是关联的,有且仅有持有对应扫描器的人才能花费金额,这一步即为“解开交易”。

刚刚说印章有两块,这第二块内容配合这个扫描器才能看,肉眼看则都是乱码,扫描器一扫就知道第二块内容是否有效,这一步也就是“交易验证”。

并且所有交易大家都能接收,都能看到,但却解不开印章乱码部分的内容,仅仅收款方才能解开,因为你的扫描器和你印章生成的代号是关联的,有且仅有持有对应扫描器的人才能解开交易。

创建创世区块

创世区块是我们生成门派公开账本的第一笔交易的第一个信封,好比一篇文章总得有个开头一样。

于是乎,某个徒弟先生成第一个 Transaction,这个交易单的付款人为空,收款人是宋远桥,付款金额是 100 万,因为是创世区块,产出多少个是可以随意规定的,由于我们上面统计了全门派的账目情况,所以就写了 100 万,待会儿付款给掌门以后,我们可以按照原来的账本给大家发送对应的金额过去。 好了,我们有了第一笔交易,第一个信封也已经做好了。现在让掌门把信封传给张翠山,张翠山复印一份,然后传给殷梨亭,殷梨亭继续传下去,一传十,十传百,直到传给整个门派,这个步骤也就是“同步区块”,也就是全网都拿到这个信封,以及信封里面的 Transaction。

交易

由于我们的创世区块把 100 万交给了掌门,那么我们假设张翠山在掌门那里的存款余额是 10 万,这时候掌门要根据原来的旧账本,把这 10 万发送给张翠山,然后把旧账本上的账划掉。下面我们讨论一下如何构造这笔交易。 把 100 万分成两部分,第一部分 10 万,收款人是张翠上;第二部分是 90 万,收款人是自己;这样一个 Transaction 就做成啦。

前面我们说了,不能直接写名字,要写代号,这个代号也就是你的钱包地址,我们需要把收款人写名字的地方,让收款人拿出自己印章,把代号读出来,然后告诉掌门即可。

掌门写好 Transaction 以后,还需要拿出自己的印章,在 Transaction 上盖章,这个盖章的过程也就相当于区块链中的签名。这个章,门派的所有人都可以拿扫描器扫一下验证是否有效,即验证付款人的章是否有效。

就这样,掌门一共写了 10 份 Transaction,分别代表了发送给不同人的交易,张翠山一笔 10 万,殷梨亭一笔 1 万,等等。

打包 Transaction (挖矿)

现在我们有了 Transaction,但是还需要东西把 Transaction 装起来,我们用一个特殊的信封把 Transaction 装起来,这个信封就是区块链中的“区块”,这个封装过程就是“打包交易”。

为什么要封装起来呢?是为了让打包交易的人能够在信封上署名,表示这次打包是由某某某打包的,其次全村的交易可能非常多,需要装配标号,方便大家查询。

我们看到上述的 Transaction 虽然已经生成,但是有个问题,就是没有规定谁有权利把 Transaction 封装到信封里。

由于我们门派的人口增长,100 万未来可能不够,我们暂定 150 万,那多余的 50 万,我们就当奖励给这些装信封的人了,当然不能一次性给,谁装一次信封就领 3 个币。

这时候大家伙儿来劲了呀,只要装信封就能够领钱了,我们在这里把符合条件的人称作“矿工”。

要获得这个装信封的权利,是有条件的。我给大家出一个难题,谁先解出这个难题的答案,谁就有权利把 Transaction 装到一个信封中,并且要在此信封上盖上自己的章。

好了,这时候大家开始计算给出的难题,刚好张翠山第一个计算出来,那么这次装信封的操作就由张翠山完成,张翠山把 10 份 Transaction 装到信封中,也就是打包 Transaction,并且要在信封背面写上一个信封的摘要信息。

比如上一个信封中的第一个交易是什么、信封封面长什么样,最后要在信封上盖上章,也就是“签名”,矿工签名的目的是为了领币,也就是 Coinbase 交易。

以上过程在区块链领域称作“打包 Transaction”,也就是大名鼎鼎的“挖矿”。

广播交易

来说说上文提到的广播交易,广播是为了让所有人知道当前时刻你产生了一笔 Transaction,或者是你装好了一个信封。

广播的内容分两种,一种是广播 Transaction,一种是广播信封。第一种广播是意味着还有未被打包的 Transaction,而第二种广播信封则意味着这个 Transaction 已经被某个矿工确认。

收到了广播的通知后,大家先验证信封上难题的答案是否正确,这样便可以验证出信封是否被伪造,接着验里面的每笔交易,最后还要验证信封背面的内容,即上一个信封的摘要是否正确。因为上一个信封大家都已经确认,所以这样可以极大地规避作弊的可能。如果觉得没问题,就可以存入本地数据库中了。

双花问题

如果两个弟子同时上传,虽然这个概率很小,但是若发生,我们就看最后的区块链哪条更长,短的那条就失效。这就是区块链中的“双花问题”(同一笔钱花两次)。

对于要制作虚假交易,除非你说服了全网里超过51%的矿工都更改某一笔账目,否则你的篡改都是无效的。 网络中参与人数越多,实现造假可能性越低。这也是集体维护和监督的优越性,伪造成本最大化。说服51%的人造假还是灰常灰常难的。

总结

通过今天的武侠故事聊了比特币区块链,其中包括区块链中公开记账、创建创世区块、交易、打包 Transaction、广播交易的几个步骤。

相关文章
|
8月前
|
存储 算法 区块链
区块链运行原理
上文[《认识区块链》](https://wangbinguang.blog.csdn.net/article/details/131325120)中可以知道区块链是一个通过各种加密算法、共识机制以及其他技术可以实现一个点对点的电子现金系统,从而达到去第三方的效果(通常称之为去中心化)。本文将从区块链的内部结构、交易的过程、如何对一笔交易达成共识以及交易存在的问题详细介绍区块链是如何运行的,并且在此过程中了解区块链更多的特性。
47 0
|
前端开发 区块链
盲盒区块链游戏开发原理丨盲盒区块链游戏系统开发技术详细及案例源码
 The"new retail"model has broken the respective closed state of online and offline.Online and offline can be integrated,complement each other and rely on each other.Online and offline more perform the functions of transaction and payment.Offline is usually used as a platform for screening and experi
|
区块链 vr&ar Android开发
区块链游戏系统开发(链游开发源码)丨链游项目系统开发(方案及原理 )
 什么是DAPP?   DApp是Decentralized Application的缩写,译为:分散式的应用程序。App我们都知道,我们在智能手机上安装的应用程序也就是App。而DApp它的意思就是分散式的应用程序或去中心化的应用程序。
|
新零售 供应链 安全
什么是区块链商城系统开发?如何理解区块链商城系统开发功能详细
从当前新零售的发展形势看,新零售是以用户为中心,在技术驱动下,建立在可塑化、智能化和协同化的基础设施上,依托新供应链,线上线下深度融合,重构人、货、场,满足用户需求,提升行业效率,实现"全场景、全客群、全数据、全渠道、全时段、全体验、全品类、全链路"的零售新模式。智慧零售是新零售的表现形式。
什么是区块链商城系统开发?如何理解区块链商城系统开发功能详细
|
负载均衡 安全 测试技术
洽谈区块链游戏项目系统开发逻辑讲解方案及技术参考原理
洽谈区块链游戏项目系统开发逻辑讲解方案及技术参考原理
227 0
|
8月前
|
存储 安全 区块链
区块链游戏系统开发(开发详细)/案例开发/设计功能/逻辑方案/源码平台
  区块链游戏系统开发是一个复杂而精密的过程。首先,需要进行需求分析和规划,确定游戏系统的功能和特性。然后,进行技术选型和架构设计,选择适合的区块链平台和开发工具。接下来,进行系统的搭建和编码,实现游戏逻辑和用户交互功能。最后,进行测试和优化,确保系统的稳定性和性能。
|
8月前
|
安全 Go 区块链
区块链游戏链游系统开发功能详情丨方案逻辑丨开发项目丨案例分析丨源码规则
 In recent years, with the continuous development of blockchain technology, NFTs (non homogeneous tokens) and DAPPs (decentralized applications) have emerged in the gaming industry.
|
8月前
|
存储 JavaScript 前端开发
区块链代币支付钱包(trx/trc20代币/usdt)对接开发
区块链代币支付钱包(trx/trc20代币/usdt)对接开发
|
9月前
|
存储 机器人 大数据
量化交易机器人系统开发(开发策略)及案例丨数字货币区块链交易所系统开发详细项目/方案设计/开发逻辑/源码版
  区块链的核心技术之一就是公开且透明的交易信息。一般情况下,在区块链内产生、流转和存储的信息是对所有节点用户开放的,其高度的透明化也使得区块内的所有人都能够查看数据的所有相关信息同时使用其应用。因此,区块链技术在信息共享与数据交换领域具有一定的优势。
|
9月前
|
存储 安全 区块链
区块链智能合约DAPP开发|DAPP合约代币项目开发(案例说明)
区块链技术使用了分布式网络来实现去中心化

热门文章

最新文章