区块链学习1——关于比特币

学习区块链,首先了解家喻户晓的比特币。

1.为什么这么多人热衷于挖矿,什么是挖矿

    比特币也是一套货币系统,用户使用比特币来支付,哪谁来帮用户记账呢?谁来充当比特币世界里的“银行”角色呢?答案是矿工(见问题2)。

矿工的作用是跟银行做着同样的事情——记账(问题3)。记账的过程中就叫挖矿。

2.矿工是什么

    矿工就是一台简单的PC机器,由时代的不停演化,简单的PC机的算力已经满足不了需求。现在都是由专业的开发商做出的矿机来进行挖矿。

3.比特币中的记账是什么

    在现实生活中一家公司的会计和出纳每天都会收集员工的报销票据,然后整理填写成一本一本的账本,堆进公司的会计存储室。而在比特币的世界是这样的:我们普遍用户使用比特币发这个区块链就是比特币系统里的总账本,任何人使用比特币交易都会被记录到这个账本里,这个记录的工作就交给矿工来完成。整个收集、打包、拼接的过程全是由软件自动完成的,不需要人工干预。目前这个区块链几杯已经超过80G的数据量了,收集登录了从第一笔比特币交易到现在总共超过1.5亿笔交易。

当然矿工还会对交易的合法性进行验证,谁发起欺诈性的交易是骗不了矿工的。但矿工的核心工作就是做会计。起交易,一笔交易本质上就是一个大约200到500k左右数据。用户将交易广播到比特币网络,矿工节点就会收到交易。矿工会将他收到的交易都打包进一个叫区块的数据块,这个数据块目前平均大小是1M,一般能包含几百到几千笔交易。每新打包一个区块都会拼接到以前的区块,这样整个区块数据块就构成一条链,这就是区块链。

    总之、矿工就是干这事,收集用户发起的交易,然后打包成区块,然后拼接成区块链。

4.矿工拼接成的区块链是什么

    这个区块链就是比特币系统里的总账本,任何人使用比特币交易都会被记录到这个账本里,这个记录的工作就交给矿工来完成。整个收集、打包、拼接的过程全是由软件自动完成的,不需要人工干预。目前这个区块链几杯已经超过80G的数据量了,收集登录了从第一笔比特币交易到现在总共超过1.5亿笔交易。当然矿工还会对交易的合法性进行验证,谁发起欺诈性的交易是骗不了矿工的。但矿工的核心工作就是做会计。

5.矿工为什么要去“记账”

    比特币这套系统为了鼓励人们去挖矿,设定了一个规则:只要你遵守规则成功抢到一次记账的权力,那系统就会给你奖励一些比特币。(这个“一些”最开始在2009年是50个比特币,然后平均四年半减半,到了2012年变成了25个比特币,现在变成了12.5个比特币。)这个叫区块奖励。另外区块奖励也是比特币发行的策略,天底下所有的比特币就是从区块奖励开始诞生的。又因为每隔四年半奖励会减半,到了2140年,理论上比特币总量将无限接近2100万个。当然因为早期会有大量的人因为不在乎会丢失比特币,所以最终问题肯定达不到2100万个。

6.许多矿工都在记账,那么比特币系统怎么判断奖励给哪个矿工呢?

    比特币系统的记账权力是要争夺的,争夺的规则其实非常简单,就是大家抛硬币,谁先抛出合乎规则的硬币序列谁就赢。这就是矿机运算的核心内容,矿机算的东西本质上是抛硬币。比特币矿机计算的东西专业术语叫计算区块头信息哈希值小于某个数值的数。其本质上就是一个随机数。谁先算出这个数,就可以获得接下来给比特币网络记账的权力。也就可以拿到区块奖励,和相应的交易转账手续费。

    可以这样来形象理解,挖矿的计算过程,比特币这套系统每10分钟会给一道题,这道题就是让大家去抛硬币,胜出规则是,连续抛出正面向上多少次就算赢。

    所以谁的计算设备抛硬币抛的快谁就更能抢到比特币的区块奖励,这个抛硬币的快慢叫算力。所以也不能说是靠运气哈,还得靠实力,虽然这个实力是由抛硬币这种碰运气机会组成的。

7.关于比特币的交易的工作过程

    所谓比特币的交易过程,无非是从一个比特币钱包中向另一个比特币钱包转账,每笔交易都有数字签名来保证安全,一旦交易发生那么就是对所有人公开的,每个交易的历史都可以追溯到比特币最初被挖出来的点。

    比特币不存在于任何地方。世界没有实物,也就不存在任何一个数据文件叫做“比特币的”。

    假如alice给bob交易比特币,交易必须包括三项信息。分别为输入(比特币是从哪发送到alice的),数目(比特币的数目),输出(bob的比特币地址)

    比特币交易是怎么样发送比特币的呢?需要1)比特币地址2)对应的私钥。比特币的地址是一串随机的字母与数字组成的字符串。私钥也是一个类似的字符串,私钥是严格保密的。比特币的地址相当于一个透明的储钱罐,每个人都可以看到里面有什么,但是只有拥有私钥的人可以打开或者是说交易他。

    当 Alice 想要给 Bob 转币的时候,就用私钥来签署一段信息,其中包括输入,数目和输出这三项前面已经提过的内容。这样,信息广播到比特币网络上,矿工就可以验证这次交易,把交易加入区块链中了。

当 Alice 想要给 Bob 转币的时候,就用私钥来签署一段信息,其中包括输入,数目和输出这三项前面已经提过的内容。这样,信息广播到比特币网络上,矿工就可以验证这次交易,把交易加入区块链中了。

8.交易为什么会有10分钟的持续时间。

    因为交易需要得到矿工的验证正确之后才能写到区块链上,等待他们挖矿成功。 比特币协议等待挖矿的时间是10分钟 

9.输入与输出有时候会不相等    

    因为比特币只是以交易记录的形式存在,所以很多时候你的一个地址上面其实是对应很多个交易的。可能 Jane 发送给了 Alice 40个比特币,Lucy 给了40个,Eve 给了20个,这些都是不同时间的不同的交易,他们并没有被合成到 Alice 的一个钱包里形成一个有100个币的文件,而是仍然作为独立的各个交易记录存在。

    当 Alice 想要给 Bob 转币的时候,她的钱包就会找到几个交易,让它们的数额加起来正好是 Alice 想要转的数目。 当然,很可能在 Alice 想要给 Bob 转币的时候,她没有办法找到几个交易加起来正好是转账数额。也许她想要转 30 个币,但是钱包中根本没有一个交易或是多个交易的和正好是这个数目。

    同时,她没有办法把一个交易切割成小的数额。就是这样,你没有办法切割一个大的交易成为多个小数额,每次都必须花掉整个交易。但是不用担心,系统会给她把多发送出去的币作为找零还给你。

    Alice 这时就可以把 Jane 给她发送过来的两个币发送给 Bob,这样 Jane 就是“输入”,Bob 就是“输出”,“数额”是30个币,这时 Alice 真正想要转账的数目。这样,Alice 的钱包就会自动给她的这次交易创建两个输出:把30个币给 Bob,剩下的30放到一个新的地址中,这个是找回的零钱。

10,为什么只有2100W个比特币?

    比特币的最小单位是聪,1BTC=100,000,000聪。比特币的奖励机制是每个区块奖励50BTC,每21W个区块减半一次,当减半到比1聪还小时候,边没有区块链奖励了。

    比特币规定10分钟出一个块,所以比特币的总量是无法精确到特定的某个数。10分钟出一块,一天出144块    ,144*4*365约等于21W区块,所以以四年为一个单位。所以比特币的总数为第一年产出比特币的二倍,也就是说约有2100W个比特币。

11.为什么规定10分钟出一个块

    中本聪在设计比特币机制时,考虑到当矿工A找到数学题结果后,发给全球矿工的时间可能受网络传播影响,需要三五分钟的时间才能让全球矿工都知道(比如欧洲矿工通知到澳洲,在传输上确实不会瞬间到达,需要几分钟的时间),于是为了尽量避免“矿工A和矿工B在不知道对方都计算出结果的情况下同时发送计算结果”的事情,规定了每道数学题要很复杂,复杂到平均每个矿工需要花10分钟挖出一个区块,于是设计了一个这样的值:理论平均出块时间=10分钟。

 12.矿池

        于比特币全网的运算水准在不断的呈指数级别上涨,单个设备或少量的算力都无法在比特币网络上获取到比特币网络提供的区块奖励。在全网算力提升到了一定程度后,过低的获取奖励的概率。促使一些“bitcointalk”上的极客开发出一种可以将少量算力合并联合运作的方法,使用这种方式建立的网站便被称作“矿池”(Mining Pool)在此机制中,不论个人矿工所能使用的运算力多寡,只要是透过加入矿池来参与挖矿活动,无论是否有成功挖掘出有效资料块,皆可经由对矿池的贡献来获得少量比特币奖励,亦即多人合作挖矿,获得的比特币奖励也由多人依照贡献度分享。

    目前矿池的分配方式主要有:“PPLNS、PPS、PROP”三种。

13.时间戳

    大多用来进行比对以及验证处理,时间戳服务器是一款基于PKI(公钥密码基础设施)技术的时间戳权威系统,对外提供精确可信的时间戳服务。它采用精确的时间源、高强度高标准的安全机制,以确认系统处理数据在某一时间的存在性和相关操作的相对时间顺序,为信息系统中的时间防抵赖提供基础服务。

猜你喜欢

转载自blog.csdn.net/qq_36344771/article/details/80932149