主页 > imtoken官方首页 > 区块链知识普及

区块链知识普及

imtoken官方首页 2023-04-21 07:28:02

​​基本概念

1.什么是区块链

将多笔交易的信息和表示出块的信息打包在一起,体验证书后的包就是出块。

每个区块中都存储了前一个区块的哈希值,这样就产生了区块之间的关系,也就是链。它们一起被称为区块链。

2.什么是比特币

比特币的概念是中本聪在2009年提出的,总量为2100万。比特币链大约每 10 分钟产生一个区块,这个区块由矿工开采 10 分钟。作为对矿工的奖励,会向矿工发放一定数量的比特币,但这个一定数量每四年减半。现在 6.25。再这样下去,2140年所有比特币都会出来。

3.什么是以太坊

以太坊和比特币最大的区别在于它有智能合约。它使开发人员能够在其上开发和运行各种应用程序。

区块链的特点

4.分布式账本

它是一个在网络成员之间共享、复制和同步的数据库。说白了就是区块链上的所有用户都有记账功能,内容一致,保证了数据不可篡改。

5.什么是准匿名

相信每个人都有一个钱包,用于发送交易的钱包地址(一串字符串)是准匿名的。

6.什么是公开透明/可追溯性

区块链存储了从历史到现在的所有数据,任何人都可以查看,也可以查看历史中的任何数据。

7.什么是不可变的

历史数据和当前交易数据不可篡改。数据存储在链上的区块上,并有一个哈希值。如果区块信息被修改,它的哈希值也会发生变化,它后面的所有区块的哈希值也必须被修改,使其成为一条新的链。同时,主链仍在进行交易以产生区块。修改后的链必须始终与主链同步生成块,以确保链的长度相同。成本太高,只修改一条数据。

8.什么是防ddos攻击

ddos:黑客控制多人的电脑或手机,让他们同时访问一个网站,由于服务器带宽有限,大量流量涌入可能使网站无法正常运行,从而蒙受损失。

但是区块链是分布式的,没有中心服务器,如果一个节点出现故障,其他节点不受影响。理论上超过51%的节点被攻击,就会出现问题。

区块链分类

9.主链的定义

以比特币为例,在某个时间点,一个区块允许2个矿工同时挖出,那么最先产生6个区块的链就是主链

10.单链/多链

单链是指处理链上所有事情的数据结构。

多链结构,其核心本质是由公链+N条子链组成。只有一条子链,理论上可以有无数条子链,每条子链可以运行一个或多个DAPP系统

11.公链/联盟链/私链

公链:每个人都可以参与区块链的记账,并且可以下载完整的交易信息。

联盟链:只允许联盟成员参与记账和查询

私有链:写入和查看的权限仅掌握在一个组织手中。

区块链的层次结构

12.共识层、数据层等

区块链的整体架构有六层:数据层、网络层、共识层、激励层、合约层、应用层。数据层:记录数据的层,属于底层技术;网络层:用于构建区块链网络的架构,它决定了用户之间的组织方式。共识层:为每个人提供一组规则,以就他们接收和存储的信息达成一致。激励层:设计激励政策,鼓励用户参与区块链生态;合约层:一般指“智能合约”,是一套可以根据自己的需要自动执行和编写的合约系统。应用层:区块链上的应用,类似于手机应用。

区块链基础技术

阻止

13.时间戳

时间戳是指从 1970 年 1 月 1 日 0:00:00:00 开始的时间……当前时间到现在的总秒数,或者是纳秒等大数的总和。

每个块的生成都带有一个时间戳,指示该块的生成时间。

14.块/块头/块体

区块是区块链的基本单元,区块头和区块体是区块链组件的一部分。区块头包含的信息包括前一个区块的哈希、本区块的哈希、时间戳等。块体是块中的详细数据。

15.默克尔树

默克尔树,也称为二叉树,是一种用于存储数据的数据结构。底层是所有块中包含的原始数据。一层是每个块的哈希值。该层的hash值成对组合,生成新的hash值,形成新的层,然后一层一层往上走,直到产生一个hash值。这样的结构可以用来快速对比大量数据,不用下载所有数据也能快速找到你想要的底层历史数据。

16.什么是扩展

比特币的一个区块大小约为1M,可以保存4000条交易记录。扩容就是让block变大,节省更多数据。

数据结构

17.什么是链

每个区块都会保存上一个区块的hash,这样就创建了A关系,这个关系就是一个链。通过这条链,存储区块交易记录、状态变化等数据。

18.区块高度

这不是距离上的高度,它是指区块与链上第一个区块之间的差异。块的总数。这个高度说明是第一块,仅供识别。

19.分叉

同时产生两个区块(区块内的交易信息相同,但区块的哈希值不同),然后在这两个区块上分叉两条链。谁先从这两条链中产生 6 个区块,谁就是主链,另一条链将被丢弃。

20.幽灵协议

算力高的矿池很容易比算力低的矿工更快出块,导致区块链上的大部分区块。区块由这些具有高计算能力的矿池生成。算力低的矿工出块速度慢,不上链,这些块会失效。

ghost 协议允许应该失效的区块在链上短暂停留,也可以作为工作量证明的一部分。这样算力小的矿工对主链的贡献会更大,大型矿池将无法独占新区块的确认。

21.孤块

前面讲过fork,孤块是同时产生的一个块,其中一个形成链,后面一个不形成链。那么这个不形成链的区块就称为孤块。

22.叔块

上面提到的孤块,通过ghost协议,使其成为工作量证明的一部分,那么它就不会被丢弃,它会被保存在主链上。这个区块是下一个区块的叔叔。

23.重放攻击

黑客重新发送已经发送到服务器的消息,有时这可以欺骗服务器进行多次响应。

24.有向无环图

也称为数据集 DAG(有向无环图)

DAG 是一种理想的多链数据结构。现在提到的大部分区块链都是单链的,即一个区块连接一个区块,一个DAG是多个区块的连接。好处是可以同时产生几个区块,所以网络可以同时处理大量的交易,吞吐量肯定会增加。但存在很多不足,目前处于研究阶段。

以太坊 DAG:

解密算法

25.什么是加密/非对称加密

Symmetric Encryption 加密算法和解密算法都是同一种模式,使用秘钥对信息进行加密和解密。通常,密钥越长,破解密文就越困难。对称加密有一个最大的弱点:保证只有一个密钥可以加密和解密数据,所以甲方必须告诉乙方密钥,否则乙方无法解密。而保存和传递密钥成了最头疼的问题。

非对称加密需要两个(一对)密钥:一个公钥和一个私钥。用公钥加密数据后,只有对应的私钥才能解密。 反之,如果使用私钥进行加密,则只能解密对应的公钥。这样可以保证通信数据的私密性,并且可以确认双方的身份。

发送的信息以密文的形式传输,接收方可以解密的是对称加密,不能解密的是非对称。

26.数字签名/数字身份/数字证书

私钥签名,公钥签名验证。私钥对应两个大数r,s,将发布的消息和r,s打包成消息与公钥一起发送,接收方通过公钥对消息进行解码生成r,s,并比较公钥中的r,s是否相同,则表示签名验证成功。

数字身份是您在互联网上的身份,通常对应一个唯一的识别号码。您在互联网上执行的所有操作都是通过您的数字身份执行的。

数字证书:由一些认证机构颁发,用于证明数字签名背后的真实身份。

27.RSA/椭圆加密算法

这两种加密方法是目前最安全的。 RSA的密钥长度一般为1024位,而椭圆加密的密钥长度为256位。这是主要区别。

28.环签名

当我与他人交易时,我会将自己的私钥与他人的公钥混合,通过某种方式处理成签名。由于这是多人签名,人与人之间没有先后顺序,所以称为环签名。这样别人只知道这群人参与了交易,却不知道是谁在交易。

29.混币服务

一般来说,区块链上的每一笔交易信息都会显示一个输入地址和一个输出地址,这样交易双方的地址就会显示出来。泄露。 Chaos 服务可以将多个相同金额的交易记录在一起,其中多个输入地址混合在一起,多个输出地址混合在一起。这样就消除了交易双方的对应关系。

30.零知识证明

我们组讲过这个知识点。这种方式应用于区块链,可以完全隐藏双方的交易信息,但可以达成交易。

分布式技术

31.节点/全节点/

节点:分布式系统中网络的节点,一般是指通过网络连接的服务器、计算机等,你的计算机也可以作为网络上的一个节点。

全节点:指拥有网络上所有数据的节点。全节点需要同步所有区块链数据,它可以独立验证区块链上的所有交易并实时更新数据。主要负责向其他节点发送交易信息,让其他节点无需下载所有数据即可快速验证交易。

32.点对点通信

两个节点直接通信,不经过第三方,保证用户隐私。

33.分布式存储

传统的分布式存储是一个集中的组织,在许多地方备份数据。每个节点在开放的存储空间中建立整个区块链中的分布式数据库。区块链中的分布式存储可以提高网络的运行效率,解决传统分布式存储中服务器处理速度的瓶颈。

共识机制

34.什么是共识机制

区块链中每个人都同意的规则。所有的交易或其他信息传输都需要经过共识机制的确认,只有在确认合法后才能将信息存储在链上。这确保了每个人的记帐的一致性和准确性。

35.pow

英文是proof of work,即工作量证明。比特币挖矿是 pow 机制。其原理是计算机通过改变变量(nonce)不断地计算一系列数字,直到某一串数字满足指定难度要求时才停止计算。这串数字就是新生成区块的哈希值。

36.位置

英文是proof of stake,即权益证明机制。 pos机制与持有的代币数量和持有时间直接挂钩。该模型会根据您持有数字货币的数量和时间为您分配相应的利息。

简单来说,就是一个根据你持有货币的数量和时间给你支付利息的系统。在 PoS POS 模式中,有一个术语叫做币龄,每个币每天产生 1 个币龄,比如你持有 100 枚币,总共持有 30 天,那么你的币龄就是 3000此时,如果你发现一个POS区块,你的币龄会被清零,每清空365个币,你会从区块中获得0.05个利息币(假设利息可以可以理解为年利率5%),那么本例中,利息=3000*5% /365=0.41个币,这个很有意思,持币有利息。

37.DPOS

英文是delegated proof of stake比特币转账40多确认,delegated proof of stake。

DPoS 给出了一个想法比特币转账40多确认,即在数千个 PoS 节点中通过某种机制(例如持有的代币数量)在这些节点中选出几个(奇数)节点。 (在某些实现中,甚至在这些节点之间以令牌环的方式轮询,进一步减少投票开销),每次生成一个检查点(块)节点,而不是网络中的所有节点。选择。

这种机制可以大大提高选举效率。几十个节点之间的一致投票,最多几百个节点,一般可以在几秒内完成并达成共识,所以DPoS机制可以通过减少投票节点数量或使用token,将checkpoint(交易确认时间)提高到秒级环机制甚至可以下到毫秒级别。

38.51% 攻击

如果一个人控制了全网50%以上的算力,那么他在争夺下一个区块的记账权时就有优势,会比其他人更快地完成工作量证明。因为这个人有这么大的算力,很容易1、修改他的交易记录,可以让他双花2、区块确认部分或者全部交易3、防止一些或所有矿工从任何有效区块中挖掘

39.拜占庭将军问题

描述 10 个小国攻击一个大国的故事。这个在网上可以查到,我就不赘述了。

40.改进的实用拜占庭容错 PBFT

我们专注于预准备、准备和承诺性阶段的三个历史。 pre-preparation 和preparation 阶段用于保证在同一个view 中发送请求的时机(即使主节点发出请求失败),preparation 和confirmation 阶段用于保证不同view 之间的确认请求。是严格有序的。

前期准备阶段

在预准备阶段,主节点为收到的请求分配一个序列号n,然后向所有备份节点发送一个预准备消息。预准备消息的格式为For<

区块链扩容技术

44.分片

分片技术可以解决交易速度慢、吞吐量低的问题。它将网络上的交易分成许多小块,不同的节点负责验证不同小块的内容。这样,节点越多,可以同时验证的交易就越多,整体验证速度加快。通过分片,不同的交易由不同的节点验证。区块链就像一条只有一个收费站的高速路,容易拥堵;分片技术就像提供多个收费站,让车辆可以快速通过。然而,缺点是致命的。内容冲突的交易可能会被不同的节点验证,导致双重支付。目前正在研究中。

45.闪电网络/雷电网络

Lightning Network 是将小交易放在单独的链上,将关键交易放在主链上,以提高交易吞吐量。它采用了时间锁定技术,允许一方篡改交易,另一方在一定时间内发现作弊行为,既可以惩罚对方,又可以保护自己的财产不受损失。在适用阶段。

基于闪电网络的思路,以太坊社区也提出了自己的链下小额支付通道解决方案,通过智能合约实现,也就是雷电网络。

46.跨链和互联链

跨联类似于银行的跨行转账。典型的跨链技术:公证人机制、侧链、哈希锁模式。

互联链是指各种区块链通过某种技术连接起来。

47.侧链

侧链是一种连接两个不同区块链的机制。通过侧链,我们可以将代币转移到其他区块链项目并安全归还。实现方法:通过侧链技术,我们可以锁定一个比特币;另一个区块链项目收到锁定信息后,将允许用户使用与比特币价值相等的代币。在此期间,各种交易/操作完成后,剩余的代币将被重新锁定,并向比特币主链发送一条处理消息以解锁剩余的比特币。侧链是一个独立的、孤立的系统,在侧链中出现的问题只会影响到侧链本身,大大降低了创新风险和成本。

48.图灵完备

如果一个系统可以编写一个找到答案的程序,那么它就是图灵完备的。具体实现依赖于智能合约。用户可以根据自己的需要编写代码来实现需要的功能并调用。

49.去中心化应用DApp

Dapp 一般具有开源和自治的特点。应用程序中的数据经过加密存储在区块链上,以确保安全,保护隐私,改变生产关系。例如,在dapps中,用户访问流量产生的收入可以直接输出给内容生产者,无需平台分一杯羹。

区块链技术的应用

数字货币

50.数字货币

它是一种基于网络算法生成的数字货币,数字被识别的群体被赋予发行硬币和进行交易的功能。

智能合约

51.智能合约

我谈过了。就是在源码中留一个地方放智能合约代码。合约中的方法可以被外部调用。

52.EVM

以太坊虚拟机的缩写。它是一个建立在以太坊区块链上的代码运行环境,用于执行以太坊智能合约。以太坊是一个点对点网络,每个节点都运行着以太坊虚拟机。当智能合约生效时,节点上的虚拟机编译代码,执行合约,存储数据,并确保执行结果记录在区块链上。

53.令牌

它通常被认为是一个令牌。严格来说,应该叫数字权益证明。

数字货币交易

账户相关

54.公钥/私钥

这属于加密的范畴。

Secure HashAlgorithm(SHA的缩写为SHA),可以通过改变算法对任意长度的数据计算出一个固定长度的字符串(也称为消息摘要),并且字符串是唯一的。

比特币私钥实际上是一个由 SHA-256 生成的 32 字节(256 位)随机数。有效私钥的范围取决于比特币使用的 secp256k1 椭圆曲线数字签名标准。 0x1 和 0xFFFF FFFF FFFFFFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4140 之间的数字几乎总是有效的私钥。

在私钥前面加上版本号,然后加上压缩标志和附加校验码。结果的前四个字节),然后对其进行Base58编码,就可以得到我们常见的WIF(Wallet import Format)格式的私钥。

公钥可以通过私钥的椭圆曲线相乘得到。公钥是椭圆曲线上的一个点,具有 x 和 y 坐标。公钥有两种形式:压缩和未压缩。在比特币的早期,使用的是未压缩的公钥,现在大多数客户端默认使用压缩的公钥。

由于数学原理,可以从私钥推导出公钥,但从公钥推导出私钥是不可能的。

刚接触比特币的人经常会误认为比特币公钥就是地址,这是不正确的。从公钥到地址,需要进行一些操作。

55.地址

椭圆曲线算法生成的公钥信息比较长,压缩格式为33字节,未压缩格式为65字节。地址是为了减少接收方需要识别的字节数。生成比特币地址的步骤如下:

1 生成私钥和公钥

2通过SHA256哈希算法对公钥进行处理,得到32字节的哈希值

3 将得到的哈希值通过RIPEMD-160算法配对,得到一个20字节的哈希值——Hash160

4 将版本号+Hash160 SHA256哈希运算组成的21字节数组加倍,得到的哈希值的前4字节作为校验和,放在21字节数组的末尾。

5 Base58编码25位数组得到地址。

具体过程不需要我们一一搞清楚,它涉及到很多数学公式和原理。但我们需要了解以下几点:

由于椭圆曲线乘法和哈希函数的特性,我们可以从私钥推导出公钥,也可以从公钥推导出地址,这个过程是不可逆的。正因为如此,在整个比特币(以太坊等)系统中,公钥是可以公开的,这意味着钱包地址是安全的。私钥是最关键的部分。

挖矿相关

56.挖矿/矿工/区块奖励

挖矿的过程就是对以上六个字段进行一系列的转换、连接和哈希运算,并与要查找的随机数一一找到,最终成功找到满足条件的随机数:经过哈希操作值,小于预设难度值的hash值,则挖矿成功,节点可以向相邻节点广播区块,相邻节点接收到区块,对上述六个字段进行相同的操作验证合规性,然后将其广播到其他节点。其他节点也使用相同的算法进行验证。如果全网51%的节点验证成功,这个区块就真正“挖”成功了。节点都将这个block添加到前一个block的末尾,并删除与自己在block中的记录相同的list,再次恢复上述过程。

另外,无论挖矿成功与否,每个节点都会提前记录50个比特币作为奖励以及交易列表中所有交易的手续费(总投入-总产出)。第一项(这是“挖矿”最根本的目的,也是保证区块链长期稳定运行的根本原因),输出地址就是这个节点的地址,但是如果挖矿不成功,交易将是无效的,没有奖励。而这个称为“生产交易”的交易不参与“挖矿”计算。

57.矿工/地雷

矿工是各种配置的计算机,算力是它们之间最大的差距。

矿机集中在一处的地方就是矿场

58.矿池

矿工们联合起来组成一个团队,这个团队下的计算机组就是矿池。挖矿奖励根据自身算力贡献分配。

59.挖矿难度和算力

挖矿难度是保证生成块的间隔在短时间内是稳定的,比如比特币每分钟10个1块。

算力是矿机的配置

交易相关

60.验证

当验证是对交易合法性的确认时。当交易消息在节点之间传播时,每个节点都会验证交易是否合法。比如验证交易的语法是否正确,交易金额是否大于0,输入的交易金额是否合理等等。验证通过后打包交给矿工挖矿。

61.交易广播

节点通过网络向其他节点发送信息。

62.矿工费

为了让区块链像永动机一样工作,矿工需要时刻维护系统。因此,有必要让矿工受益才能可持续发展。

63.交易确认

当交易发生时,记录该交易的区块会被第一次确认,该区块后会在链上每个区块再次确认;当确认次数达到6次以上时,一般认为交易相对安全,不易被篡改。

64.双重交易

也就是说,我有10块钱,我用这10块钱买了一包烟,然后瞬间就用完了。这 10 块钱又买了一杯咖啡。

所以在验证交易的时候,要确保这10块钱已经花完。

65.UTXO 未使用的交易输出

是一个包含交易数据和执行代码的数据结构,可以理解为存在但没有被消费的数字货币。

66.每秒事务数 TPS

也称为吞吐量,tps 是指系统每秒可以处理的事务数。

钱包相关

67.钱包

类似于支付宝,用于存储数字货币,区块链技术更安全。

68.冷钱包/热钱包

冷钱包是离线钱包。

热钱包是在线钱包。其原理是将私钥加密并存储在服务器上。需要使用时,从服务器下载,在浏览器端解密。

69.软件钱包/硬件钱包

软件钱包是一种计算机程序。一般来说,软件钱包是与区块链交互并允许用户接收、存储和发送数字货币的程序,并且可以存储多个密钥。

硬件钱包是专门处理数字货币的智能设备。

问题相关

70.空投

项目方将数字货币发送到每个用户的钱包地址。白鬼

71.映射

映射关系到区块链货币的发行,是链与链之间的映射。比如一些区块链公司前期还没有完成链的开发,依靠以太坊发行自己的货币,早期货币的发行和交易都是在以太坊上操作的。随着公司的发展,公司自身的连锁发展已经完成。该公司希望将以太坊上的所有先前信息映射到自己的链上。这个过程就是映射。

72.GOHOST: The GHOST protocol is that we have to choose a path on which the most computations are done. One way to determine the path is to use the block number of the most recent block (leaf block), which represents the total number of blocks on the current path (excluding the genesis block). The larger the block number, the longer the path will be, which means that more mining power is consumed on this path to reach the leaf block. Using this reasoning allows us to agree with the authoritative version of the current state. ​​​​