区块链基础理论模拟试卷四

Posted Baicon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链基础理论模拟试卷四相关的知识,希望对你有一定的参考价值。

1、扩容是为了解决什么问题 正确答案:D

A、网络拥堵,信息传输慢

B、电脑内存有限

C、网速太慢,需要加大区块的容量

D、比特币网络拥堵,交易确认慢

2、_______是指任何人都可以随时进入到系统中读取数据、发送可确认交易、竞争记账的区块链。需要用代币激励参与者竞争记账的是_______。在______中,公共的可读性并非是必须的。 正确答案:C

A、公有链;联盟链;私有链

B、私有链;联盟链;公有链

C、公有链;公有链;私有链

D、私有链;私有链;公有链

3、( )年加文创建了非盈利性的比特币基金会? 正确答案:B

A、2009年

B、2012年

C、2013年

D、2008年

4、去中心化的三个优点不包括? 正确答案:A

A、防篡改性

B、容错性

C、抗攻击性

D、抗勾结性

5、比特币披萨节是哪一天? 正确答案:C

A、6月18日

B、5月18日

C、5月22日

D、4月22日

6、供应商风险防范对策不包括的是? 正确答案:D

A、严密合同质量条款,防止买方欺诈

B、全面切实地履行合同

C、鼓励保险公司开展“无追索权应收账款转让”的保险业务,建立健全有关保理的法律法规

D、品质条款与检验条款

7、不属于金融监控的行业是? 正确答案:C

A、证券行业

B、银行业

C、商贸业

D、保险行业

8、()是出票银行签发的,由其在见票时按照实际结算金额无条件支付给收款人或持票人的票据。 正确答案:A

A、 银行汇票

B、商业汇票

C、托收承付

D、支票

9、下列各项中,属于定期的反应企业财务状况,经营成果和现金流量的总结性书面文件是? 正确答案:C

A、利润表

B、资产负债表

C、会计报表

D、财务会计报告

10、税务登记的主要内容,主要通过纳税人填写()来体现 正确答案:C

A、财务报表

B、纳税申报表

C、税务登记表

D、完税凭证

11、与汇示结算相比,托收结算方式的特点不包括? 正确答案:A

A、安全性较低

B、手续复杂

C、对进口商有利

D、费用相对较高

12、DBFT的名称是? 正确答案:D

A、委托权益证明机制

B、权益证明机制

C、工作量证明机制

D、授权拜占庭容错算法

13、大数据在金融应用领域中综合价值最高是()? 正确答案:A

A、风控

B、精准营销

C、精细化运营

D、产品创新

14、拜占庭将军问题解决了那些问题? 正确答案:B

A、分布式通讯

B、共识机制

C、内容加密

D、领土纠纷

15、以下说法错误的哪一项? 正确答案:D

A、大数据是一种思维方式

B、大数据不仅仅是讲数据的体量大

C、大数据会带来机器智能

D、大数据的英文名称是large data

16、下面关于Token的说法错误的是 正确答案:D

A、在计算机中,“令牌”一词有两个意思:对用户进行授权的小工具,或是认证用户身份的固定字符串

B、在加密货币中令牌是数字价值的一个单位,是内置可编程潜力的代币

C、加密货币中,令牌除了具备经济属性外,同时也可用以构建软件,并可能通过技术实现集代币、身份识别、荣誉标识、确权工具、资产量化指标、系统通行证和系统保护于一身的工具

D、令牌主要分为:支付令牌、功能令牌、数字令牌

17、关于大数据的概念说法正确的是()? 正确答案:B

A、大数据没有线下大数据与线上大数据的区分

B、大数据多指线上大数据是因为以互联网为载体产生的数据,在当时更容易被采集和存储

C、线下大数据是在虚拟世界的互联网行为范围之内,现实场景行为的数字化

D、线上和线下的大数据是以技术和应用作为区分的

18、关于大数据征信和传统征信的说法,正确的是() 正确答案:A

A、大数据征信的数据来源更加广泛

B、大数据征信的数据主要是银行内部数据

C、央行征信就是大数据征信

D、第三方征信和央行征信的差别不大

19、一切皆可连,任何数据之间逻辑上都有可能存在联系,这体现了大数据思维纬度中的() 正确答案:B

A、定量思维

B、相关思维

C、因果思维

D、实验思维

20、汇款的业务流程正确的是? 正确答案:A

A、委托-指示-支付

B、支付-委托-指示

C、指示-委托-支付

D、支付-指示-委托

21、美国的在几几年发布了《银行保密法》? 正确答案:A

A、2013年

B、2016年

C、2018年

D、2015年

22、下面哪个是正确的商业保理公司业务流程 正确答案:A

A、接受咨询—业务接洽—审验资料—评估购货方及账款状况—内部审批—签约保理合同—放款—监管企业及账款情况—账款催收—回款

B、接受咨询—业务接洽—审验资料—评估购货方及账款状况—内部审批—签约保理合同—放款—监管企业及账款情况—回款

C、接受咨询—业务接洽—评估购货方及账款状况—内部审批—签约保理合同—放款—监管企业及账款情况—账款催收—回款

D、接受咨询—业务接洽—审验资料—内部审批—签约保理合同—放款—监管企业及账款情况—账款催收—回款

23、构建风控模型时,用于评分卡变量筛选的指标是 正确答案:B

A、KS值

B、IV值

C、AUC值

D、WOE

24、票据保理对保理商的积极作用不包括 正确答案:D

A、消除传统保理业务中存在的诸多抗辩权

B、大企业的商业汇票变现能力强

C、票据可锁定具体到期日

D、票据保理能实现零成本融资模式

25、信用证的当事人不包括 正确答案:D

A、申请人

B、开证银行

C、受益人

D、服务人

多选

1、国际贸易金融中,区块链的解决方案的优势在于()。 正确答案:ABCD

A、节省中间人的费用

B、减少对手方风险

C、订单细则实时查询

D、实现监管的透明化

2、下列哪个选项的说法是正确的? 正确答案:ABC

A、央行数字货币代表了主权国家在区块链方面的探索

B、联盟链代表了大公司在区块链的探索

C、公有链代表了普通群众在区块链的探索

D、私有链代表了个人在区块链的探索

答案解析:私有链代表了组织内部在区块链的探索

3、区块链即由一个个区块组成的链。每个区块分为() 正确答案:AB

A、区块头    B、区块体    C、区块链     D、账本

4、2020年,金融科技在疫情大考下得到快速发展和应用,以下哪些技术在金融科技中应用广泛? 正确答案:ABCD

A、区块链    B、大数据    C、云计算    D、人工智能

5、私有链的特点有哪些? 正确答案:ABC

A、交易速度快    B、隐私性更强     C、交易成本大幅降低,甚至为零     D、需要耗费时间

6、以下选项中不属于节点的是() 正确答案:BC

A、客户端    B、组织    C、账本    D、排序服务

7、比特币区块链中的区块头大小为80字节,下面哪些是区块头包含的内容? 正确答案:ABDE

A、上一区块头的哈希值   

B、时间戳

C、交易哈希

D、挖矿难度

E、区块链交易的Merkle树的根哈希

8、区块链在供应链多方协作场景中的应用优势是什么? 正确答案:ABCD

A、动态管理零部件的生产

B、能够高效实时更新和较少人为干预

C、提高各供应商的利润

D、提高生产厂商的进货量

9、下面属于哈希算法的是? 正确答案:ABC

A、MD5      B、SHA1     C、SHA2      D、ECC

10、基于区块链的农业保险优势在于?( ) 正确答案:BCD

A、提高保险企业利润

B、“时间戳”功能,使数据真实可用

C、扩大农业保险覆盖范围

D、智能合约,系统自动赔付

判断

1、智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议 正确答案:对

2、以太坊是一种开源的、非图灵完备的、智能合约公有区块链 正确答案:错

3、区块链技术无法应用到融资租赁市场。 正确答案:错

4、在贸易金融方面,区块链还没有实际的应用案例 正确答案:错

5、P2P 存储是一种基于中心化控制机制的存储技术 正确答案:错

6、区块链的供应链金融能够做到信任传递到各级供应商,通过信息上链,全链条贯通,打通信息孤岛,使中小企业有可能获得更低成本的资金。 正确答案:对

7、区块链 2.0 是以以太坊、瑞波币为代表的智能合约或理解为“可编程金融”,是对金融领域的使用场景和流程进行梳理、优化的应用。 正确答案:对

8、区块链2.0是可编程金融,是经济、市场和金融领域的区块链应用。 正确答案:对

9、DPOS股份授权证明机制是依据当时POW、POS的不足而改进的共识算法,它的目的是为了提高数据的安全性。 正确答案:错

10、在中国,公开的ICO都是违法的。 正确答案:对

基于指针数组实现简单的区块链 day

一、比特币的基础知识

1.1 比特币

一个软件系统,每个人都可以下载使用,使用者之间不断进行交易,产生数据

1.2 区块

比特币系统使用者之间交易的数据以数据块的形式存储,最终存储在数据库中,这个包含交易数据的数据块我们称之为区块。

1.3 区块链

保存上述所有区块的数据库我们称之为区块链。

1.4 记账

将系统中的交易数据写到数据库中我们称之为记账

1. 5 钱包

  • 创建私钥公钥,保存公钥,相当于钱包,可以存放多个地址
  • 地址类似银行卡,私钥类似银行卡密码
  • 钱包会便利账本的交易信息,来得知有没有钱
  • 一个地址对应一个私钥

1.6 节点

每一个运行区块链挖矿软件的人都会便成为一个区块链网络的节点。

1.7 挖矿

节点之间竞争记账的权利就称之为挖矿。

1.8出块时间

大约10分钟出一个比特币

1.9 出块奖励

1.10 比特币总量

1.11 区块容量

1M大约容纳4000笔交易

1.12 每秒成交量

1.13 单位

sat(聪)

二、其他基础知识

2.1 挖矿(工作量证明)

sha256(区块数据+随机数据)<目标的哈希值

2.2 go演示挖矿

import (
	"crypto/sha256"
	"fmt"
)

func main(){
	data := "helloWord"
	for i:=0; i < 100; i++{
		res := sha256.Sum256([]byte(data + string(i)))
		fmt.Printf("%x", res[:])
		fmt.Println()
	}
}

2.3 地址生成规则

私钥经过椭圆曲线相乘生成公钥,在通过哈希算法得到比特币地址。

2.4 base64

0-9,a-z,A-Z,+,-

2.5 交易

  • 挖矿交易
  • 普通交易

三、模拟简单的区块链

3.1 创建简单的区块


type Block struct{
	PreBlockHash []byte
	Hash []byte
	Data []byte
}
//创建block
func createBlock(preBlockHash []byte, data string) *Block{
	block := Block{
		PreBlockHash: preBlockHash,
		Data: []byte(data),
		Hash: []byte{},
	}
	block.SetHash()
	return &block
}

// SetHash 计算当前区块的hash
func (block *Block)SetHash(){
	//...的作用是把data数组打散,一个个装进preBlockHash切片中
     blockInfo := append(block.PreBlockHash,block.Data...)
	 //hash是一个字节数组
	 Hash := sha256.Sum256(blockInfo)
	 //block.Hash作为Hash的切片
	 block.Hash = Hash[:]
}
func main() {
	//创建一个区块
	var block *Block = createBlock([]byte{}, "第一个区块")
	fmt.Printf("上一区块的hash值%x:",block.PreBlockHash)
	fmt.Println()
	fmt.Printf("当前区块的hash值%x:",block.Hash)
	fmt.Println()
	fmt.Println("当前区块的数据",string(block.Data))

}

结果:
前面区块的hash值 []
当前区块的hash值328fffe02f9e57c15508352cb145aa68abcf83da69a059e975d2171b1e7f8f92
当前区块的数据 第一个区块

3.2 创建简单的区块链

  • 本质上是用一个区块指针类型的数组构成的区块链
// BlockChain 区块链结构体
//本质上是区块指针类型的数组
type BlockChain struct {
	blockChain []*Block
}
// CreateBlockChain 创建带有一个创世块的区块链
func CreateBlockChain() *BlockChain{
	blockChain := BlockChain{
		blockChain: []*Block{GenesisBlock()},
	}
	return &blockChain
}

3.3 创建创世块

// GenesisBlock 创建创世块,即第一个区块
func GenesisBlock() *Block{
	genesisBlock := CreateBlock([]byte{},"第一个创世块,牛逼")
	return genesisBlock
}

3.4 向区块链中添加区块

// AddBlock 当前区块的前一区块哈希值字段从区块链中获取
func (bc *BlockChain)AddBlock(data string){
	preHash := bc.blockChain[len(bc.blockChain)-1].Hash
	block := CreateBlock(preHash, data)
	bc.blockChain = append(bc.blockChain, block)
}

四、模拟复杂的区块链

4.1 将unit64转换成byte类型

// Uint64ConvertByte 将uint64类型转换为[]byte{}类型
func Uint64ConvertByte(data uint64)[]byte{
	var buffer bytes.Buffer
	err := binary.Write(&buffer, binary.BigEndian,data)
	if err != nil {
		log.Panicln(err)
	}
	return buffer.Bytes()
}

4.2 bytes.Join()

  • 将二维byte数组连接成一个一维byte数组
func (block *Block)SetHash(){
	var blockInfo []byte
	//...的作用是把data数组打散,一个个装进preBlockHash切片中
	//blockInfo = append(blockInfo, Uint64ConvertByte(block.Version)...)
	//blockInfo = append(blockInfo, block.PreBlockHash...)
	//blockInfo = append(blockInfo, block.MerkelRoot...)
	//blockInfo = append(blockInfo, Uint64ConvertByte(block.TimeStamp)...)
	//blockInfo = append(blockInfo, Uint64ConvertByte(block.Difficulty)...)
	//blockInfo = append(blockInfo, Uint64ConvertByte(block.Nonce)...)
	//blockInfo = append(blockInfo, block.Data...)
	// 创建一个二维数组
	tem := [][]byte{
		Uint64ConvertByte(block.Version),
		block.PreBlockHash,
		block.MerkelRoot,
		Uint64ConvertByte(block.TimeStamp),
		Uint64ConvertByte(block.Difficulty),
		Uint64ConvertByte(block.Nonce),
		block.Data,
	}
	//将二维byte数组连接成一维byte数组
	bytes.Join(tem, []byte{})
	//hash是一个字节数组
	Hash := sha256.Sum256(blockInfo)
	//block.Hash作为Hash的切片
	block.Hash = Hash[:]
}

4.3 挖矿演示

type ProofOfWork struct {
	block *Block
	target *big.Int
}
//CreatePOW 创建ProofOfWork
func CreatePOW(block *Block) *ProofOfWork{
	pow := ProofOfWork{
		block: block,
	}
	target :=  "0000100000000000000000000000000000000000000000000000000000000000"
	bigNum := big.Int{}
	//res是指针类型的
	res, _ := bigNum.SetString(target, 16)
	pow.target = res
    return &pow
}
//Run 返回一个Hash值和随机数
func (pow *ProofOfWork) Run()([]byte, uint64){
	tmpBigInt := &big.Int{}
	//与给定的目标哈希值进行比较,小于则挖矿成功
	var nonce uint64 = 0
	var hash [32]byte
	for{
		block := pow.block
		tem := [][]byte{
			Uint64ConvertByte(block.Version),
			block.PreBlockHash,
			block.MerkelRoot,
			Uint64ConvertByte(block.TimeStamp),
			Uint64ConvertByte(block.Difficulty),
			Uint64ConvertByte(nonce),
			block.Data,
		}
		// blockInfo 拼装好的数据
		blockInfo := bytes.Join(tem, []byte(""))
		hash = sha256.Sum256(blockInfo)
		tmpBigInt.SetBytes(hash[:])
		res := tmpBigInt.Cmp(pow.target)
		if res == -1{
			break
		}
		nonce ++
	}
   return hash[:],nonce
}

五、git命令

5.1 git pull

将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并。

git pull origin master:brantest

5.2 git push

git push 命用于从将本地的分支版本上传到远程并合并。

命令格式如下:

git push <远程主机名> <本地分支名>:<远程分支名>

如果本地分支名与远程分支名相同,则可以省略冒号:

git push <远程主机名> <本地分支名>

5.3 git push --set-upstream origin v2

  • 设置本地分支追踪远程分支

以上是关于区块链基础理论模拟试卷四的主要内容,如果未能解决你的问题,请参考以下文章

宇链科技斩获一等奖!第四届中国区块链开发大赛开幕

第三届中国区块链技术与应用大赛应用类决赛项目简介|BIOS新一代Blockchain分布式CDN网络

区块链,工作证明(POW)代码+原理 golang版剖析

区块链正在成为新职业风口

五分钟看明白区块链,工作证明(POW)代码+原理 golang版剖析

腾讯云TBaaS位居中国区块链服务市场第一