初触比特币和区块链

比特币概述

 

比特币突破1W美金火了,比特币的底层技术实现区块链也跟着火了,现在我也来总结一下我在这一块的认识。

区块链说白了,可以理解是一个分布式加密的数据库。为什么可以当做是数据库,因为它具备被读和被写的特性。再严谨一点来说,用更加科学化的语言来解释的话呢,区块链就是把加密数据(区块)按照时间顺序进行叠加串联而生成的永久、不可逆向修改记录的(链)。也可以这样理解,区块链=区块+区块+区块+区块+区块……很多区块串联在一起于是就有了链这个概念。

区块链的三个特点:去中心化  信息不可伪造 信息不可逆。

 

块

区块是一种被包含在公开账簿(区块链)里的聚合了交易信息的容器数据结构。它由一个包含元数据的区块头和紧跟其后的构成区块主体的一长串交易组成。区块头是80字节,而平均每个交易至少是250字节,而且平均每个区块至少包含超过500个交易。因此,一个包含所有交易的完整区块比区块头的1000倍还要大。区块包含了2部分:区块头和区块主体,其中区块头记录了哈希记录,时间戳,获取难度,以及块编号等等,区块主体记录了交易信息等。区块标识符:区块头哈希值和区块高度区块主标识符是它的加密哈希值,一个通过SHA256算法对区块头进行二次哈希计算而得到的数字指纹。产生的32字节哈希值被称为区块哈希值,但是更准确的名称是:区块头哈希值,因为只有区块头被用于计算。一个区块的区块哈希值总是能唯一地识别出一个特定区块。一个区块也总是有特定的区块高度。但是,一个特定的区块高度并不一定总是能唯一地识别出一个特定区块。更确切地说,两个或者更多数量的区块也许会为了区块中的一个位置而竞争。

区块链存在的意义:解决陌生人之间信任机制的问题。通俗的说就是在没有可信第三方公证存在的时候,所有交易数据都会储存在一个数据块中,交易信息形成一个完整链条包含在区块链里,那么所有数据就是由计算机加密生成,这是一个比可靠第三方更加靠谱的终极解决方案。因为你的交易信息人人可见,人人可知,却不能修改变更。

未来的发展方向:可以替代第三方公证处,完美解决个人征信行为的真伪,甚至可以取代货币。

现在用于区块链技术方向,全球最成功的案例就数比特币了。随着其价格大涨,各种山寨币也可以通过ICO出现了井喷的情况,目前国家已经禁止虚拟货币ICO。现在来说说比特币。

比特币由什么构成呢?一个去中心化的点对点网络(比特币协议) 一个公共的交易账簿(区块链)一个去中心化的数学的和确定性的货币发行(分布式挖矿)一个去中心化的交易验证系统(交易脚本)。比特币也可以理解成公有区块链的代表,为什么公有?因为比特币的交易账本是公开的,一切都是透明的,因此你想参与到比特币中去,先创建自己的比特币钱包,下载到本地还需要同步所有比特币所有的交易数据,因此随着时间推移,硬盘没几个T都不敢装比特币钱包客户端。

比特币系统怎么理解?比特币系统由用户(用户通过密钥控制钱包)、交易(每一笔交易都会被广播到整个比特币网络)和矿工(通过竞争计算生成在每个节点达成共识的区块链,区块链是一个分布式的公共权威账簿,包含了比特币网络发生的所有的交易)组成。比特币系统的信任是建立在计算的基础上的。交易被包在一起放进区块中时需要极大的计算量来证明,但只需少量计算就能验证它们已被证明。挖矿在比特币系统中起着两个作用:挖矿在构建区块时会创造新的比特币,和一个中央银行印发新的纸币很类似。每个区块创造的比特币数量是固定的,随时间会渐渐减少。挖矿创建信任。挖矿确保只有在包含交易的区块上贡献了足够的计算量后,这些交易才被确认。区块越多,花费的计算量越大,意味着更多的信任,因为最后都要同步到所有的区块。

比特币的所有权是通过数字密钥、比特币地址和数字签名来确立的。比特币的所有权是通过数字密钥、比特币地址和数字签名来确立的。数字密钥实际上并不是存储在网络中,而是由用户生成并存储在一个文件或简单的数据库 中,称为钱包。存储在用户钱包中的数字密钥完全独立于比特币协议,可由用户的钱包软件生成并管理,而无需区块链或网络连接。密钥实现了比特币的许多有趣特 性,包括去中心化信任和控制、所有权认证和基于密码学证明的安全模型。每笔比特币交易都需要一个有效的签名才会被存储在区块链。只有有效的数字密钥才能产生有效的数字签名,因此拥有比特币的密钥副本就拥有了该帐户的比 特币控制权。密钥是成对出现的,由一个私钥和一个公钥所组成。公钥就像银行的帐号,而私钥就像控制账户的PIN码或支票的签名。比特币的用户很少会直接看 到数字密钥。一般情况下,它们被存储在钱包文件内,由比特币钱包软件进行管理。在比特币交易的支付环节,收件人的公钥是通过其数字指纹表示的,称为比特币地址,就像支票上的支付对象的名字(即“收款方”)。一般情况下,比特币 地址由一个公钥生成并对应于这个公钥。然而,并非所有比特币地址都是公钥;他们也可以代表其他支付对象,譬如脚本,我们将在本章后面提及。这样一来,比特 币地址把收款方抽象起来了,使得交易的目的地更灵活,就像支票一样:这个支付工具可支付到个人账户、公司账户,进行账单支付或现金支付。比特币地址是用户 经常看到的密钥的唯一代表,他们只需要把比特币地址告诉其他人即可。

如何理解挖矿?描述挖矿的一个好方法是将之类比为一个巨大的多人数独谜题游戏。一旦有人发现正解之后,这个数独游戏会自动调整困难度以使游戏每次需要大约10分钟解决。想象一个有几千行几千列的巨大数独游戏。如果给你一个已经完成的数独,你可以很快地验证它。然而,如果这个数独只有几个方格里有数字其余方格都为空的话,就会花费非常长的时间来解决。这个数独游戏的困难度可以通过改变其大小(更多或更少行列)来调整,但即使它非常大时验证它也是相当容易的。而比特币中的 “谜题” 是基于哈希加密算法的,其展现了相似的特性:非对称地,它解起来困难而验证很容易,并且它的困难度可以调整。每10分钟就可以产生一个区块,为寻找这个解,也被称为工作量证明,整个网络需要具有每秒亿万次哈希计算的能力。这个工作量证明算法指的用SHA256加密算法不断地对区块头和一个随机数字进行哈希计算,直到出现一个和预设值相匹配的解。第一个找到这个解的矿工会赢得这局竞赛并会将此区块发布到区块链中。

挖矿是增加比特币货币供应的一个过程。挖矿同时还保护着比特币系统的安全,防止欺诈交易,避免“双重支付”,“双重支付”是指多次花费同一笔比特币。矿工们通过为比特币网络提供算力来换取获得比特币奖励的机会。矿工们验证每笔新的交易并把它们记录在总帐簿上。每10分钟就会有一个新的区块被“挖掘”出来,每个区块里包含着从上一个区块产生到目前这段时间内 发生的所有交易,这些交易被依次添加到区块链中。我们把包含在区块内且被添加到区块链上的交易称为“确认”交易,交易经过“确认”之后,新的拥有者才能够 花费他在交易中得到的比特币。矿工们在挖矿过程中会得到两种类型的奖励:创建新区块的新币奖励,以及区块中所含交易的交易费。为了得到这些奖励,矿工们争相完成一种基于加密哈希 算法的数学难题,这些难题的答案包括在新区块中,作为矿工的计算工作量的证明,被称为”“工作量证明”。该算法的竞争的机制以及获胜者有权在区块链上进行 交易记录的机制,这二者比特币安全的基石。新比特币的生成过程被称为挖矿是因为它的奖励机制被设计为速度递减模式,类似于贵重金属的挖矿过程。比特币的货币是通过挖矿发行的,类似于中央银行 通过印刷银行纸币来发行货币。矿工通过创造一个新区块得到的比特币数量大约每四年(或准确说是每隔210,000个块)减少一半。开始时为2009年1月 每个区块奖励50个比特币,然后到2012年11月减半为每个区块奖励25个比特币。之后将在2016年的某个时刻再次减半为每个新区块奖励12.5个比 特币。基于这个公式,比特币挖矿奖励以指数方式递减,直到2140年。届时所有的比特币(20,999,999,980)全部发行完毕。换句话说在 2140年之后,不会再有新的比特币产生。矿工们同时也会获取交易费。每笔交易都可能包含一笔交易费,交易费是每笔交易记录的输入和输出的差额。在挖矿过程中“挖出”新区块的矿工获胜者可以 得到该区块中包含的所有交易“小费”。目前,这笔费用占矿工收入的0.5%或更少,大部分收益仍来自挖矿所得的比特币奖励。然而随着挖矿奖励的递减,以及每个区块中包含的交易数量增加,交易费在矿工收益中所占的比重将会逐渐增加。在2140年之后,所有的矿工收益都将由交易费构成。

当前矿工收入计算公式:挖到区块并发布到公有链获得的比特币奖励 + 比特币交易的手续费 – 硬件设备 – 电费。

2140年后矿工收入计算公式: 比特币交易的手续费 – 硬件设备 – 电费。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>