主页 > imtoken的钱怎么拿出来 > 一篇文章看懂区块链技术原理

一篇文章看懂区块链技术原理

imtoken的钱怎么拿出来 2023-02-09 07:24:23

前言

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

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

如今,市场上新型数字货币如雨后春笋般涌现,其中也不乏以诈骗挪用为目的的空气币。 只有深刻理解数字货币的底层逻辑,才能看清它想要达到的目的,谨防上当受骗。

区块链技术

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

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

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

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

有朋友会问,真实的信息交流有那么重要吗? 解决不了什么大问题,需要庞大的人力和财力研究吗?

从实际来看,尤其是在一些领域,数据的真实性非常重要。

假设一家跨国公司通过全民投票选出公司的新任首席执行官。 由于公司规模庞大,员工数十万,如果保证投票数据真实可靠,不被暗中篡改怎么办?

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

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

区块链原理

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

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

比特币获取原理_2分钟教你如何一键获取比特币_sitejianshu.com 比特币获取

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

第一个块通常由区块链的开发者创建,称为创世块。 假设区块链目前只有一个创世区块,以下区块命名为区块 1、区块 2、区块 3 等。

此时,张三投票给了李四,这条数据记录将在节点网络中广播。 区块1收到这条消息,将这条记录保存在区块1中。过了一会,王五也投给了李四。 投票后,这条记录也将存储在区块 1 中。

随着越来越多的投票记录被记录下来,Block 1 将继续存储在内存中,直到快满为止,Block 1 将被打包成一个完整的区块。 这时,区块链上就会有两个完整的区块。 块,创世块和块 1。

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

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

在回答以上问题之前,我们先搞清楚区块链的存储机制。

既然区块链是用来存储数据的,那它存在于什么地方呢? 众所周知,目前所有的互联网应用数据都存储在数据库服务器中。 该消息存在于微博服务器上。

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

2分钟教你如何一键获取比特币_比特币获取原理_sitejianshu.com 比特币获取

中心化的缺点是什么?

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

web3.0的目标是实现数据的去中心化,打破互联网巨头的垄断,实现人人参与数据的生产和使用、管理和监督。

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

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

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

此时,王五选择李四的记录将被发送到区块链进行存储,数千名员工也会像王五一样在客户端发起投票。 无数的投票记录将继续发送到该地区。 当一个区块满时,立即打包并继续添加到下一个区块中,形成最后一条长区块链。

现在回到上面的问题,这条长长的区块链存储在哪里? 答案可能会让你大吃一惊。 假设公司有10万人,这10万人的每台电脑都会存储一份这个区块链。 长区块链数据。

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

确实如此,但正因为每个人都有备份,每个人都直接成为数据的维护者和管理者,而这些数据的命运将由每个人来决定。 集中核心逻辑。

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

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

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

什么是哈希索引?

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

什么是哈希值?

类似于身份证号,是这条数据的唯一标识。 在计算机中,它是一长串字母、数字和符号的随机组合。 如果有人把王五选择李四的记录改成王五选择牛2的话,这条数据的哈希值会立刻发生变化。

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

李斯的竞选对手牛二看到选票形势对自己十分不利,心中泛起涟漪。

牛二突然想起,表妹的寡母嫁给了村里卖烧饼的李二狗爸爸。 李二狗毕业的时候,让牛二在张三的技术组找了份工作。 狗工作多年才学得少,年纪轻轻就秃了。

牛二赶紧联系上二狗,希望他用技术手段篡改区块链上的数据,扭转目前选举不利的局面。 电话结束时,他答应把他介绍给多年未嫁的女儿。 二狗很高兴。 承诺。

二狗很兴奋。 他买了两盒可乐,连续三个晚上没睡。 最后,他伪造了自己电脑上存储的区块链数据。 但是当数据同步到其他节点时,神奇的一幕出现了,其他节点通过了算法验证。 ,发现二狗电脑的数据被篡改了,死不承认。

其他节点是怎么做到的?

二狗把王五选择李四的区块链上存储的某条记录改成王五选择牛二,那么这条数据的哈希值就会改变,这个区块的哈希值也会随之改变。 改变。 还记得我之前提到的吗? 每个块的头部将链接到前一个块的哈希值。 现在由于数据篡改,前一个区块的哈希值发生了变化,使得后面的区块无法通过算法验证。

从以上案例可以看出,区块链通过密码学的方式杜绝了数据被篡改的可能性,让所有的数据记录都真实可信。 即便如此,在很多朋友的心中还是存在着误区。 区块链是数字货币,区块链就是收钱养韭菜。

区块链和数字货币

sitejianshu.com 比特币获取_2分钟教你如何一键获取比特币_比特币获取原理

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

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

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

这是因为区块链的三大特点是公开透明、记录可追溯、修改不可篡改,非常适合货币。 如果区块链技术能够应用到金融领域,数字货币的信用体系将得到大众的认可。

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

区块链按类型分为三种:公有链、私有链和联盟链。

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

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

联盟链也是私有链的一种。 通常,大型平台组织通常会建立一个联盟链来存储一些关键数据。 比如国家银行和事业单位会投入资金在联盟链上进行研发。

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

数字货币的底层原理

数字货币是区块链技术的一种具体应用,但同时又促进了区块链技术的发展。

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

比特币

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

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

张三、李四、王舞和牛二生活在一座孤岛上。 张三身强力壮擅长钓鱼,李四性情柔弱,需要缝缝补补,王舞是名牌大学建筑系高材生,会搭棚子。 牛二没有体力。 不能做任何工作,但有商业头脑。

为了物尽其用,人尽其才,牛二把大家召集到一起,想了个办法。 首先,他给所有的商品定价,一条鱼10元,搭棚子100元,缝制一件野人服50元。

一天,张三让王五搭棚子,牛二记下张三给王五的一笔一百元钱。

张三从李四那里买了一件野蛮西装,牛二记下张三转账50元给李四。

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

牛二记下两笔钱,王五转10元给张三,李四转10元给张三。

通过牛某二手账户里的账本,我们可以得出张三的余额是-130元,张三欠王五90元,张三欠李四40元。

理论上,只要有账本记录,就可以计算出每个人的余额和交易情况。 即使人与人之间不使用现金交易,账本上记录的余额仍然可以用于人与人之间的经济交易。 一直往前走,这个账本很像银行的角色。

荒岛四人组的所有交易记录都在牛二一手上。 这是一个中心化的账本。 如果牛二想做假账号,其他人就很难察觉。

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

比特币获取原理_2分钟教你如何一键获取比特币_sitejianshu.com 比特币获取

此外,比特币不能入账。 如果张三在一次交易中转了100块钱给李四,就说明张三的余额至少大于100块,这笔交易才算合法。

每天的交易让每个人的账户余额都在动态变化。 需要根据账本的交易记录来计算余额。 随着交易笔数的不断增加,每天计算这个,牛二已经筋疲力尽了。 人的计算不仅速度慢而且容易出错,但计算机会计是它的强项,否则就不叫计算机了。

随着孤岛互联网技术的不断发展,荒岛四人赶上时尚,抛弃了原有的中心化账本,决定未来使用比特币进行交易。 张三想找王五建一座城堡招待女儿,但是王五加班,用了一个月后,张三打开手机APP转了100个比特币到王五的钱包里,然后这条记录就记录下来了在区块链上,交易完成。

同样,王舞想从张三那里买一只海龟送儿媳妇上班。 快递到手后,王舞打开手机APP,转了50个比特币给张三确认收货,交易才算完成。 牛二终于惨了,既然账本上了区块链,他就不能再偷几个币赚点外快了。

以上就是比特币的作用和意义,那么挖矿到底是什么? 比特币和挖矿有什么关系?

挖矿机制与原理

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

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

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

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

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

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

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

张三发现自己的余额里还有2个比特币,他想全部转给李四。

张三付2个币,李四收2个币。 这条交易记录使用张三的私钥通过加密算法生成一个哈希值,即为这条交易记录的电子签名。

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

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

还记得上一节讲到,当一个区块快来不及存储的时候,这个区块就会被打包,打包成一个完整的区块。 那么谁来负责这个包装和包装呢?

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

节点网络中有那么多节点,都在争着做这个工作。 比特币官员有麻烦了。 谁应该选择这样做?

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

这种以被选中的节点作为打包者的算法统称为共识算法。 POW是一种共识算法。 此外,比较有代表性的算法还有POS算法和PoST算法。

节点参与共识算法的猜测,称为矿工,为获得加壳者资格所做的努力称为挖矿。

如果一个矿工被共识算法选中,它就具备了打包打包的资格,我们可以称之为出块或者爆块。

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

比特币使用的 POW 算法非常依赖显卡。 因此,在比特币火爆的时期,市场上高端显卡难求,硬件厂商趁着数字货币大发横财。

2分钟教你如何一键获取比特币_比特币获取原理_sitejianshu.com 比特币获取

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

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

关键的一步来了。 这时候其他矿工也和张三一样做了类似的操作,接下来就要争夺出块权了。

张三的电脑先计算出这个新区块的验证码,用哈希算法不断计算。 可以瞬间计算出来,但是验证码必须小于区块中的随机值(难度值)。 如果数值不够小比特币获取原理,就改变随机数重新计数。 如果还是不行,再改一次随机数,然后继续数。 就这样经过千亿次的计算,终于找到了一个符合条件的验证码,加入到这个新的区域中。 ,至此这个包已经打包好了。

张三将新区块广播到网络,其他矿工将验证这个区块的所有交易信息,并重点验证这个区块计算出的验证码。 如果没有问题,这个块将被接受。 从此以后,区块链会增长一个区块,然后处理自己本地的交易信息池,清空那些记录,更新张三广播的区块,在区块链的末端添加一个新的空区块,准备下一轮释放。 块权利竞争。

从上面的过程我们可以看出,谁能赢得区块权,取决于谁能先解决一道数学难题。 可能有人会问,如果两个人同时算出来呢,比特币官方的解释已经将这种可能性从采用某种机制上隔离开来了。

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

以太坊

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

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

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

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

什么是智能合约?

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

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

智能合约使用与JavaScript非常相似的Solidity语言编写,具有操作区块链数据的能力。

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

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

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

当然比特币获取原理,智能合约没有传统的后端编程语言那么强大。 很多功能,比如上传下载,向外部发送http请求等,本身是不支持的,需要调用其他程序来实现。

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

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

令牌不一定是坏的。 比如腾讯会对外发行qq币,qq币就是一种代币。 用户可以使用qq币购买腾讯的游戏皮肤或装备,但qq币不能用于其他企业交易。

腾讯有很多业务,发行代币可以更好地支持自身产品和服务的销售。 但是有些人没有真正的产业,就用智能合约开发了一个电子钱包,可以根据它的代码写上币种的数量。 分发,然后鼓吹欺骗群众购买他们的货币,让很多无辜的人都被骗了。

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

当然,也有一些不法分子制作虚假的客户端程序。 外观界面看起来还过得去,但里面其实是个骗人的空壳。

2分钟教你如何一键获取比特币_sitejianshu.com 比特币获取_比特币获取原理

其次,社会上会出现一些无良的资本家。 他们会投资组建一支强大的技术团队,但他们的目的是开发一种不会带来任何实际价值的数字货币。 商家会鼓励媒体公关造势,吸引大众。 投入资本后,风头一过,损失最大的还是普通人。 这些不良行为给社会带来了不良影响。

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

IPFS

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

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

一个基于以太坊开发的应用,想把一段视频存储在区块链上。 这样的需求如何实现?

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

IPFS(Interplanetary File System)是一种网络传输协议。 它似乎取代了现有的 HTTP 协议,使 Web 更快、更安全、更开放。

IPFS本身与区块链没有必然联系,但可以设计为与区块链协同工作。

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

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

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

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

当用户上传一段视频到IPFS网络时,视频会被自动分割成几个片段,每个片段可能有几百千字节大小,这个视频可能被分割成20个片段,也可能是30个片段。 分割后,这些视频片段会随机分布到网络上的各个节点进行存储。 节点是安装了客户端并连接到 IPFS 网络的计算机。

The video is divided into so many segments, wouldn't it be troublesome to open and download the video?

完全没有必要为此担心。 The files uploaded to the IPFS network are first divided into several fragments, and the whole file is encrypted by an algorithm to generate a unique string of hash values ​​– the file index. Each small fragment also generates a unique hash value through an encryption algorithm. Hash value, and then arrange the hash values ​​of the small fragments into a hash list according to the original order of the file. In addition to the video fragments, hash value list and file index, this file also contains a content summary. When the user wants When downloading a video, you only need to search the index of this file, and you can open or download the video smoothly.

The behavior mode of IPFS is very similar to that of eMule resource sharing. However, it has fatal weaknesses, such as uploading videos to the IPFS network, and distributing video fragments to different nodes for storage. But once those nodes are shut down, it means that the video resources cannot be downloaded.

The emergence of Filecoin can solve the above problems. Filecoin is a digital currency built using the IPFS transmission protocol, commonly known as filecoin.

In a narrow sense, Filecoin = Bitcoin + IPFS.

Filecoin can solve two major problems of IPFS.

The purpose of Filecoin is to build a blockchain network for storing large file data, and its appearance has revolutionary significance for the development of the blockchain industry.

Development of blockchain applications

Several mainstream digital currencies have been introduced in detail above. Readers must have a basic understanding of the status of the entire blockchain industry.

Next, I would like to talk about what we can do as practitioners in the IT field in the face of the rapid development of blockchain technology.

结尾

Many development engineers used to mainly work on webpages and app development in the company, and later transformed into blockchain technicians. The programs and applications of those projects were centralized, so how to transform those centralized ideas into decentralized ones? It needs a lot of technicians to understand and think.

In addition, many blockchain projects are open source on github, and the code is also public, such as Bitcoin and Ethereum. Understand their operating mechanism through the source code, learn how to write decentralized applications and design principles, and then participate in in decentralized projects.