0%

分叉

fork:原来是一条链,现在是两条链形成了分叉。有两种情况:

①如果同时有两个结点发布了区块,这时候就会形成分叉:state fork,由于对比特币这个区块链当前的区块状态有意见分歧而导致的分叉,forking attack也属于state fork,只不过分叉攻击这个意见分歧是故意造成的,所以有时候我们管这个叫deliberate fork。

②比特币的协议发生了改变,要修改比特币的协议,需要软件升级,在一个去中心化的系统里,在升级软件的时候,没有办法保证所有的结点同时都升级软件,我们假设大部分结点升级了软件,少数结点因为种种原因没有升级,有可能还没有来的及升级,也可能是不同意这个协议的修改,这种分叉叫做protocol fork,因为对比特币的协议产生了分歧,因为使用不同的协议造成了分叉。

阅读全文 »

比特币脚本

比特币脚本,十分简单,不像c++,java,有堆栈的概念,比特币脚本是基于栈的脚本语言

下面来看一个具体的交易:

阅读全文 »

初衷

在我学习完了ssm框架,以及跟着B站视频练习了一个尚筹网的项目之后,准备在暑假巩固所学的框架搭建过程,以及业务逻辑、数据库建表、前端页面的知识,本人喜欢打游戏,所以便有了LOL-show这个项目。

如果你想要学习该项目,那么你可以访问我的github!

阅读全文 »

挖矿难度

为什么要调整挖矿难度

调整挖矿难度,就是调整目标空间在整个输出空间中所占的比例

比特币的哈希算法是SHA-256,256位的哈希值,所以输出空间位2^256个可能取值,调整目标空间占输出空间的比例,通俗的说,就是这个哈希值前面要多少个零,合法的哈希,算出来,前面至少要有70个零,但是严格的话还是按照定义来计算哈希值。

阅读全文 »

网络

新发布的区块,新发布的交易,再区块链中是怎么传播的?

阅读全文 »

实现

transaction-based ledger

BTC(比特币):基于交易的账本模式(transaction-based ledger),每个区块记录交易信息,但是系统中没有统一的记录,比如需要知道某个账户有多少钱,这个还需要交易记录来推算

比特币的全节点要维护一个UTXO的数据结构

阅读全文 »

协议

1.需要解决的问题

举个例子,央行可以发行数字货币,每张数字货币上都有央行的私钥的签名

阅读全文 »

比特币中的数据结构

1.区块链

这里要用到一个重要的概念叫做哈希指针。

hash pointers,哈希指针,除了要保存这个结构体的地址之外,还要保存这个结构的的哈希值(不仅可以知道这个结构体在内存中的位置,还可以知道这个结构体的内容有没有被篡改)

区块链相比较于普通的链表有何区别?

阅读全文 »