《精通比特币》笔记

工:
一个为新区块通过重复哈希计算来寻找有效工作量证明的网络节点。
多重签名:
多重签名指的是需要多于一个密钥来验证一个比特币交易。

挖矿在比特币系统中有两个重要作用:
▷ 挖矿节点通过参考比特币的共识规则验证所有交易。因此,挖矿通过拒绝无
效或畸形交易来提供比特币交易的安全性。
▷ 挖矿在构建区块时会创造新的比特币,和一个中央银行印发新的纸币很类似。
每个区块创造的比特币数量是固定的, 随时间会渐渐减少。

一个成功的矿工将以新的比特币和交易费的形式获取奖励。但是,只有矿工正确验
证了所有的交易,才能获得奖励,才能达到协商一致的规则。

比特币的所有权是通过数字密钥、比特币地址和数字签名来确定的。

公钥加密:
比特币正是使用椭圆曲线乘法作为其公钥加密的基础。素数幂和椭圆曲线乘法,这些数学函数都是不可逆的, 就是说很容易向一个方向计算,但不可以向相反方向倒推。基于这些数学函数的密码学,使得生成数字密钥和不可伪造的数字签名成为可能。

密钥是成对出现的,由一个私钥和一个公钥所组成。公钥就像银行的帐号,而私钥就像控制账户的PIN 码或支票的签名。比特币的用户很少会直接看到数字密钥。一般情况下,它们被存储在钱包文件内,由比特币钱包软件进行管理。

提示大多数比特币钱包工具为了方便会将私钥和公钥以密钥对的形式存储在一起。然而,公钥可以由私钥计算得到, 所以只存储私钥也是可以的。

私钥(k)是一个数字,通常是随机选出的。有了私钥,我们就可以使用椭圆曲线乘法这个单向加密函数产生一个公钥(K)。有了公钥(K),我们就可以使用一个单向加密哈希函数生成比特币地址(A)。
《精通比特币》笔记_第1张图片
为什么在比特币中使用非对称密码术?
它不是用于“加密”(make secret)交易。相反,非对称密码学的有用属性是生成数字签名的能力。可以将私钥应用于交易的数字指纹以产生数字签名。该签名只能由知晓私钥的人生成。

私钥就是一个随机选出的数字而已。一个比特币地址中的所有资金的控制取决于相应私钥的所有权和控制权。在比特币交易中,私钥用于生成支付比特币所必需的签名以证明对资金的所有权。私钥必须始终保持机密,因为一旦被泄露给第三方,相当于该私钥保护之下的比特币也拱手相让了。私钥还必须进行备份,以防意外丢失,因为私钥一旦丢失就难以复原,其所保护的比特币也
将永远丢失。

私钥的生成:从编程的角度来看,一般是通过在一个密码学安全的随机源中取出一长串随机字节,对其使用SHA256 哈希算法进行运算,这样就可以方便地产生一个256 位的数字。如果运算结果小于n-1,我们就有了一个合适的私钥。否则,我们就用另一个随机数再重复一次。
使用密码学安全的伪随机数生成器(CSPRNG),并且需要有一个来自具有足够熵值的源的种子。使用随机数发生器的程序库时,需仔细研读其文档,以确保它是加密安全的。

哈希算法是一种单向函数,接收任意长度的输入产生指纹或哈希。加密哈希函数在比特币中被广泛使用:比特币地址、脚本地址以及在挖矿中的工作量证明算法。由公钥生成比特币地址时使用的算法是Secure Hash Algorithm (SHA)和the RACE Integ rity Primitives Evaluation Message Digest (RIPEMD),具体地说是SHA256 和RIPEMD160。
以公钥K 为输入,计算其SHA256 哈希值,并以此结果计算RIPEMD160 哈希值,得到一个长度为160 位(20 字节)的数字:
A = RIPEMD160(SHA256(K))
公式中,K 是公钥,A 是生成的比特币地址。
提示: 比特币地址与公钥不同。比特币地址是由公钥经过单向的哈希函数生成的。
《精通比特币》笔记_第2张图片
Base64 使用了26 个小写字母、26 个大写字母、10 个数字以及两个符号(例如“+”和“/”),用于在电子邮件这样的基于文本的媒介中传输二进制数据。Base64 通常用于编码邮件中的附件。Base58 是一种基于文本的二进制编码格式,用在比特币和其它的加密货币中。这种编码格式不仅实现了数据压缩,保持了易读性,还具有错误诊断功能。Base58 是Base64 编码格式的子集,同样使用大小写字母和10 个数字,但舍弃了一些容易错读和在特定字体中容易混淆的字符。具体地,Base58 不含Base64 中的0(数字0)、O(大写字母o)、l(小写字L)、I(大写字母i),以及“+”和“/”两个字符。简而言之,Base58 就是由不包括(0,O,l,I)的大小写字母和数字组成。
为了增加防止打印和转录错误的安全性,Base58Check 是一种常用在比特币中的Base58 编码格式,比特币有内置的检查错误的编码。检验和是添加到正在编码的数据末端的额外4 个字节。

区块链:
本质上,区块链是一个分布式共享数据库,具有去中心化开放性**、自治性、信息不可篡改、匿名性**。
比特币背后的区块链技术是一个去中心化的稳定系统。 比特币系统分布在全球各地,无中央管理服务器,无任何负责的主体,无外部信用背书。
矿场和矿池目的都是集中算力,提升挖矿概率,从而提升收益。
**矿场:**挖矿设备管理场所。
矿池:将大量算力较低的设备进行联合、共同运作挖矿的平台。

区块链按类型目前分为三类:公有链(比特币系列虚拟数字货币均基于公有区块链)、联盟链、私有链。
区块链行业面临的挑战:
性能约束:
影响区块链性能的直观指标包含四点:区块生成时间、区块大小、交易执行速度和交易大小
区块链1.0时代的比特币交易系统性能约束为:区块大小区块生产时间
区块链2.0时代的以太坊系统 ,由于支持一般的智能合约,除了区块大小区块生成时间以外,只能使用单核CPU的计算效率低下也成为了性能约束。

你可能感兴趣的:(笔记,区块链)