BC:带你温习并解读《中国区块链技术和应用发展白皮书》—国内外区块链发展现状

BC:带你温习并解读《中国区块链技术和应用发展白皮书》—国内外区块链发展现状

 

 

目录

区块链发展演进路径

2.1.1 技术来源

2.1.2 区块链1.0——数字货币

2.1.3 区块链2.0——智能合约


 

 

 

 

区块链发展演进路径

          区块链技术起源于化名为“中本聪”(Satoshi Nakamoto)的学者在2008年发表的奠基性论文《比特币: 一种点对点电子现金系统》。狭义来讲, 区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数
据的一种全新的分布式基础架构与计算范式。
        目前,区块链技术被很多大型机构称为是彻底改变业务乃至机构运作方式的重大突破性技术。同时,就像云计算、大数据、物联网等新一代信息技术一样,区块链技术并不是单一信息技术,而是依托于现有技术,加以独创性的组合及创新,从而实现以前未实现的功能。

2.1.1 技术来源

1、P2P网络技术是区块链系统连接各对等节点的组网技术

2、非对称加密算法是指使用公私钥对数据存储和传输进行加密和解密。

3、数据库技术涉及计算机技术发展的大半历程,是基础性技术,也是软件业的基石。

4、数字货币(Digital money) 又被称为电子现金(Ecash)或电子货币(Emoney),视为对现实货币的模拟,涉及用户、商家和处于中心化地位的银行或第三方支付机构。

2.1.2 区块链1.0——数字货币

1、以区块为单位的链状数据块结构
2、全网共享账本
3、非对称加密
4、源代码开源

2.1.3 区块链2.0——智能合约

1、智能合约
2、DAPP
3、虚拟机

 

 

 

 

 

 

  • 12
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是使用Go语言实现区块链的基本步骤: 1. 定义区块结构体 ```go type Block struct { Index int Timestamp string Data string PrevHash string Hash string } ``` 2. 创建区块链结构体 ```go type Blockchain struct { chain []*Block } ``` 3. 实现创建区块的方法 ```go func (bc *Blockchain) createBlock(data string) *Block { prevBlock := bc.chain[len(bc.chain)-1] newBlock := &Block{ Index: prevBlock.Index + 1, Timestamp: time.Now().String(), Data: data, PrevHash: prevBlock.Hash, } newBlock.Hash = calculateHash(newBlock) bc.chain = append(bc.chain, newBlock) return newBlock } ``` 4. 实现计算区块哈希值的方法 ```go func calculateHash(block *Block) string { record := strconv.Itoa(block.Index) + block.Timestamp + block.Data + block.PrevHash h := sha256.New() h.Write([]byte(record)) hashed := h.Sum(nil) return hex.EncodeToString(hashed) } ``` 5. 实现验证区块链的方法 ```go func (bc *Blockchain) validateChain() bool { for i := 1; i < len(bc.chain); i++ { currentBlock := bc.chain[i] prevBlock := bc.chain[i-1] if currentBlock.Hash != calculateHash(currentBlock) { return false } if currentBlock.PrevHash != prevBlock.Hash { return false } } return true } ``` 6. 创建区块链实例并添加创世块 ```go func main() { bc := Blockchain{[]*Block{createGenesisBlock()}} bc.createBlock("Data for block 2") bc.createBlock("Data for block 3") fmt.Println(bc.validateChain()) } ``` 以上是使用Go语言实现区块链的基本步骤,其中包括定义区块结构体、创建区块链结构体、实现创建区块的方法、实现计算区块哈希值的方法、实现验证区块链的方法以及创建区块链实例并添加创世块。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个处女座的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值