
区块链
maerdym
这个作者很懒,什么都没留下…
展开
-
(一) 区块链数据结构-区块链
区块链是一种单向链式结构,由区块连接而成。第一个区块称为创始区块。除了创始区块外,每个区块中都保留了上一个区块的Hash地址(区块的唯一标识),通过引用上一个区块的Hash地址,区块间形成了链式关系,从而形成了区块链。区块链内区块的数量,称为区块的高度。上一篇:(零) [转载]一个故事告诉你比特币的原理及运作机制下一篇:(二) 区块链数据结构-区块...原创 2018-03-30 10:13:21 · 4901 阅读 · 1 评论 -
(二) 区块链数据结构-区块
区块是区块链的核心单元。区块链由区块互相连接而成。区块区块由区块头和区块体两部分组成。其中区块的大小被限制在1M以内(为了防止资源浪费和DOS攻击),区块头的大小被固定为80个字节。但目前随机比特币的发展,交易数量持续增加,1M的大小能存储的交易数量有限,导致大量的交易积压。因此目前正在考虑扩容方案。区块头区块头中记录了版本号、上一个区块的Hash地址、merkle根、区块创建时间戳、区块的工作量...原创 2018-03-30 10:15:28 · 9758 阅读 · 0 评论 -
(三) 区块链数据结构 – 交易
区块由交易组成。区块体中包含若干项交易数据。交易交易主要包含两类数据:交易输入和交易输出。- 交易输入用来指明钱的来源- 交易输出用来指明钱的去向除了交易输入和交易输出外,交易中还包含版本号和锁定时间。交易数据的存储结构如下:交易对象中的各个字段含义如下:字段大小描述version4个字节明确该笔交易参考的版本规则numInputs1-9个字节交易中包含的输入数量inputs不定长交易中包含的输入...原创 2018-03-30 10:21:29 · 7266 阅读 · 0 评论 -
(四) 区块链数据结构 – 脚本
脚本是交易数据中的核心部分。可用于锁定输出和解锁输入。当向某人支付比特币时,我们要为交易输入设置解锁脚本,向别人证明我们有全力使用该输入,同时我们还需要对交易输出添加锁定脚本,确保只有接收者能解锁该输出。脚本比特币系统专门设计了一套脚本语言,用于完成诸如加锁、解锁的操作(但不限于这些操作)。这套脚本语言是基于堆栈的解释型语言。举个例子,比如脚本:2 3 ADD 5 EQUAL,则该脚本的执行过程如...原创 2018-03-30 10:28:02 · 2156 阅读 · 0 评论 -
(五) 区块链数据结构 – 输入脚本和输出脚本
输入脚本和输出脚本是比特币系统中,最常见的的脚本了。当我们要支付给某个人比特币时,我们需要确保,只有接收者能花费这些比特币。在比特币系统中,会使用输出脚本来锁定交易输出,只有接收者拥有秘钥,当需要花费这笔交易输出时,提供解锁脚本即可。比特币系统中,另一个巧妙的设计时,任何人都可以通过验证解锁脚本是否能打开锁定脚本,来判断这个交易是否合法。而在验证的过程中,支付者只需提供解锁脚本,即可完成验证,无需...原创 2018-04-08 21:09:47 · 2158 阅读 · 0 评论