区块链是由多个区块组成,每个区块就是有区块头和区块链组成,每个区块头包含了区块的元信息(区块编号,上一区块的哈希值,本区块的哈希值,挖矿随机数(旷工计算出算法难度的答案,最快得到答案的旷工生成一个新的区块,获取奖励并广播到所有节点进行更新,如此就完成了一个区块的交易),难度,时间戳);区块体主要包含的是交易信息,第一个交易是特殊交易,是奖励给挖矿节点的酬劳,这也是唯一一种产生比特币的方式,其余的交易都是转账信息,比特币从一个地址支付给另外一个地址,这也是实现比特币价值转移的唯一方式。总结来看,比特币只有发行和转账两种交易,比特币产生以后只能从一个人转账给另外一个人,而不能凭空消失,比特币发行的总量是有限的,一共2100万,因此是一种通缩性货币
1.区块链想象成比特币网络的数据库,这个数据库以文件形式存放在互联网的每个比特币节点上,每个节点都是一份完整的备份
2.这个数据库记录着比特币诞生以来所有比特币转账交易记录
3.这个数据库是一块一块存储的,每一块包含一部分交易记录
4.当发起一笔比特币交易时,只需要把交易信息广播到网络上去,旷工把交易信息记录成一个新的区块链,交易完成
由于比特币总量是2100万,如果用于货币应用于经济上会导致螺旋式通缩导致经济逐步停滞
银行存钱只有银行知道我存了多少钱,比特币相当于每个节点都可以证明我拥有一个比特币。而比特币的归属权是是通过RAS算法(公钥加密私钥解密)来决定的。
现实生活中我们用钥匙打开锁头,我们用密码在ATM上提取现金,那么在比特币系统里,我们通过秘钥来实现比特币的转账,实现价值的转移。更具体来讲,一笔比特币交易会把一定数量的脚本锁定在一个地址,声明拥有这个地址的用户会通过密匙的签名来证明自己拥有这个地址,然后,花费这笔比特币,这笔比特币被花费后并不会消失,会被锁定在其他人的地址上,其他人可以使用同样的方法来花费这笔比特币。
从上面的过程,我们总结了两个动作,锁定与解锁,这和我们平时锁锁头和开锁头是对应的,在比特币系统里是通过锁定脚本和解锁脚本来实现的。
锁定脚本把比特币关联在一个比特币地址上,证明了比特币归属这个地址。
解锁脚本提供证明,证明这个地址归我所有,这个比特币也归我所有,我可以用来支付。
下面我们举一个例子详细说明:
用户Alice在比特币里地址A上拥有10个比特币,Alice与Bob想做一笔交易,Bob把自己家的汽车卖给了Alice,Alice需要向Bob支付10个比特币,Bob的比特币地址是B。
在之前的交易中,Alice拥有的10个比特币被锁定在Alice的比特币地址A上,其来源可能是挖矿所得或者别人转账而来,我们会在后续详细描述如何获得比特币,这里我们只关注证明Alice拥有比特币的交易的锁定脚本。
具体的解锁过程如下:
使用地址A的公匙推导出地址,与地址A对比,如果一致则证明公匙提供正确,进入下一步。
使用地址A的公匙解密签名,如果获得的值与前一区块的哈希散列值一致,则证明解锁成功,可以花费地址上的10个比特币。
关于挖矿:
每10分钟,全网的“矿工”一起计算一道算术题,谁又快又准的算出答案,就相当于获得了记账权,等于挖到了这个区块,这个矿工便能获得系统新生的比特币奖励。
在比特币刚诞生的时候,通过计算机的CPU便可以挖矿。
随着挖矿的矿工越来越多,目前用CPU已经不能挖出比特币了,大家开始用矿机挖矿。
如果你想挖矿,首先需要准备好矿机、比特币地址、挖矿软件等。
接下来是一些知乎问题:
比特币会一直增加下去,岂不是会严重通货膨胀
这一点我也想到了。我给矿工组织的操作细则手册会说明,刚开始我们协议每生成一页账簿,奖励小组50个比特币,后面,每当 账簿增加21,000页,奖励就减半,例如当达到210,000页后,每生成一页账簿奖励25个比特币,,420,000页后,每生成一页奖励12.5个, 依次类推,等账簿达到6,930,000页后,新生成账簿页就没有奖励了。此时比特币全量约为21,000,000个,这就是比特币的总量,所以不会无限 增加下去。
没有奖励后,就没人做矿工了,岂不是没人帮忙确认交易了
到时,矿工的收益会由挖矿所得变为收取手续费。例如,你在转账时可以指定其中1%作为手续费支付给生成账簿页的小组,各个小组会挑选手续费高的交易单优先确认。
矿工如果越来越多,比特币生成速度会变快吗
不会。中本聪解释,虽然可以任意加入和退出矿工组织,导致矿工人数变化,每个矿工也会拿到一个编码生成器,不过我已经在编码生成器中加入了调控机制,当前工作的编码生成器越多,每个机器的效率就越低,保证新账簿页生成速率不变。