【小白入门】理解比特币原理

96
甜蛋学习区块链
2018.03.16 21:33 字数 3481

先听一个故事

在理解比特币原理前,我们先简单的听一个故事,有助于加深理解,如何让一个6岁的孩子理解比特币,准备好了吗?开始了,有个房间是2009年建好的,每个人都能进入的,但是这个房间有一个摄像头在每时每刻地拍着房间里的一切变化,每个人还能查看摄像头里的内容。而且摄像头里的内容在网上是每时每刻都能查阅到的,而且这个内容永远不会改变。这个房间里充满了用透明玻璃制成的坚不可摧的钱罐子(钱罐子是砸不破的)。自然,这些钱罐子是有一个小口的,每个人都能看见每个钱罐子里有多少钱,钱罐子永远无法离开房间。每个人都有一个钥匙来打开钱罐子,比如说:我想买一双袜子,然后你正好想把它们卖出去。

首先,你得告诉我房间里那一个钱罐子是你的,然后,我走进房间,带上一个丝袜面罩(就是劫匪戴的那种),世界上每个人都在摄像头中看到了我,但是不知道我是谁。

接着,我解开了我的钱罐子,拿出了一些比特币,把比特币放进了你的上了锁的钱罐子,然后我离开了房间。

最终,世界上每个人都知道了你的钱罐子里有了之前在我的钱罐子里的比特币,这就是每次转账的过程,所以每个人都知道每个比特币的历史。

“所以这些比特币是从哪里来的呢?怎么开始的,谁拿到的第一个比特币”

在房间里有一个机器人在发放彩票,每过一段时间,这个机器人就随机地选择一个在房间里的钱罐子,然后放50个比特币进去。刚开始时(2011年),房间里没几个钱罐子,因为根本没几个人知道有这个房间,所以你很容易中奖。现在,房间里有上百万个钱罐子,所以你中奖的概率越来越小了。

“好吧,那肯定有人能制造出假的比特币吧”

不可能,因为每个人都有房间里每个比特币交易的所有记录,并且他们知道什么时候机器人会发放新的比特币,如果一个骗子想要把假的比特币放进自己的钱罐子的话,每个人都会知道这个比特币不是机器人发放的,所以其他人不会接受伪造的货币。

故事讲完了,以上故事来源 如何让一个6岁的孩子理解比特币


模拟实操过程

  A是甜蛋的帐户,甜蛋需要向B金点买EOS,现在的价格是0.00005一个,我需要买4000个,这时候,需要向金点支付0.2 BTC,来完成这次的币币交易,交易过程如下:

第一步、甜蛋向周围节点广播转帐交易要求:A帐号转帐0.2比特币给B帐号;

第二步、甜蛋周围的节点C、D、E、F、G通过A帐号的公开密钥检查交易的真伪;

第三步、检查通过后,节点在自己帐本上写:A帐号向帐号转账0.2比特币,修改余额各自的帐号余额;

第四步、节点把这个交易广播给周围的节点,直到所有节点都收到这笔交易。


在模拟的过程中有几个需要学习的问题

首先,甜蛋的BTC从哪里来的?

获得的途径很多,比方花钱在交易所买的,跟别人交易获得的,做导航网站他人捐赠的等等,可是,那最初的BTC是从哪里来的?就是挖矿来的,挖矿,是比特币系统发行自身数字货币,也就是比特币的必经之路。比特币挖矿是利用计算机硬件为比特币网络做数学计算进行交易确认和提高安全性的过程。这就是我的交易二、三、四步,矿工都参与,作为对他们服务的奖励,矿工可以得到他们所确认的交易中包含的手续费,以及新创建的比特币,现在是12.5个比特币。这12.5个比特币就是最最初的来源,挖矿是一个专业的、竞争激烈的市场,奖金按照完成的计算量分割。并非所有的比特币用户都挖矿,挖矿赚钱也并不容易,每个挖矿节点,受利益的驱使,也是不断的想办法能更快地挖矿,这也就催生了市面上的各种各样的矿池节点,目前对算力的要求很高了,刚刚查询的挖掘难度变成了3290605988755.001,吓人的难度,成本非常高。

再次,公开密钥怎么检查真伪?

说到检查,就得从钱包地址说起,比特币钱包地址的生成过程有十步,每个币种的钱包生成算法是有区别的,采用的加密也不一致,不多说,具体可以参考百度上比特币钱包地址如何生成

比特币钱包地址生成过程

说明:使用随机数发生器生成一个『私钥』。一般来说这是一个256bits的数,拥有了这串数字就可以对相应『钱包地址』中的比特币进行操作,所以必须被安全地保存起来。

私钥经过椭圆曲线加密算法(SECP256K1)算法处理生成了公钥,再通过SHA256、RIPEMD160等几种Hash算法计算得到BASE58编码前的钱包地址,这些过程是不可逆的。由公钥可以计算得到公钥哈希,而反过来是行不通的。

而使用BASE58(比特币定制版本),就得到了钱包地址,进行编码公钥哈希和钱包地址可以通过互逆运算进行转换,所以它们是等价的。

那么『私钥』、『公钥』、『钱包地址』间的关系是,通过『私钥』可以得到上述计算过程中所有的值,而钱包地址只能拿到公钥哈希


讲完了钱包地址生成过程,回过头看,是甜蛋先转BTC过去的,那怎么使用私钥对交易进行签名

交易数据是由转出钱包的甜蛋A帐户所有者生成,也就是说有了私钥就可以花费该钱包的比特币余额。生成交易的过程如下:

1. 交易的原始数据包括“转账数额”和“转入钱包地址”,但是仅有这些是不够的,因为无法证明交易的生成者对“转出钱包地址”余额有动用的权利。所以需要用私钥对原始数据进行签名。

2. 生成“转出钱包公钥”,这一过程与生成钱包地址的第2步是一样的。

3. 将“转出签名”和“转出公钥”添加到原始交易数据中,生成了正式的交易数据,这样它就可以被广播到比特币网络进行转账了。


现在就到了公钥验证的时间,使用公钥对签名进行验证

交易数据被广播到比特币网络后,节点会对这个交易数据进行检验,其中就包括对签名的校验。如果校验正确,那么这笔余额就成功地从“转出钱包”转移到“转入钱包”了。


划重点理解的几个关键词

余额 - 块链                      交易 - 私钥                  处理 - 挖矿


附:相关的名词解释

1、比特币

比特币(BitCoin)的概念最初由中本聪在2009年提出,根据中本聪的思路设计发布的开源软件以及建构其上的P2P网络。比特币是一种P2P形式的数字货币。点对点的传输意味着一个去中心化的支付系统。它不是像央行一样存在中央服务器中,而是存在于世界上亿万的电脑之中。自发行后,理论上没有任何人可以控制比特币数量,也无法通过大量制造比特币来人为操控币值,比特币其实没有钱包,只有交易账单,整个比特币就是一大堆交易账单。

2、比特币地址

比特币地址就像一个物理地址或者电子邮件地址。这是别人付给你比特币时你唯一需要提供的信息。然而一个重要的区别是,每个地址应该只用于单笔交易。

3、交易确认

交易确认意味着一笔交易已经 被网络处理且不太可能被撤销。当交易被包含进一个 时会收到一个确认,后续的每一个块都对应一个确认。对于小金额交易单个确认便可视为安全,然而对于比如1000美元的大金额交易,等待6个以上的确认比较合理。每一个确认都成 指数级地降低交易撤销的风险。

4、签名

密码学签名是一个让人可以证明所有权的数学机制。对于比特币来说,一个比特币钱包和它的私钥通过一些数学魔法关联到一起。当你的比特币软件用对应的私钥为一笔交易签名,整个网络都能知道这个签名和已花费的比特币相匹配。但是,世界上没有人可以猜到你的私钥来窃取你辛苦赚来的比特币。

5、钱包

比特币钱包大致实体钱包在比特币网络中的等同物。钱包中实际上包含了你的私钥,可以让你消费块链中分配给钱包的比特币。和真正的钱包一样,每个比特币钱包都可以显示它所控制的所有比特币的总余额,并允许你将一定金额的比特币付给某人。这与商家进行扣款的信用卡不同。

6、区块

一个块是块链中的一条记录,包含并确认待处理的交易。平均约每10分钟就有一个包含交易的新块通过挖矿的方式添加到块链中。

7、私钥

私钥是一个证明你有权从一个特定的钱包消费比特币的保密数据块,是通过一个密码学签名来实现的 。如果你使用的是钱包软件,你的私钥就存储在你的计算机内;如果使用的是在线钱包,你的私钥就存储在远程服务器上。千万不能泄露私钥,因为它们可以让你消费对应比特币钱包里的比特币。

8、BTC

BTC 是用于标示一个比特币的常用单位。比方人民币的元一样。

9、椭圆曲线加密算法(SECP256K1)算法

椭圆曲线密码也是一个基于加法阶数难求问题的密码方案。

10、SHA256

哈希值用作表示大量数据的固定大小的唯一值。数据的少量更改会在哈希值中产生不可预知的大量更改。SHA256 算法的哈希值大小为 256 位。

11、RIPEMD算法

RIPEMD,也是一种哈希算法,是Hans Dobbertin等3人在md4,md5的基础上,于1996年提出来的。算法共有4个标准128、160、256和320,其对应输出长度分别为16字节、20字节、32字节和40字节。不过,让人难以致信的是RIPEMD的设计者们根本就没有真正设计256和320位这2种标准,他们只是在128位和160位的基础上,修改了初始参数和s-box来达到输出为256和320位的目的。所以,256位的强度和128相当,而320位的强度和160位相当。RIPEMD建立在md的基础之上,所以,其添加数据的方式和md5完全一样。




学习资料参考及来源:

比特币官网:https://bitcoin.org/

比特币私钥、公钥、钱包地址之间的关系:http://www.bitcoin86.com/teach/6494.html

如何让一个6岁的孩子理解比特币  https://www.quora.com/How-do-you-explain-Bitcoin-to-a-6-year-old?redirected_qid=1102280

如涉及版权问题,请及时联系作者

上线文章
Web note ad 1