本篇主要是面试复习内容的区块链部分。
什么是区块链
区块链是不间断的经济交易数字分类账本,可以进行编程,以记录不仅是金融交易,还可以记录几乎所有有价值的东西。它是一个不可变记录的分散式、分布式数据库,该数据库由计算机集群管理,但不属于任何单个实体。
区块链是如何工作的
区块链由不可变的数据记录(称为数据块)组成,这些数据使用密码学进行链接。密码学不过是在读取私人消息时对第三方进行加密和保护数据通信的过程。在区块链中,一旦记录了数据,就不会更改。区块链就像带有时间戳的数学公证人一样工作,以避免篡改信息。
为什么区块链是一种值得信赖的方法
- 它具有开源特性,与其它业务应用程序相互兼容
- 透明度和安全性
- 提高效率和速度
- 无需依赖任何中央权威
什么是区块链中的区块,如何识别
区块链中的区块用于存储数据并永久锁定。添加在块上的数据是不可变的,即不能更改或删除数据。可以通过块的高度和块头哈希来识别块。块中的数据通过称为哈希函数的计算机算法进行检测。它不仅锁定了区块链参与者可以看到的数据,而且使数据不可变。每个块都有哈希函数。
块的主要元素是什么
以下是块的主要元素:
- 指向上一个块的哈希指针
- 时间戳 Timestamp
- 交易 Transaction
是否可以从区块链的网络中删除一个或多个块
可以的,因为有时只需要考虑在线分类账本的特定部分。通过使用默认过滤器和选项,可以删除这些块。
将数据写入块后是否可以更改数据
不可以。
区块链数据库中可用的记录类型是什么
区块链数据库中有两种类型的记录。他们是:
- 交易记录
- 阻止记录
有哪些不同类型的区块链
- 公有区块链(公有链):没有人负责,任何人都可以读写/审核区块链。
- 私有区块链(私有链):它是个人或者组织的私有财产。
- 联合区块链(联盟链):选定的成员可以读取/写入/审核区块链。
什么是分类账本,并命名区块链中用户考虑的常见分类账类型
分类账是一个不断增长的文件,它存储了在区块链网络上两方之间的所有交易的永久记录。
用户考虑的常见分类帐类型:
- 集中式分类账
- 分散的分类帐
- 分布式分类账
公钥和私钥有什么区别
在区块链中,需要使用公钥进行标识,而使用私钥进行加密和身份验证。发送方可以使用接收方的公钥发送消息,而接收方可以使用私钥对消息或交易进行解密。通过同时使用两个密钥,可以确保通信或交易的安全和防篡改。
区块链以什么顺序连接
区块链中的所有区块都以反向顺序连接,或者每个区块都与其前一个区块连接。
区块链分类账和普通分类账有何不同
区块链是一种数字账本,可以很容易地分散,与原始账本相比,区块链账本中的错误机会要少得多。区块链自动执行其所有任务,而在普通分类账本中,每项任务都是手动或者人工完成的。
什么是共识算法
共识算法是一种方法,通过该方法,区块链网络的所有对等方都可以达成分布式账本当前状态的标准协议。它可实现高可靠性,并在分布式计算环境中的未知对等方之间建立信任。
共识算法有哪些
- 工作量证明PoW
- 容量证明PoC
- 活动证明PoA
- 委托权益证明DPoS
- 股权证明PoS
- 权威证明
- 燃烧证明
- 唯一节点列表
- 重量证明
- 拜占庭容错PBFT
什么是加密货币
加密货币是一种数字资产,可以用作使用加密功能进行金融交易的交换媒介。加密货币利用区块链技术获得透明度,去中心化和不变性。加密货币可以使用公钥和私钥在两方之间直接发送,而手续费极低。
区块链架构的核心组件是什么
- 节点:区块链结构中的用户/计算机
- 交易:区块链系统的最小组成部分
- 块:用于维护一组分配给网络中所有节点的事务
- 链:块顺序
- 矿工:在添加到区块链结构之前执行块验证过程的特定节点
- 共识协议:进行区块链操作的规则集
区块链的一个区块永远不能有多个父区块吗
区块链永远不会有父区块,每个区块在区块链中都会独立的。
什么是51%攻击
51%攻击或者双花攻击是指区块链上的单个或者一组矿工,他们试图控制超过50%的网络挖掘哈希率或计算能力。这些攻击者试图阻止新交易获得确认,并使他们停止某些或所有用户之间的付款。它们还能够撤销在控制网络时完成的交易。这意味着他们可以双倍花费硬币。
什么是RAS算法
RSA算法也被称为非对称密码算法,它对两个不同的密钥(即公共密钥和私有密钥)起作用。公共密钥可以与任何人共享,并且私有密钥必须保密。公有密钥可以与任何人共享,而私有密钥必须保密。
该算法是用于签名数据和加密的第一个算法。它最广泛运用于保护敏感数据。
RSA会受到攻击吗
RAS可能会遭到攻击。通常,有两种攻击RSA的方法:
- 蛮力:包括所有潜在的秘密密钥。
- 数学攻击:在这种情况下,需要使用不同的技术来近似地计算两个素数的乘积。
什么是双重支出
双倍支出被认为是数字现金计划的潜在缺陷,因为多次使用相同的数字令牌。令牌通常由可以轻松克隆的数字文件组成。比特币用户通过在区块链上付款时等待确认来保护自己免受双重支出欺诈;随着确认的增加,交易变得不可逆转。
什么是盲目签名
盲目签名是密码术中数字签名的一种形式,其中消息的内容在签名或者考虑之前是不可见的。它主要用于作者和签名方不同的隐私相关协议中,这是一种经过验证的方法。
区块链中有助于消除安全威胁的关键原则是什么
- 连续性计划
- 稽核
- 确保测试和类似方法
- 数据库安全
- 保护应用程序
- 数字化劳动力培训
权益证明和工作量证明有什么区别
- 工作量证明是区块链中的原始共识算法。它用于确认交易并为链产生新的区块。矿工相互竞争以完成网络上的交易并获得奖励。
- 股权证明使共识机制完全虚拟。在这种情况下,一组节点决定放样其交易验证的加密货币。
什么是默克尔树,它在区块链中的重要性是什么
Merkle树也称为哈希树,主要由以太坊和比特币使用。区块链中的Merkle树的重要性在于,如果有人想验证某个区块中的特定交易,他们可以下载区块头链,而不必下载每个交易和每个区块。
默克尔树在区块链技术中起着重要作用。它描述了由各种数据块组成的数据结构。它还通过提供整个交易集的数字指纹来汇总一个块中的所有交易。它可以对大量数据进行有效且安全的内容验证。
什么是秘密共享
秘密共享是用于在区块链中提供数据安全性的主要方法之一。这种方法将个人信息或机密信息分为不同的单元,然后将其发送给网络上的用户。原始信息共享给分配了秘密共享的参与者。
什么是安全策略
安全策略是一个正式且简短的计划,其中包含组织的目标,目的和信息安全程序。简而言之,它定义了确切地需要保护免受威胁的条件以及在威胁发生时如何处理情况。
为什么区块链需要硬币或者代币
令牌/代币被视为是交换媒介。它们是内置的数字资产,可在区块链内执行特定的功能。某人进行交易时,状态会发生变化,coin会从一个地址转移到另外一个地址。
什么是采矿
挖掘是通过向网络提供工作证明来向大型分布式公共分类账添加交易的过程,即生成的区块是有效的。它还将新硬币添加到生成的块中。
脱链交易和链上交易有什么不同
链上交易:这些交易在区块链上可用,并且对区块链网络上的所有节点都是可见的。包括由一定数量的参与者对交易进行身份验证和确认; 链下交易:这些交易处理区块链外部的值,可以使用多种方法进行。
集中式网络,分散式网络和分布式分类账之间有什么区别
集中式网络:具有中央机构以方便其操作; 分散网络:分散网络中的连接节点不依赖于单个服务器点,并且每个节点都拥有网络配置的整个副本; 分布式分类账:这是共享分类帐,不受任何中央机构的控制。本质是分散的,并充当金融、法律或电子资产的数据库。
区块链生态系统的主要元素是什么
- 共享账本:本质上是分散的,是区块链的核心组成部分;
- 节点应用程序:一种软件,可以让计算机与区块链连接;
- 虚拟应用程序:处理区块链承担的所有任务;
- 共识算法:用于管理区块链规则,通过该规则每个节点都可以得出结论。
在保护交易记录时,如何进行风险管理
基于数据的价值。
- 第一种,确定与组织的财务记录相关的威胁和漏洞,并相应地采取正确的对策。
- 第二种,注意备份计划。
- 第三种,购买新的风险管理软件。
在组织中采用区块链技术是否有特定于网络的条件
使用区块链没有特定的网络条件。但是,该网络必须是特定协议下的对等网络。
区块链有哪些框架
- Hyperledger Fabric:是区块链技术的一种实现,旨在作为开发区块链应用程序或解决方案的基础。
- Hyperledger Iroha:是一个分布式分类帐项目,旨在简化并易于整合到需要分布式分类帐技术的基础设施项目中。
- Chain:Chain Core 的基础设施使企业能够在许可网络上发布和转移金融资产,仅允许授权和识别的实体成为区块链网络的一部分。
- IOTA:IOTA的分类帐非常适合需要小额支付和连接设备的场景。
- 以太坊:是一个运行智能合约的去中心化平台:完全按照设定程序运行的应用程序,不涉及任何停机、审查、欺诈或第三方干扰。
- Libra:Facebook推出的区块链框架。
如何在保证所有人都可以访问的情况下防止篡改
区块链主要是依靠加密技术来保障数据的安全,主要使用到了加密哈希函数。
哈希算法是无论输入的大小如何,输出始终是相同的字节。但如果输入发生变化,输出将完全不相同。只要输入不变,则不管运行多少次哈希函数,输出的哈希值都是始终相同的。
在区块链中,输出值(即哈希)是数据块的唯一标识符。每个区块的哈希是相对于前一个区块的哈希生成的。区块的哈希值是由其所包含的哈希函数决定的,任何数据的改变都会更改哈希值。所以,该区块的哈希值是由所包含的数据和前一区块的哈希值决定的。这就确保了区块链的安全性和不可篡改性。
描述一下从交易发出到交易上链,以及如何实现共识
区块“链”的链,包含“数据链”和“节点链”。“数据链”指用链式结构组织区块数据,构成数据校验和追溯的链条;“节点链”指多个节点通过网络连接在一起,互相共享信息,其中的共识节点则联合执行共识算法,产生并确认区块。
交易“上链”的简要过程如下:
记账者们收录交易,按链式数据结构打包成“区块”。
共识算法驱动大家验证新区块里的交易,确保计算出一致的结果。
数据被广播到所有节点,稳妥存储下来,每个节点都会存储一个完整的数据副本。
交易一旦“上链”,则意味着得到完整执行,达成了“分布式事务性”,即永久可见且无法更改。
“上链”意味着“共识”和“存储”,两者缺一不可。交易不经过共识,则不能保证一致性和正确性,无法被链上所有参与者接受;共识后的数据不被多方存储,意味着数据有可能丢失或被单方篡改,更谈不上冗余可用。
除此之外,如果仅仅是调用接口查询一下,没有改变任何链上数据,也不需要进行共识确认,则不算“上链”。
区块链是通过共识算法来让不同的节点之间达成共识。例如PoW、PoS等。
区块链有哪些应用场景