主页 > imtoken官网下载1.0版本 > 区块链基本原理概述

区块链基本原理概述

imtoken官网下载1.0版本 2023-02-13 07:26:11

​1.简介

区块链本质上是由多个区块组成的数据链,分布存储在多个计算机节点中。这些计算机节点相互独立,不需要相互信任,也没有权威的中心节点,因此区块链被认为是一个“去中心化”和“去信任”的系统。在这两个概念中,“去中心化”是方法,“去信任”是目的,后者需要通过前者来解决;很多人强调前者,但后者才是根本。 “Trustless”是指去掉第三方信任,双方直接交易,不经过受信任的第三方。然而,区块链本身并不要求交易双方相互信任,交易数据允许伪造和欺骗。因此,比特币底层可能存在多个区块链,但通过“共识机制”、“奖励”、“假惩罚”等措施,最终区块链为比特币建立了可靠、值得信赖的解决方案。但在一些小应用中,“共识机制”和“奖励”并不能从根本上解决“去信任”或数据造假的问题比特币工作原理,目前开发的很多区块链应用在某种程度上都是基于“信任”的,这与比特币的区块链有很大不同。 ;即便如此,其中一些系统仍然可以解决其他技术难以解决的问题,具有较高的应用价值。区块链技术。

2.区块链与比特币2.1 区块链发展历程

比特币是上层应用,区块链是比特币的底层实现软件。区块链的发展经历了三个阶段,分别是1.0、2.0、3.0。

区块链1.0是以比特币为代表的虚拟货币时代,实现了货币和支付手段的去中心化,涌现了大量的山寨币。区块链1.0支持两人之间的虚拟货币交易,无法在其他行业推广。

区块链2.0 有智能合约的概念。一笔交易允许多人共同签署并将其发送给其他人。智能合约在金融领域提供了更广泛的应用场景,例如多方合约下的商品交易。区块链2.0的代表是以太坊,它支持智能合约并提供编程接口,用户可以开发自己的虚拟货币。区块链2.0通常用于金融领域。

区块链3.0 将区块链应用于金融行业以外的行业。 Blockchain3.0被誉为继互联网技术之后的新一代技术创新,足以推动更大的产业变革。由于不再依赖第三方或机构来获得信任和建立信用,区块链技术可以提高整个系统的工作效率。区块链3.0的代表是Hyperledger Fabric,不需要交易费用。

2.2 比特币价值和收购

比特币自诞生以来一直高度投机,缺乏第三方监督。比如人民币、美元、欧元都是依靠国家信用和黄金储备作为流通货币,但比特币的信用是一些数学算法。它在中国被认为是非法活动,因为它没有明确的价值基础。

至少可以通过三种方式获得比特币。一种是从一些交易网站购买获得的;另一个是他人通过比特币软件转账获得的;三是通过比特币软件挖矿获得。 “挖矿”是区块链的核心概念之一,将在后面的章节中逐步介绍。本文不讨论非法交易,只讨论区块链的基本原理。

3.两种数学算法

区块链使用两种基本的数学算法:非对称加密和哈希函数。数据通过这两种算法进行加密和解密,数据很难被第三方破解。

3.1 非对称加密算法

对称加密只有一个密钥,用于加密和解密。比如压缩一个以“123456”为密码的文件夹,解压的时候也会用到这个字符串。

非对称加密有两个不同的密钥:公钥和私钥。如果数据用公钥加密,只能用对应的私钥解密;如果数据是用私钥加密的,那么只有对应的公钥才能被解密。通常,公钥是发给别人的,私钥是自己保管的;别人可以用公钥加密,但只有自己有私钥才能解密,安全性高。

3.2 哈希算法

数学中的模运算(余数)是一种非常简单的哈希算法。例如,1、2、3、4、5、6、7、10001除以4后的余数分别为1、2、3、0、1、2、3、1。在另一种形式中,“hash(key)=value”可以写成: hash(1)=1, hash(2)=2, hash(3)=3, hash(4)=0, hash(5)=1, hash(6)=2, hash(7)=3, hash(10001)=1. 可以是可见,在hash算法中,不同的key可能有相同的值。

科学家们创造了很多更复杂的哈希算法,比如MD5、SHA1、SHA256等。下表列出了字符串键“Hello World”对应的各个哈希算法的值!”。

哈希算法

哈希值(值)

二进制数

MD5

ED076287532E86365E841E92BFC50D8C

128

SHA1

2EF7BDE608CE5404E97D5F042F95F89F1C232871

160

SHA256

7F83B1657FF1FC53B92DC18148A1D65DFC2D4B1FA3D677284ADDD200126D9069

256

这些哈希算法具有以下特点:

虽然理论上可能有多个key对应同一个值,但实际上概率很低。因此,可以近似认为key和value是一一对应的,value称为key的数据指纹。数据指纹意味着很难伪造,一个值几乎只能在有限的时间内找到匹配的键。

4.区块链逻辑结构4.1个链表

区块链由“块”和“链”两个词组成。 “块”用于保存数据。对于比特币,大约每 10 分钟生成一个块,存储 10 分钟内的所有交易。交易存储有关货币所有权从一个人转移到另一个人的信息。每笔交易都需要一定的费用,在区块链中称为“gas”。

区块链的“链”是指数据链。在计算机中,数据链可以分为正向链、反向链和双向链。

区块链采用反向链,方便从后往前追溯;但它不能从前到后搜索块。比较几种链表结构,得出以下结论。

主张1.高性能不是区块链考虑的基本因素。

另外,区块链中的第一个区块称为“创世区块”。

4.2 去中心化

主张2.区块链不能太大。

对于比特币,世界上任何人都可以参与挖矿。一个太大的区块链可能会阻止普通计算机保存整个区块链,使得很多人无法参与。 10多年了,现在的区块链只有300g,普通电脑都可以保存。

主张3.区块链不宜更新太快。

再次,这是指比特币的区块链。一个区块需要包含一段时间内几乎所有的交易。由于交易是在互联网上的所有节点之间传递的,如果更新太快,有些交易可能无法进入区块链;另外,由于所有节点都可以挖矿,所以互联网上会有多个不一致的区块链。

4.3 挖矿

区块链由多个区块组成。所谓挖矿,是指生成​​新区块的过程。

一个区块由区块头和区块体组成,区块体包含10分钟内的所有交易。如果在块体中添加、删除或修改交易,默克尔根会发生变化。

区块头主要包括6个元素:哈希(父)、版本、默克尔根、时间戳、难度目标、随机数。所谓挖掘就是确定这六个值。

前一个区块也包含这6个元素,它们的hash值为hash(parent)。由此可见,如果一个区块是欺诈性的,就需要修改其后面所有区块的hash(父级),难度很大。

设置了难度目标,以便每 10 分钟生成一个块。随着计算机功能的增强,该值会动态变化。如下公式所示,系统会根据上一周期的挖矿时间,每2016个区块调整一次挖矿难度。对于特定的区块,这个值是固定的。

难度目标 = 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/难度

从这里开始,674000区块的难度为21,448,277,761,059.70。从第 674001 块开始第 674000 块的 6 个元素的哈希值如下。这个哈希值前面有 19 个 0。为了满足这个条件,必须进行大量计算才能找到其他几个元素。

00000000000000000007f8d1652e3bf35c9d2672be4834fef6ebc6f1c407bd8c

这6个元素中,hash(parent)、version、Merkel root、难度目标都是固定的。时间戳表示出块的时间,随机数是可变的。在分布式系统中,不需要每台计算机的时钟完全相同,时间戳的变化对其他人意义不大;因此,为了简化挖矿难度,也可以提前确定时间戳。这样,6个元素中只需要随机数。

随机数通常从0开始一一尝试,看6个元素的hash值是否满足难度。如果一个随机数满足难度,则说明挖矿成功。新区块生成后,广播到其他相邻节点。

674000区块的随机数为4,275,554,107,可见挖矿的工作量相当大。在区块链中,这样的工作量称为工作量证明 POW。

从事挖矿的人(或人操作的机器)称为矿工。由于第一个成功挖矿的人将获得比特币奖励并获得所有交易的费用,矿工们正在寻找提高挖矿效率的方法。

主张4.矿工追求的是高性能。

4.4 共识机制

如果同一时期只产生一个合法区块,并且没有其他合法区块与之竞争,则该区块将被接受;如果存在竞争区块,超过 51% 的节点将确认累积难度。最大最长的链最终会被接受,其他未被接受的合法区块将被孤立并淘汰。

所谓共识机制是指大多数(超过51%)节点的确认。

4.5 不信任

在互联网中,节点之间没有绝对的信任。事实上,如果大多数节点都是假的,区块链将没有价值。为了防伪,区块链除了去中心化之外,至少还采取了以下措施。

命题5.区块链欺诈是昂贵的。

5.区块链类型

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

5.1条公链

比特币的区块链是一条公有链,具有以下特点。

1)公开的、完全开放的、去中心化的;

2)数据对全网开放,不适用于银行、政府、证券等;

3)数据不可篡改;

4)交易处理速度慢、效率低:全网节点共同参与,每个节点参与决策(真伪判断);

5)如果发行电子货币,这是政府不能支持的行为。

私有链和联盟链是公有链提高开放性和效率的结果。

5.2 私链

私有链不对外开放,只有授权节点才能参与,是部分“去中心化”的区块链。主要用户是金融机构、大型企业、政府部门等。比如央行发行的数字货币只能由央行记录,个人不能参与。此外,阿里巴巴、百度、京东等大公司也将自建私有链,重点关注区块链的数据安全。

5.3 联盟链

也称为产业链,联盟链是建立在公司、组织和组织之间的区块链。通常选择多个节点参与区块共识决策,其他节点只参与交易不参与决策,是一个“多中心化”的区块链。用户群包括银行、证券、保险、集团公司等。

6.区块链应用6.1 应用开发注意事项

随着区块链技术的发展,越来越多的区块链应用开始出现。在决定使用区块链技术开发应用之前,需要综合考虑以下几个方面。

6.2 整合传统数据库开发方式

在决定使用区块链技术开发应用程序后,需要考虑一个问题:是否将所有数据都保存到区块链中?

区块链在性能、数据检索等方面都逊色于传统数据库。另外,如果所有数据都保存到区块链上,它会特别大。一个可行的方法是使用“区块链+数据库”的方式将数据保存在应用程序中。需要追溯防伪的重要信息可以上链,其他信息可以上数据库。在区块链应用中,数据通常存储在多个地方。因此,数据库应具备高性能和支持多备份的特点;即使是高性能、高可用、高扩展性的 Ceph 分布式存储系统也可以用来保存数据。

7.总结

区块链具有“去中心化”、“去信任”、“去第三方”的特点,本质上是一个分布式数据存储系统。将区块链保存到多个计算机节点,通过“共识机制”、“奖励”、“造假惩罚”等措施,最终为比特币建立可靠、值得信赖的解决方案。但是,区块链也存在一些不足比特币工作原理,包括性能差、检索困难等,然后有公链、私链、联盟链等适合不同应用的类型。私有链和联盟链在某种程度上不再是“去中心化”和“去信任”的区块链。在开发应用程序时,应考虑多种因素来确定是否需要采用区块链技术;在一些区块链应用中,可以采用“区块链+数据库”的方式来保存数据,这是溯源的关键。信息保存到区块链,而其他信息保存到数据库或分布式存储系统。