初识区块链——比特币

比特币

特点

去中心化:比特币是第一种分布式的虚拟货币,整个网络由用户构成,没有中央银行。去中心化是比特币安全和自由的保证。

全世界流通:比特币可以在任意一台接入网的计算机上管理。任何地方、任何人都可以出售、挖掘、购买、收取比特币。

专属所有权:操控比特币需要私钥,它可以被隔离保存在任何存储介质中,除拥有者以外,无人可以获取。

低交易费用:可免费汇出比特币,但最终每笔交易将收取约1比特分的交易费以确保交易能更快地被执行。

无隐藏成本:作为由A到B的支付手段,比特币没有繁琐的额度和手续限制,知道对方比特币地址可以进行支付。

跨平台挖掘:可以在众多平台上挖掘不同硬件的计算能力。

重要概念

地址、私钥、公钥

    地址:为了便于交换比特币,因为公钥太长了(130或66字符串)。地址的长度25字节,转为Base58编码后,为34或35个字符。(Base58类似于Base64编码,但是去掉了易引起视觉混淆的字符,又在地址的末尾添加了4个字节的校验位,以保障在人们用于交换的个别字符发生错误时,能够因地址校验失败而制止误操作)。

    私钥:非公开,拥有者需安全保管。私钥通常是由随机算法生成的,一个巨大的随机整数(占32字节)。在1~0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之间的数都是一个合法的私钥。私钥还可以用特定的算法,有固定的输入得到32字节输出的算法,就可以成为得到私钥的方法。

    公钥:一个私钥通过推导可以推出唯一的公钥,但使用公钥无法推导出私钥。公钥有压缩和非压缩两种形式。两种公钥的首个字节为标识位,压缩公钥为33字节,非压缩公钥为65字节。以0x04开头的为非压缩公钥,以0x02/0x03开头的为压缩公钥。0x02/0x03的选取由右侧开方后的奇偶决定。压缩形式可以减小Tx/Block的体积,每个Tx Input可减少32字节。

椭圆曲线数字签名算法:

    使用椭圆曲线密码(ECC)对数字签名算法(DSA)的模拟。

梅克尔树:

    是区块链的重要组成部分。梅克尔树是哈希大量聚集数据“块”(Chunk)的一种方式,它依赖于将这些数据“块”分裂成较小单位(Bucket)的数据块,每一个Bucket块仅包含几个数据“块”,然后取每个Bucket单位数据块再次进行哈希运算,重复同样的过程,直至剩余的哈希总数为1,即根哈希。(二叉梅克尔树,其中一个Bucket单位的数据块总是包含了两个相邻的块或哈希值)

哈希现金:

    比特币使用了一种名叫“哈希现金”(Hash Cash)的工作量证明算法,这种算法的出现早于比特币。这种算法最初创建的目的是使之成为反DOS攻击的工具。思想是采用一些数学算法的结果难于发现且易于校验。例如:因数分解一i个大的数字(特别是因数较少的数字)。将数字相乘来获得他们的乘积的代价是低廉的,但是找到哪些因数的代价却要高得多。

    对交互式协商来说,使用因数分解就足以胜任。不过有些资源无法很方便地进行交互式协商。比如,反垃圾电子邮件或者支付交易。怎么样保证垃圾电子邮件不占据邮箱?怎么样保证电子货币(内容)没有被交易(发送)多次?

    哈希现金的解决方法是:

        在电子邮件的消息头中,增加一个哈希现金戳记(Hash Cash Stamp)哈希值,该哈希值中包含收件人地址、发送时间、Salt值。该哈希值特别之处在于,它至少前20位必须是0才是一个合法的哈希现金戳记。为了得到一个合法的哈希值,发送者必须经过许多次尝试(改变Salt值,即系统用来和用户密码进行组合而生成的随机数值)才能获得。一旦生成戳记,希望每一个发来的邮件 的邮件制造者都不能重复使用该戳记。所以,哈希现金戳记要带一个日期,这样可以判定比指定时间更早的戳记是非法的。另外,哈希现金的接收端要实现一个重复支付数据库,用来记录戳记的历史记录。

51%攻击:

    是指某个客户端或组织掌握了比特币全网的51%的算力后,用这些算力来重新计算已经确认过的区块。

    发起51%攻击必须具备的两个条件:

    1、必须掌握足够的算力,无论是控制矿池还是利用其他计算资源。

    2、拿到足够的比特币作为筹码。

冷钱包:

    比特币安全的主要问题在于私钥的保存。

    比特币的冷储存(Cold Storage)是一种将钱包离线保存的方法。用户在一台离线的计算机上面生成比特币地址和私钥,并将其妥善保存起来,以后由挖矿或者在交易平台得到的比特币都可以发送到这个离线生产的比特币地址上面。由这台离线计算机生成的私钥永远不会在其他在线终端或者网络上面。

    冷存储步骤

    首先产生和备份私钥:

    1、在一台完全离线的计算机上生成10000个私钥及对应的地址,并对私钥进行AES加密,然后删除原始私钥。

    2、将AES密码由两个分属异地的人掌握

    3、将加密后的私钥和明文地址生成二维码加密文档,通过扫描完全离线计算机生成地址文档二维码,用于日常使用。

    热钱包往冷钱包汇币,每次必须使用一个未使用过的地址,每个地址不可重复使用,然后从线上往冷钱包汇币,步骤如下:

    1、从地址文档中取出相应地址

    2、根据安全级别,每个地址汇不超过1000枚比特币,每个地址使用一次后就不再使用。

    最后从冷钱包取币,取币过程如下:

    1、把私钥密文通过二维码扫描放入完全离线计算机;

    2、掌握AES密码的人在完全计算机上机进行解密,获得私钥明文。

闪电网络

多重签名

合并挖矿

彩色币

技术原理

单位

猜你喜欢

转载自blog.csdn.net/u010313441/article/details/80781578