主页 > imtoken怎么转bc1地址 > 一篇文章了解区块链技术原理

一篇文章了解区块链技术原理

imtoken怎么转bc1地址 2023-01-17 18:46:44

前言

近期,由于工作需要,对区块链相关技术进行了大量的研究和学习。本文将从开发者的角度,对整个区块链行业的技术发展进行全面的总结和归纳。

文章的目的是帮助大家理解区块链技术的目的,它可以解决什么问题,以及数字货币的意义和价值。此外,文章的后半部分将讨论在区块链飞速发展的今天,开发者社区可以做些什么。事情。

如今,新的数字货币在市场上层出不穷,以骗钱为目的的空气币也层出不穷。只有深入理解数字货币的底层逻辑,才能看到它想要达到的目的,谨防上当受骗。

区块链技术

曾经听到一个外行的提问:“如果区块链技术成熟了,能不能帮助我们国家快速发展芯片?” 这样的问题让人觉得天真可爱。缺乏基本的认知,误以为它是灵丹妙药,似乎任何问题在它面前都不值一提。

区块链技术不能无所不能,其目的是解决人或机构之间的信任问题,使互联网的通信数据和网络通信成为现实。

为了更好地理解区块链的本质,我们以同样热门的技术人工智能为例。人工智能解决了单个对象的生产力问题。通过使用人工智能相关技术,物体具有更强大的能力。过去,很多不能做的事情现在都可以用人工智能来做。

例如,自动驾驶汽车和天气预报。无论是可以自动驾驶的汽车,还是可以预测天气的系统,都需要与其他系统进行通信。区块链需要解决的问题是让物与物之间的信息交换变得真实可信。

有的朋友会问,真实的信息交流有那么重要吗?它没有解决任何重大问题,是否需要大量的人力和财力研究?

从实践的角度来看,特别是在某些领域,数据的真实性非常重要。

假设一个跨国集团通过公投的方式选举了公司的新 CEO。由于公司规模庞大,员工数以十万计,如果保证投票数据真实可靠,不会被暗中操纵怎么办?

目前,没有万无一失的办法。但如果投票过程是在区块链上制定的,那么就可以保证数据的真实可靠。因为区块链解决方案直接从技术层面隔离了数据的篡改。每个人的投票记录都是公开的、可追溯的,一旦存入区块链就无法修改。

投票只是区块链技术的应用方向之一。国家历史、居民信用记录、药品溯源等数据一旦出现就无法篡改。另外,在特别关键的金融领域,每个人的转账记录都应该是可以追溯的,不能修改的。如果金融体系不能保证金融数据的绝对可信,发展互联网金融就毫无意义。

区块链原则

从上面的例子可以看出,区块链一般用于存储数据,但与普通数据库相比,它具有以下三个特点。

区块链采用什么样的架构才能具备以上三个特点?

点击放大上面的图片。图片包含一个按顺序排列的块,每个块存储一个数据记录的集合。这些块首尾相连,形成一条长链。块称为块,整个块由块连接。生成的链称为区块链。

第一个区块通常由区块链的开发者创建,称为创世区块。假设区块链当前只有一个创世区块,后续区块依次命名为 block1、。块2、块3等

这时,张三给李四投了一票,这个数据记录就会在节点网络中广播。Block 1 接收到这个消息,将记录存储在 Block 1 中。过了一会儿,王舞也给了李斯一个消息。一旦投票,该记录也将存储在区块 1 中。

随着投票记录越来越多,block 1 不断的去内存,直到快满了,block 1 被打包打包成一个完整的 block。此时,区块链上有两个完整的区块。区块、创世区块和区块1.

区块 1 打包后,在区块 1 之后会创建一个空的区块 2。区块 2 的头部指向区块 1 的哈希索引。安排谁打包和封装的过程在数字货币领域称为挖矿。

上面提到了节点网络和哈希索引这两个技术术语。他们的意思是什么?

在回答上述问题之前,我们先来明确一下区块链的存储机制。

既然区块链是用来存储数据的,那么它存在于哪里呢?众所周知,目前所有的互联网应用数据都存储在数据库服务器中。例如,微信聊天记录存储在微信服务器中,微博服务器上存在实时微博新闻。

这些数据属于公司的私有财产,完全由公司控制。想删就删,想查就查,想改就改(当然实际上并没有这样做)。数据完全由互联网公司控制。集中控制,这就是所谓的中心化。

中心化的缺点是什么?

区块链技术的普及将彻底打破中心化的格局,预示着未来的新时代——web3.0的到来。

web3.0的目标是实现数据的去中心化,打破互联网巨头垄断的困境,实现人人参与数据的生产和使用区块链货币,以及管理和监督。

区块链如何实现去中心化的目标?

我们以上面的投票为例。为实现投票工作的公平、公正、公开,跨国集团采纳技术员张三的建议,决定将整个投票工作移至区块链上执行。

张三的技术团队为公司开发了一个客户端程序,用于为所有员工提供投票。王武是该公司的一名普通员工。他积极响应公司号召,在电脑上下载并安装了客户端程序,找到了自己喜欢的李思目标,按下OK键为他投票。

此时,王舞选择李斯的记录会被发送到区块链上进行存储,成千上万的员工会像王舞一样对客户端进行投票。无数的投票记录将继续发送到该区。如果一个区块满了,会立即打包加入下一个区块,形成最后一条长区块链。

现在回到上面的问题,这个长长的区块链存储在哪里?答案可能会让你大吃一惊。假设公司有 100,000 人,那么这 100,000 名员工中的每一个人都会在他们的计算机上拥有这个根的副本。长区块链数据。

有朋友可能会问,在10万人的电脑上存储同样的数据,不是很浪费资源吗?

确实如此,但正是因为每个人都有备份,那么每个人直接成为数据的维护者和管理者,那么这些数据的命运将由大家共同决定,这就是区块链的实现。集中的核心逻辑。

我们回到上面提出的问题,什么是节点网络?什么是哈希索引?

成千上万的员工都安装了王舞这样的客户端程序,那么每个员工的电脑就是区块链上的一个节点,所有节点组成的网络就是节点网络。

每个节点存储一个完整的区块链数据,客户端程序在后台悄悄连接所有节点,让节点广播消息和同步数据。

什么是哈希索引?

回想上面介绍区块链架构的图片,每个区块都存储了一系列消息记录的集合。事实上,当每条消息记录被添加到块中时,会使用一种加密算法来为这条记录生成一个唯一的记录字符串。哈希值(也称为哈希索引)。

什么是哈希值?

它类似于 ID 号,是此数据的唯一标识符。在计算机中,它是一长串字母数字和符号的随机组合。如果有人把王舞选李斯的记录改成王舞选牛二,那么这个数据的hash值就会立刻改变。

不仅每条记录都会生成一个哈希值区块链货币,而且每个块都会生成一个唯一的哈希值,对应于块中包含的内容。

李斯的死对头牛二见投票形势对自己很不利,心中泛起涟漪。

牛儿忽然想起,表哥舅舅家的寡妇嫁给了在村里卖芝麻的父亲李二狗。李二狗毕业的时候,牛二在张三的技术团队里找到了一份工作。这只狗已经工作了很多年,才不知不觉,年纪轻轻就秃顶了。

牛二赶紧联系二狗,希望他用技术手段篡改区块链上的数据,扭转目前竞选中的不利局面,并在通话结束时承诺介绍自己一直无法结婚的女儿多年来,对他,二狗欣然答应。

二狗激动得买了两盒可乐,连夜熬了三个晚上。最后,他完成了对存储在他电脑上的区块链数据的篡改。当数据与其他节点同步时,神奇的一幕出现了,其他节点都通过了算法验证。, 发现二狗电脑的数据被篡改,无法识别。

其他节点是怎么做的?

二狗将存储在区块链中的一条记录从王舞选择李斯变成王舞选择牛耳,那么这个数据的哈希值就会发生变化,这个区块的哈希值也会跟着变化。还记得我之前提到的吗?每个区块的头部都会和前一个区块的哈希值挂钩,现在前一个区块的哈希值由于数据被篡改而改变,导致后续区块无法通过算法的验证。

从以上案例可以看出,区块链通过密码学的方式消除了数据被篡改的可能性,使所有数据记录真实可信。即便如此,很多朋友心中还是有误解,区块链就是数字货币,区块链就是为了圆钱融资割韭菜。

区块链和数字货币

狭义的区块链是一种去中心化数据存储的技术,其目标是实现web3.0,与数字货币无关。

数字货币是利用区块链技术开发的一种具体实现方式。比如跨国集团利用区块链技术开发投票系统,日本中本聪想利用区块链技术开发数字货币。

那么为什么一提到区块链就离不开数字货币呢?

这是因为区块链的三大特点,公开透明、可追溯、不可篡改,太适合货币了。如果区块链技术能够应用到金融领域,那么数字货币的信用体系就可以被公众所认可。

很多朋友可能不是很清楚,区块链技术在现实社会的很多领域都得到了应用,但还没有发行过数字货币。比如我们接下来要讲解的私有链和联盟链。

区块链分为公有链、私有链和联盟链三种。

目前市场上非常流行的比特币和以太坊构建的区块链属于公链。任何公链意味着每个人都可以参与其中来获取信息、发起交易等。

私有链并非对所有人开放。加入私链,首先要获得相关组织或个人的授权。比如上面介绍的投票系统,需要搭建一条私有链,只有公司的员工才能参与投票。

联盟链也是私有链的一种。一般大型平台机构通常会搭建一个联盟链来存储一些关键数据。例如,国家银行和事业单位会在财团链上投入研发。

私有链和联盟链的应用开发不需要数字货币的参与。比如投票系统,核心目的是完成一次公平公正的选举,刻意创造数字货币是没有意义的。

数字货币的基本原理

数字货币是区块链技术的一种特定应用,但同时也推动了区块链技术的发展。

本节将选取比特币、以太坊和Filecoin作为材料,阐述数字货币的使命和意义,以及它们的运行机制和对区块链行业形成的影响。

比特币

不知道什么时候,说到区块链,就不得不提到比特币,足以看出比特币在数字货币中的地位。

比特币的使命是建立一个每个人都参与维护的超级账本。那么什么是超级账本?

张三、李四、王五、牛二还是4个人住在岛上。张三强壮善于钓鱼,李四温弱会做针线活,王武名校建筑系高材生能搭棚。牛二不会做任何体力活,但他有商业头脑。

为了发挥自己的才能,牛儿把大家召集到一起,想了一个办法。首先,他们为所有的商品定价,一条鱼10元,盖棚100元,缝制野蛮西装50元。

一天张三让王舞搭棚,牛儿记下了一笔钱,张三转给王舞100元。

张三又从李四那里买了一套蛮荒套装,牛二记了一笔钱,50块钱转给李四。

王舞和李斯也想吃东西,各自从张三那里买了一条鱼。

牛儿做了两张纸条,王舞给张三转了10元,李四给张三转了10元。

通过小牛二手的账本可以得出,张三的余额为-130元,张三欠王舞90元,张三欠李四40元。

理论上,只要把这个账本记录在案,就可以计算出每个人的余额和交易状态。即使人与人之间没有现金交易,账本上记录的余额仍然可以用于人与人之间的经济交易。继续,这个分类账很像银行。

荒岛四人组的所有交易记录,都由牛二一人控制。这是一个集中的分类帐。牛二要造假账号,别人很难察觉。

比特币构建的区块链相当于二手牛里的账本,但是这个电子账本是大家共同维护的,不受任何个人控制。交易记录一旦记录在区块链上,就不​​能再使用了。篡改。

此外,比特币不能记入贷方。如果一笔交易是张三发起的,100块钱转给李斯,说明张三的余额至少有100多块钱,交易是合法的。

每日交易使每个人的账户余额保持动态变化。余额的多少需要根据账本的交易记录来计算。随着交易数量的不断增加,每天计算这些都令人筋疲力尽。人工计算不仅速度慢,而且容易出错。,但计算机会计是一个强项,否则它不会被称为计算机。

随着孤岛互联网技术的不断发展,荒岛四人组放弃了原有的中心化账本,决定未来以比特币进行交易。张三想请王舞建一座城堡逗女儿玩,王舞加班用了一个,一个月完成后,张三打开手机APP,往王舞的钱包里转了100个比特币,然后这个记录就被记录在区块链上,交易完成。

同理,王舞想从张三那里买一只乌龟,送儿媳去上班。快递到达后,王舞打开手机APP,将50比特币转给张三确认收货。交易被视为完成。可悲的是,由于账本在区块链上,他不能再偷偷多赚两笔钱了。

以上就是比特币的功能和意义,那么究竟什么是挖矿呢?比特币和挖矿有什么关系?

挖矿的机制和原理

比特币官方有一个客户端程序。一旦计算机下载并安装客户端并运行它,计算机就成为一个节点。

应用程序第一次启动时,会与节点网络同步信息,将区块链信息下载并保存在本地计算机的一个节点上,以便本地机器备份一个区块链数据。

比特币的目标是构建一个超级账本,其中包含钱包的功能,主要用于进行交易转账。

钱包实际上是私钥、地址和区块链数据的管理工具。

地址相当于银行帐号。一些数字货币将被称为公钥。如果有人想向您转账,他们会将比特币转账到您的地址。它是什么样子的?与此类似 2NLscuT3dBeUAdo39JgmnsEDh3Syt3TUq8.

私钥相当于银行密码。如果你想转账给别人,你需要通过私钥转账。另外,私钥一定不能泄露,否则别人会转移你所有的比特币。

区块链数据是存储在区块链上的交易记录。张三的客户端程序扫描电脑上的区块链数据,找到与自己相关的所有交易记录,并计算出账户余额。

张三发现余额里还有2个比特币,想全部转给李四.

张三付了2个硬币,李斯收到了2个硬币。该交易记录使用张三的私钥,通过加密算法生成哈希值,即交易记录的电子签名。

交易记录和电子签名将由应用程序一起广播到节点网络。一个节点监听这个广播,取出交易记录和电子签名,通过张三的公钥解密计算,确定文章。交易记录是否是张三发起的,其次判断整个过程是否被篡改。

验证交易记录合法后,节点会将交易记录广播给所有其他节点接收,然后节点会在本地搜索区块链,看看张三的账户里是否有足够的钱。,如果存在,则该交易已建立并准备好存储在块中。其他收到广播的节点也会做同样的事情,最后节点计算机上的所有区块都会添加这条交易记录。

记住我在上一节中提到的,当块太快被存储时,块将被打包成一个完整的块。谁负责这个包装?

比特币官方规定,如果有哪个节点愿意做这个辛苦的工作,我会用比特币奖励它

节点网络中有这么多节点,他们都在争先恐后地做这项工作。比特币官员有麻烦了。应该选择谁来做这件事?

比特币官方最终设计了一种 POW 算法来决定哪个节点封装了打包的区块。

这种以选定节点作为打包者的算法统称为共识算法,POW属于共识算法的一种,比较具有代表性的算法有POS算法和PoST算法。

一个节点参与共识算法的猜测,它被称为矿工,其努力赢得打包者资格的努力被称为挖矿。

如果一个矿工被共识算法选中,它就具备打包封装的资格,我们可以称之为区块或突发。

一旦矿工出块,就可以获得官网给予的比特币奖励。

比特币使用的 POW 算法非常依赖显卡。因此,在比特币火爆的时期,市面上的高端显卡一发不可收拾,硬件厂商纷纷借数字货币发家致富。

下面我们来看看矿工张三出块过程的底层逻辑是如何实现的。

矿工张三的区块填满5000条交易信息,再加上一条福利信息,张三得到2个币,前一个区块的验证码和一个随机数。

关键的一步来了。这时候,其他矿工也像张三一样做了类似的操作。接下来,他们必须争夺生产区块的权利。

张三的电脑首先计算出这个新区块的验证码,并使用哈希算法不断计算。可以瞬间计算,但要求验证码必须小于区块中的随机值(难度值)。如果该值不够,如果太小,只需更改随机数,重新计算即可。如果还是不行,再改随机数,然后继续计算。经过这么几亿次的计算,终于找到了符合条件的验证码,添​​加到了这个新的区域。,到目前为止,这个包已经打包好了。

张三将新区块广播到网络,其他矿工将验证该区块的所有交易信息,重点验证该区块计算出的验证码。如果没有问题,区块就会被识别,区块链会从此成长。长出一个区块后,再处理自己的本地交易信息池,清空记录,更新张三广播的区块,在区块链末尾添加一个新的空区块,为下一轮做准备。阻止权利斗争。

从上面的过程我们可以看出,谁能赢得出块权,取决于谁能先解决这样一道难题。有人可能会问,如果两个人同时计算呢?该币的官方解释将这种可能性的发生与采用某种机制隔离开来。

但我们不禁质疑,比特币吸收了全网最高的算力。因此,这些算力只作用于区块链本身的数据计算和整个链的稳定性,并没有对社会做出任何实际的贡献。浪费电。

以太坊

以太坊本身不是数字货币,它是一个数字平台。以太坊使用的数字货币称为以太币。

很多朋友可能会问,以太坊是不是和比特币一样,要出另一种数字货币了?

以太坊的出现对区块链的发展具有革命性的意义。它不仅具备数字货币的能力,而且还有进一步的突破。

狭义上,以太坊=比特币+智能合约。

什么是智能合约?

智能合约在以太坊虚拟机(EVM)上运行,它本质上是部署在以太坊区块链中的一段脚本代码。

我们可以简单理解为,以太坊是一个巨大的数字平台,平台向所有开发者开放了定制智能合约的能力。这时候智能合约就相当于运行在以太坊上的后端代码,可以由开发者编写,让我们作为开发者可以基于以太坊开发一些日常生活中的应用。

智能合约是用 Solidity 语言编写的,它与 JavaScript 类似,具有在区块链上操作数据的能力。

这和我们目前主流的 BS(browser-server)架构非常相似。浏览器访问智能合约的开放接口,智能合约在收到请求时对区块链上的数据进行操作。

在BS架构模式下,数据存储在数据库中,后端代码接受前端请求对数据库中的数据进行操作。现在它变成了一个智能合约,接受前端请求来操作区块链上的数据。

由于数据存储容器已经从数据库变成了区块链,基于以太坊开发的应用是去中心化的应用。

当然,智能合约目前还没有传统的后端编程语言强大。很多功能,比如上传下载、向外界发出HTTP请求等,都是自己不支持的,需要调用其他程序来实现。

目前我们可以利用以太坊来开发一些应用,比如投票系统、众筹软件等。因此,依托以太坊生态开发的应用如雨后春笋般涌现。

网上充斥着三分钟发布数字货币、十分钟发布自己的虚拟货币等新闻。事实上,这些文章都是用以太坊智能合约上的代码来教授电子钱包功能的开发。发行的货币属于代币(ICO),代币与比特币和以太币有着本质的区别。

代币不一定是坏的。比如腾讯会发行qq币,qq币就是一种代币。用户可以通过qq币购买腾讯旗下的游戏皮肤或装备,但qq币不能用于其他公司交易。

腾讯业务众多,发行代币可以更好地支持自身产品和服务的销售。但是,有些人没有任何真正的行业,所以他们用智能合约开发了一个电子钱包,货币的数量可以用它的代码任意编写。发行,其次是炒作,诱骗群众购买他们的货币,欺骗许多无辜的人。

比特币和以太坊都有官方的客户端程序,这些客户端程序包括节点同步、挖矿、区块链运行、消息广播、各种算法验证等功能模块。这些代码实现了一个底层链,因此,此类客户端的开发需要强大的技术实力和专业背景。

当然,制作假客户端程序的不法分子不乏,外观界面也有类似的操作,但内部实际上是一个空壳来欺骗老百姓。

其次,社会上也会出现一些不良资本家。他们将资助组建一支强大的技术团队,但目的是开发一种不会带来任何实际价值的数字货币。投入资本后,风头过去时,损失最大的是普通人。这些不良行为给社会带来了不良影响。

回到正题,以太坊的智能合约可以让程序员开发各种应用,但是如果应用数据非常庞大,比如抖音、微博,里面包含了大量的图片和视频资源,这些海量的数据存储在哪里呢?

IPFS

我们在比特币转账过程中已经提到,每次在区块链上添加一条新记录时,最后都会同步添加区块链上的所有节点,这意味着每条消息记录都应该尽可能保持轻量级。

想象一下,数十万笔交易一直在节点网络之间进行。如果每条交易记录的数据量非常大,所有节点的并发同步会导致整个区块链的崩溃。

一个依赖以太坊开发的应用程序想要在区块链上存储视频。如何达到这样的要求?

IPFS相关技术可以有效解决大数据在区块链上的存储问题。

IPFS(星际文件系统)是一种网络传输协议。它似乎取代了现有的 HTTP 协议,使 Web 更快、更安全、更开放。

IPFS 本身与区块链没有必要的联系,但可以设计为与区块链一起工作。

IPFS 社区开发了基于 IPFS 协议的客户端应用程序。这时候IPFS客户端可以看成是一个去中心化的百度网盘。

用户在 IPFS 网络上存储文件,应用程序返回一串哈希值,这是文件的唯一证书。下次可以用这串哈希值将文件从IPFS网络下载到本地。

以太坊上的应用程序可以利用 IPFS 的能力将所有具有大量数据的资源文件存储在 IPFS 网络上。文件返回的哈希值有少量数据,这些哈希值可以存储在以太坊而不是文件中。在区块链上。

IPFS底层如何存储数据内容?

当用户将视频上传到 IPFS 网络时,视频会自动分成若干段,每段的大小可能有数百公斤。视频可以分为20段或30段。分割后,这些视频片段会随机分布到网络上的各个节点进行存储。节点是在 IPFS 网络上安装了客户端的计算机。

视频分成这么多段,打开下载视频会不会很麻烦?

完全没有必要担心这一点。上传到 IPFS 网络的文件首先被分成若干段,整个文件通过算法加密,生成唯一的哈希值——文件索引。每个小段也是由加密算法生成的。唯一的哈希值,然后将小段的哈希值按照文件的原始顺序排列成哈希表。除了视频片段、哈希值列表和文件索引之外,该文件还包含内容摘要。当用户想要下载一个视频时,只需要搜索这个文件的索引,就可以顺利打开或下载视频。

IPFS 的行为模式与电驴资源共享的行为模式非常相似。但是它有致命的弱点,比如将视频上传到 IPFS 网络,将视频片段分发到不同的节点进行存储,但是一旦这些节点关闭,就意味着视频资源无法下载。

Filecoin 的出现可以解决上述问题。Filecoin是使用IPFS传输协议构建的数字货币,俗称文件货币。

狭义上,Filecoin = 比特币 + IPFS。

Filecoin 可以解决 IPFS 的两大问题。

Filecoin的目的是建立一个存储大文件数据的区块链网络,它的出现对于区块链行业的发展具有革命性的意义。

区块链应用开发

上面已经详细介绍了几种主流的数字货币。读者必须对整个区块链行业的情况有一个基本的了解。

接下来我想谈谈,面对飞速发展的区块链技术,作为IT领域的从业者,我们能做些什么呢?

结尾

许多开发工程师曾经在公司从事网页和应用程序的工作,后来成为区块链技术人员。原来那些项目的程序和应用都是中心化的,那么如何将那些中心化的思想转化为去中心化的思想,需要很多技术人员去理解和思考。

另外,很多区块链项目在github上都是开源的,代码也是开源的,比如比特币和以太坊。通过源码了解它们的运行机制,学习如何编写去中心化应用和设计原理,进而参与去中心化项目。