随着区块链日益普及以及该地区新工作岗位的增加,了解如何为区块链面试做好准备以找到理想的工作非常重要。本文(以及随附的视频)将带您了解一些您应该准备的关键问题及其答案。让我们来看看。
区块链面试问题-初级
1.区分区块链和超级账本。
区块链是一种不可变记录的分散技术,称为块,使用密码学保护。Hyperledger是一个允许人们构建私有区块链的平台或组织。
使用区块链,您可以构建公共和私有区块链,而使用Hyperledger,您只能构建私有区块链。
区块链分为公共区块链、私有区块链和联盟区块链,Hyperledger是一种私有区块链技术,可以访问区块链数据,并且仅限于预定义的用户、配置和编程。
区块链可用于商业、政府、医疗保健等多个领域,而Hyperledger主要用于基于企业的解决方案。无论我们在哪里谈论公共区块链,它都指的是区块链在互联网上的使用,而基于Hyperledger的区块链解决方案是在组织内的内部网上使用的解决方案。
2.你如何向不了解区块链技术的人解释它?
区块链技术是一种分布式账本,它以不可变记录或不可修改记录(称为块)的形式存储交易细节,这些记录使用加密技术进行保护。
让我们考虑一个学校的例子,其中区块链类似于学生的数字成绩单。比如说,每个块都包含一个学生记录,该记录具有输入记录时的标签(说明日期和时间)。教师和学生都不能修改该块的详细信息或成绩单的记录。此外,教师拥有一个允许他/她制作新记录的私钥,学生拥有一个允许他随时查看和访问成绩单的公钥。所以基本上,老师拥有更新记录的权利,而学生只有查看记录的权利。这种方法使数据安全。
3.什么是默克尔树?
默克尔树是一种用于验证区块的数据结构。它采用包含每个块的加密哈希的二叉树的形式。Merkle树的结构类似于二叉树,其中每个叶节点是事务数据块的哈希,每个非叶节点是其叶节点的哈希。默克尔根或哈希根是所有交易哈希的最终哈希根。它包含所有非叶节点下的所有事务。
4.区块链技术中的区块是什么意思?
区块链是一个分布式数据库,由称为块的不可变记录组成,使用密码学进行保护。请参阅视频以查看块的各种属性。
有一个先前的散列、交易细节、随机数和目标散列值。块就像交易的记录。每次验证一个块时,它都会按时间顺序记录在主区块链中。数据一经录入,不可修改。
5.区块链分布式账本与传统账本有何不同?
与传统分类帐相比,区块链分布式分类帐具有高度透明性。
区块链分布式账本是不可逆的。在分布式账本上注册的信息不能修改,而在传统账本上是可逆的。
分布式账本更安全。它使用加密技术,每笔交易都经过哈希处理和记录,而在传统分类帐中,安全性可能会受到损害。
在分布式账本中,没有中央权威。它是一个分布式系统,参与者有权维护网络的健全性并负责验证交易。传统账本基于集中控制的概念,控制所有交易。
在分布式账本中,身份是未知且隐藏的,而在传统账本中,所有参与者的身份必须在交易发生之前就知道。
在分布式账本中,没有单点故障,因为数据是分布式的,信息在多个节点之间共享。如果一个节点发生故障,其他节点将携带相同的信息副本。相比之下,传统分类账存在单点故障。如果单个系统崩溃,整个网络就会陷入停顿。
在分布式账本中,无法进行数据修改或更改,但对于传统账本来说,这是可能的。
在分布式账本中,验证由网络中的参与者完成,而在传统账本中,验证由中心化机构完成。
账本的副本在分布式账本中的参与者之间共享,而在传统的账本中,单个副本保存在一个集中的位置。它不在参与者之间共享。
6.如何识别区块?
每个块由四个字段组成-
前一个区块的哈希值(从而链接到区块链中)
它包含几个交易数据的详细信息
它有一个称为nonce的值。nonce是一个随机值,用于改变散列值以生成小于目标的散列值
块本身的哈希。它是区块的数字签名和用于识别区块的字母数字值
哈希地址是区块的唯一标识。它是一个包含字母和数字的64个字符的十六进制值。它是通过使用SHA-算法获得的。
请参阅视频以了解块的结构。前一个区块的哈希、交易数据和随机数合并了区块的头部。它们一起通过一个散列函数,然后生成散列值。
7.什么是密码学?它在区块链中的作用是什么?
区块链使用密码学来保护用户的身份,并使用散列函数确保交易安全完成。
密码学使用公钥和私钥来加密和解密数据。在区块链网络中,公钥可以与所有比特币用户共享,但私钥(就像密码一样)对用户保密。
区块链使用安全的SHA-,并为每个输入提供唯一的哈希输出。该算法的基本特征是无论您传递什么输入,它都会为您提供64个字符的标准字母数字输出。它是一种单向函数,您可以从中从输入中导出加密值,但反之则不行。
8.区块链有哪些不同类型?
区块链分为三种不同类型——公共区块链、私有区块链和联盟区块链。
公共区块链分类账对互联网上的所有用户都是可见的,任何用户都可以验证并将交易块添加到区块链。例如,比特币和以太坊。
互联网上的用户可以看到私有区块链分类帐,但只有组织中的特定用户才能验证和添加交易。这是一个许可的区块链,虽然信息是公开的,但信息的控制者在组织内部并且是预先确定的。例如,块堆栈。
在联盟区块链中,共识过程仅由特定节点控制。但是,联盟区块链中的所有参与者都可以看到账本。例如,波纹。
9.当你尝试部署一个包含多个合约的文件时会发生什么?
在区块链中,部署一个包含多个合约的文件是不可能的。编译器仅部署上传文件中的最后一个合约,其余合约被忽略。
10.什么是创世区块?
创世块是区块链中的第一个块,也称为块0
在区块链中,它是唯一不引用其前一个区块的区块。
它定义了区块链的参数,例如,
难度级别,
共识机制等挖掘区块
区块链面试问题-中级
11、哈希(Blocksignature)是如何产生的?
生成区块签名的过程包括:
通过单向哈希函数(即SHA-)传递交易详情。
使用用户的私钥通过签名算法(如ECDSA)运行输出值。
按照这些步骤,加密的散列以及其他信息(例如散列算法)称为数字签名。
12.列出一些广泛使用的密码算法。
以下是一些流行的算法:
沙-
RSA(Rivest-Shamir-Adleman)
三重DES
Ethash
河豚
13.什么是智能合约并列出了它的一些应用?
智能合约是自动执行的合约,其中包含对等方之间协议的条款和条件
一些应用是:
运输:使用智能合约可以轻松跟踪货物运输
保护受版权保护的内容:智能合约可以保护音乐或书籍等所有权
保险:智能合约可以识别虚假索赔并防止伪造
雇佣合同:智能合同有助于促进工资支付
14.什么是以太坊网络,你熟悉多少个以太坊网络?
以太坊是一个基于区块链的分布式计算平台,具有智能合约功能,使用户能够创建和部署他们的去中心化应用程序
以太坊中有三种类型的网络:
Livenetwork(主网)——智能合约部署在主网上
测试网络(如Ropsten、Kovan、Rinkeby)-允许用户在将其部署到主网络之前免费运行他们的智能合约
专用网络-是那些未连接到主网络的网络。它们在组织内部运行,但具有以太坊网络的功能。
15.节点在哪里运行智能合约代码?
节点在以太坊虚拟机(EVM)上运行智能合约代码。它是一个虚拟机,旨在作为基于以太坊的智能合约的运行时环境运行。
EVM在沙盒环境中运行(与主网络隔离)。这是一个完美的测试环境。
您可以下载EVM,以隔离的方式在本地运行您的智能合约,一旦您对其进行测试和验证,您就可以将其部署在主网络上。
16.什么是Dapp,它与普通应用程序有何不同?
应用程序:
Dapp是使用智能合约部署的去中心化应用程序
Dapp有它的后端代码(智能合约),它运行在去中心化的点对点网络上
过程:
前端
智能合约(后端代码)
区块链(P2P合约)
正常应用:
普通应用程序有一个在集中式服务器上运行的后端代码
它是托管在中央服务器上的计算机软件应用程序
过程:
前端
API
数据库(在服务器上运行)
17.列举一些用于开发区块链应用程序的领先开源平台。
以太坊是构建基于区块链的应用程序的流行平台之一
Eris用于构建基于企业的解决方案
其他一些广泛使用的用于构建区块链的平台包括Hyperledger、Multichain、Openchain。
18.您必须在Solidity文件中指定的第一件事是什么?
有必要在代码开头指定Solidity的版本号,因为它消除了与另一个版本编译时可能出现的不兼容错误。这是一个强制性条款,必须在您编写的任何Solidity代码的顶部。您还需要提及代码的正确版本号。
19.比特币和以太坊有什么区别?
20.什么是nonce,它在挖矿中是如何使用的?
在区块链中,挖矿是一个通过解决称为工作证明的难题来验证交易的过程。现在,工作量证明是确定数字(随机数)以及加密哈希算法以产生低于预定义目标的哈希值的过程。nonce是一个随机值,用于改变hash的值,使最终的hash值满足hash条件。
区块链面试问题-专家级
21.列出区块链项目实施所涉及的步骤。
需求识别:
确定问题和目标
确定最合适的共识机制
确定最合适的平台
考虑实施和部署成本
策划阶段
在此阶段,个人评估所有要求并决定实施合适的区块链平台。
项目的开发和实施
设计架构
设计用户界面
构建API
控制和监控项目
应用概念证明(POC)
识别和修复问题
22.解释一个使用区块链的真实用例。
在供应链管理中,智能合约为多个供应链合作伙伴共享的交易提供永久的透明度和验证。在我们的视频中查看我们使用区块链进行供应链管理的图表展示。
23.列出并解释EVM内存的各个部分。
EVM的内存分为三种:
贮存:
存储值永久存储在区块链网络上
它非常昂贵
记忆:
内存是临时可修改的存储
它只能在合约执行期间访问。一旦执行完成,它的数据就会丢失
堆:
堆栈是临时且不可修改的存储。
在这里,当执行完成时,内容就丢失了。
24.如果执行智能合约的成本超过指定的gas,会发生什么?
最初,您的交易将被执行,但如果执行智能合约的成本超过指定的gas,那么矿工将停止验证您的合约。区块链会将交易记录为失败,用户也不会获得退款。
25.交易中的gas使用量取决于什么,交易费用如何计算?
Gas使用量取决于智能合约中使用的存储量和指令集(代码)。交易费用以Ether计算,如下所示:
以太币=Tx费用=Gas限制*Gas价格
26.什么是叉子?分叉有哪些类型?
简单来说,更新加密货币协议或代码称为分叉。分叉意味着区块链分为两个分支。当网络的参与者无法就共识算法和验证交易的新规则达成一致时,就会发生这种情况。
分叉分为三种类型:
硬分叉
软叉
意外分叉
27.区分工作量证明与权益证明。
工作证明(PoW):
在区块链中,PoW是解决称为挖掘的复杂数学难题的过程。在这里,挖掘区块的概率取决于矿工完成的计算工作量。矿工花费大量计算能力(使用硬件)来解决密码难题。
股权证明(PoS):
PoS是PoW的替代方案,其中区块链旨在实现分布式共识。验证区块的概率取决于您拥有的代币数量。你拥有的代币越多,验证区块的机会就越大。它是作为一种解决方案创建的,以尽量减少在采矿中花费的昂贵资源的使用。
28.什么是51%攻击?
在区块链中,51%攻击是指个人或一群人控制大部分挖矿算力(哈希率)的漏洞。这允许攻击者阻止新交易被确认。此外,他们可以双花硬币。在51%攻击中,较小的加密货币受到攻击。
29.Solidity中的函数修饰符是什么?提到最广泛使用的修饰符。
在Solidity中,函数修饰符用于轻松修改智能合约函数的行为。简单来说,它可以构建附加功能或对智能合约的功能施加限制。在solidity中使用最广泛的函数修饰符是:
View,它们是不能修改智能合约状态的函数。它们是只读函数。请参阅我们的视频以查看查看功能的示例
Pure,这些函数既不读取也不写入智能合约的状态。它们返回由其输入值确定的相同结果。请参阅我们的视频以查看Pure函数的示例
30.用Solidity编程语言编写众售智能合约代码。
请参阅我们的视频以了解如何编写Crowd函数。
结论
有了这些区块链面试问题和答案,我们希望你能够自信地完成你的区块链面试。但是,如果您想深入了解我们的区块链教程和我们的区块链认证培训课程,这将帮助您获得全面的技术专业知识。