我们学习计算机时曾经有这么一个定义:程序=数据结构+算法,对于一个区块链,我认为从技术方面看与程序的定义类似,核心一个是共识算法,一个是核心数据结构,这两点直接决定了这条区块链工作运行原理。比特币的共识算法,在这一篇《哈希函数与比特币共识算法PoW》中已经讲述了其原理,这一篇主要讲述比特币核心数据结构 ...
哈希指针 Hash Pointers 对于一个结构体而言,指向它的指针存储的是它在内存中的首地址 而指向它的哈希指针,不仅保存这它的首地址,还保存着该结构体内容的哈希值。通过哈希指针,不仅可以找到该结构体,还能查验该结构内容是否被篡改过。 区块链 比特币中存储数据用的是区块链。所谓区块链,可以理解为链表。不过与链表不同的是,区块链使用哈希指针代替了普通指针。下图为区块链简单结构: 哈希指针包含在该 ...
2020-08-28 10:20 0 539 推荐指数:
我们学习计算机时曾经有这么一个定义:程序=数据结构+算法,对于一个区块链,我认为从技术方面看与程序的定义类似,核心一个是共识算法,一个是核心数据结构,这两点直接决定了这条区块链工作运行原理。比特币的共识算法,在这一篇《哈希函数与比特币共识算法PoW》中已经讲述了其原理,这一篇主要讲述比特币核心数据结构 ...
在比特币钱包里执行命令: getblock 000000000000000051d2e759c63a26e247f185ecb7926ed7a6624bc31c2a717b true 即可得到哈希值 ...
比特币的区块数据里包含了比特币链上的核心信息,包括比特币如何交易,区块扩容等问题。 比特币从诞生到现在,每10分钟诞生一个区块,访问 https://blockchain.info/ 查看最近的区块信息,可以看到当前的区块大小已经接近或超过中本聪设置的1MB容量。 一、区块链数据结构 ...
数据目录是存放比特币数据文件的位置,包含区块数据和钱包数据等相关文件。 默认位置 默认位置与操作系统相关,下面列出 3 种常用操作系统下比特币数据目录的默认存放位置: macOSX ~/Library/Application Support/Bitcoin Unix/Linux ...
由于哈希值的伪随机特性,要寻找4个前导0的哈希值,预期大概要进行216 次尝试,这个数学期望的计算次数,就是所要求的“工作量”。要求的前导0的个数越多,代表难度越大。 难度值是比特币系统中的结点在生成区块时的重要参考指标,它决定了节点大约需要经过多少次哈希运算才能产生一个合法的区块 ...
比特币又称加密货币,但其实加密货币并没有加密:区块链中的所有信息都是公开的,包括交易的内容、交易的金额以及交易账户的地址。之所以称之为加密货币,主要是因为交易的双方在不与真实世界发生关联的情况下,双方的身份是无法获知的。 比特币中主要用到了密码学中的“哈希”和“签名”。 密码学中用的哈希被称作 ...
我们知道对于比特币系统,所有的比特币用户都维护着一条相同的区块链。让这么多人不断地更新区块链的数据,如何才能维持共识与统一呢? 一、 区块的创建 区块中包含区块头和区块体,我们的矿工在开始挖矿时,就将需要写入区块体的交易打包在区块内,随后用不同的nonce去尝试,以获取满足记账权的hash值 ...
一般来说,匿名通常跟隐私保护联系在一起。在比特币是基于交易的区块链,系统中没有用户的概念,不要求用户使用真名,可以用公钥产生地址,所以比特币具有一定的匿名性。 但比特币中的交易记录在区块链上,区块链是公开的。虽然使用者可以生成任意多的地址来隐藏自己,但由于所有的交易信息的都是公开的,仍可以通过分 ...