清华-泰岳区块链 “区块链工程师大讲堂”第一期第四讲回顾------区块中的数据与状态

在这里插入图片描述

2020年7月25日,“区块链工程师大讲堂”第一期第四讲在腾讯会议上成功举办。“区块链工程师大讲堂”是由哈维社区与清华大学互联网产业研究院携手举办的一个系列分享会。自从去年,我国把区块链纳入为未来的基础设施之一,区块链一直都是火热的话题之一,但是具体什么是区块链,区块链又能给我们带来什么,还是有很多人无法回答出来。区块链工程师大讲堂系列分享会意在提供一个知识分享的平台,邀请行业一线专家,分享区块链相关的知识,让大家去更加地了解区块链。

本期分享会嘉宾是何磊老师,他是区块链共识算法和EVM研究专家,多年区块链底层工程经验。他分享的主题是“区块中的数据与状态”,他用比特币作为例子,完整地剖析了比特币交易中,所有数据和状态的变化。下面是他分享的精彩回顾,以下:

首先何磊老师介绍了在比特币的链式结构,比特币是一个由很多区块组成了一个链,一个完整的比特币区块结构包含两个部分:区块头和区块体。区块头包含version, prevBlockHash, merkelRootHash, nonce等部分;区块链包含交易的信息等。

随后,他介绍了比特币中账户的组成。每一个比特币账户都有一个公钥,每一个公钥都对应一个特定的比特币地址。每个公钥包含X和Y的integer,各在计算机中占32个比特,共计64个比特。这64个比特前面再加上一个数值1,所有数值再进行加密计算:

repemd160(sha256{1+32bytes+32bytes})

经过运算之后,会得出一个20比特的算符,前面加一个数值1之后,再次进行加密运算:

sha256(sha256{1+20bytes})

得出这个20位比特的算符之后,这个算符加上一个加密运算就就会得出最终的比特币地址,计算方法如下:

1+20bytes+sha256(sha256{1+20bytes})

=1+20bytes+32bytes

=1个34至42位的比特币地址

由于特定的sha256算法,是无法把运行过加密计算的数字串反计算为原来初始的数值。比特币系统中,每一轮交易之后,都会有数据状态的变化,从State打包到建议里,最后得到一个State’。整个数据的存储主要采用了Merkel Tree的架构,Merkel Tree可以是二叉树,也可以是多叉树;叶子节点存储数据的值;非叶子节点存储子节点的hash。叶子节点用来存储(key, value)的值根root易于验证状态

最后何磊老师介绍了关于智能合约的相关知识。可订之的虚拟机主要有EVM何WASM,主合的合约编程语言有Solidity何Vyper。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值