admin管理员组

文章数量:1603247

Mastering bitcoin

一.简介

软件工程、密码学、经济学的结合体。

需要解决数字货币的两个基本问题:

  • 这笔钱是否真实可信
  • 这笔钱怎么识别所有权

比特币构成:

  • 一个去中心化的点对点网络(比特币协议
  • 一个公共的交易账簿(区块链
  • 一个去中心化的数学的和确定性的货币发行(分布式挖矿
  • 一个去中心化的交易验证系统(交易脚本
比特币的客户端:

完整客户端:一个完整的客户端,或称为“全节点”,存储着所有比特币交易的真个交易历史(由每一个用户完成的每一笔交易,曾经所有的每一笔)的客户端,可以管理钱包,并可以在比特币网络上直接开始交易。

轻量级客户端:存储着用户的钱包,但需要依赖第三方服务器才能进行比特币交易,才能接入比特币网络。不保存所有交易的完整副本。

在线客户端:通过网页浏览器在第三方服务器上访问和储存该用户的钱包

不同客户端的选择:完整客户端就自身对钱包的管理,钱包的备份和安全责任就转移到了用户上。而其他需要考虑第三方的风险。

二.基本运作原理

运作的一个关键点:信任,不仅仅是一个人相信另一个人,而是在这个区域内的所有参与者都给予认可。**如何做到的?**区块链技术,一个公共的交易账本,这个账本大家都能看到,都能复制,但是里面的信息无法修改,只能在之前信息的基础上做新的信息添加作为更正。**如何使得区块链上的信息无法修改呢?**这个“无法”是相对的,一块区域连接着一块,下一块存储着上一块的hash值,如果其中一块被修改,则连锁反应,下一块的信息也需要修改,下下块也需要,这样修改的成本会非常大,所以就没人这么做。

**那么计算区块哈希值交由谁做呢?**又没有中心化的服务器,**谁来提供这样的服务呢?**这就产生了矿工,矿工提供算力来计算区块,使交易记录在链上,那么如何推动矿工的工作呢?一种激励手段产生了,而且是最简单暴力的,给钱干活。矿工提供算力给交易上链成功后,会得到一份收益。至于这收益怎么计算,谁来最终获取这份收益,后面在详谈。

有了这份推动力,系统就初步搭建起来了。**那么交易是怎么构建的呢?也就是如何让数据是有价值的呢?**这里肯定不是数据本身有价值,而是数据记录的内容,这里有一个概念,**utxo----unspent transacation output,**未使用交易输出,他表示在链上的交易记录,使用这些交易记录来表示自身的财产,记录的基本信息有输入和输出,输入是本账户的支出,输出是本账户或者其他账户的收入(还包含了挖矿),表示你拥有多少财富的记录是,某个账户输入了币给你,而你可以消费这个币,形成新的记录。标记你账户的,名词为地址,即钱包地址,这个是可以公开的,大家转账的地址就是填写这个地址。这个地址是通过私钥椭圆加密算法(单向)得到公钥,公钥通过双重哈希算法(单向)得到地址,所以最重要的是私钥,他的安全性是通过两个加密算法来维护的,如果哪天这个加密算法被破解了,那么也就gg了。

三.客户端的使用

比特币客户端的编译与使用。

  • 1.直接从官网上安装bitcoin

  • 2.github上下载源码进行编译

四.密钥、地址、钱包,生成与使用

  • 1.比特币的所有权:数字密钥、比特币地址和数字签名来确立。

钱包:数字密钥由用户生成并存储在一个文件或简单的数据库中,而并不存储在网络中,称之为钱包。

存储在用户中的数字密钥完全独立于比特币协议,可由用户钱包软件生成并管理,而无需区块链或网络连接。

本章将密钥所在之处,钱包。了解密钥如何被产生、存储和管理。私钥和公钥、地址和脚本地址的各种编码格式。密钥的特殊用途:生成签名、证明所有权以及创造比特币靓号地址和纸钱包。

  • 2.私钥=椭圆曲线相乘(单向)=》公钥=哈希函数(单向)=》比特币地址

如何获取安全的私钥?

首先私钥可以取值的范围是:1-(n-1),n=1.158*10^77。要生成一个相对安全的私钥,可以随机一个256位的数字,检查他是否小于n,从编程的角度,一般是通过在一个 密码安全的随机源中取出一长串随机字节,对于使用sha256哈希算法运算,就可以得到一个256位的数字了,再检查是否满足范围。

如何获取公钥?

使用私钥计算椭圆曲线相乘,得到公钥,具体我搞不明白。使用的是secp256k1标准。

如何获取比特币地址?

比特币地址常作为交易的收款方出现。比特币地址可由公钥经过单向的加密哈希算法得到。哈希算法在比特币中被广泛使用:比特币地址、脚本地址以及挖矿中的工作量证明算法。由公钥生成比特币地址时使用的哈希算法是:Secure Hash Algorithm(SHA)和the RACE Integrity Primitives Evaluation Message Digest(RIPEMD),尤其是SHA256和RIPEMD160。

*公钥

本文标签: Masteringbitcoin