比特币学习篇——什么是“去中心化”和“保密”

点击蓝字关注我们

比特币学习篇——“比特币之父”中本聪

       欢迎大家关注公众号,关注后可以进群做金融和投资方向的交流。做投资,我们是认真的。文章的分享也是希望大家可以和我们做项目上的交流,更多文章可以查看进入公众号。

    上次和大家分享了比特币的创始人:中本聪,讲了讲他的家庭、生活、现状、比特币出现的历史等等,忘记的可以查看上方链接。这次,我们继续科普,说说大家一谈比特币就会谈到“中心化”和“保密”,但到底比特币是如何实现这两点的,我们不做技术上的交流,只是科普学习。下次课,我们讲讲比特币的宏观政策和监管环境。

任何一个新技术的诞生都是要用来解决一个问题,区块链本质上是一个去中心化的分布式账本数据库。

中心化

想象一下平时我们会把上班挣到的钱放在哪里呢?除了压在枕头底下,塞在鞋垫里,大多数情况我们都会把它们存在比如银行、支付宝、微信这样的第三方机构。把钱存进去以后,银行会给我们开一个账户,告诉我们现在账户里有多少钱。而当我们要买东西时,我们可以选择刷卡转账给到商家,而银行就会帮我们把账户里资金的变动情况记录下来。

也就是说,银行就好像扮演了一个货币交易中心的角色,帮助我们打理自己的财产。而我们之所以愿意把钱交给银行,而不是自己每天把现金装在麻袋里背着到处跑,唯一的原因就是:我们相信银行。我们相信银行会忠实地记录我们的每一笔收入和支出,而不会为了一己私利胡乱篡改账目,侵吞我们的财产。

去中心化

银行只是众多中心化机构中的一种,我们平时除了把钱交给银行,也会交给各种其他理财机构、私募或是财富管理公司,比如P2P,但这些对应的风险就比较高了。

比特币是没有实物形式的,我们既看不到叫做比特币的纸钞,也看不到叫做比特币的硬币,它只是一种纯粹的电子货币,所以比特币世界中是没有现金交易的,所有的交易都是账户之间的转移,这和我们的平时用的银行转账是一个道理。我们可以像人民币一样,查询自己账户中比特币的余额,在消费的时候,把比特币从自己的账户中转到商家的账户。

不过,和人民币不一样的是,比特币的账本不是由诸如银行、支付宝这样的第三方机构进行统一保存和管理的,而是分布在每一个使用比特币的用户手中。也就是说,每个人的电脑里都有一本比特币账本,上面记录着全世界所有比特币用户的账目,相当于每个用户都扮演了世界银行的角色。当一笔交易发生的时候,比如小金给小国付了100个比特币,那么不光小金和小国各自手中的账本会记录这一变化,所有其他比特币用户手中的账本也会同样反映这个变化。

很显然,这种机制让所有用户都不必依赖于某一个中心化的机构来记账,既然每个人手中都有一个账本,自然也就不用担心自己账目被机构随意篡改了。所以,比特币的出现解决了我们一开始讲到的去中心化问题,即使不依靠某一个绝对信赖的权威,我们依然可以很好地跟踪自己财产的变化。

公钥和私钥加密

当我们第一次使用比特币钱包时,钱包软件会自动为我们生成一个私钥,并且根据这个私钥来生成公钥。

公钥和私钥就像是一堆孪生兄弟,用私钥加密过的消息只有用公钥才能解密,反过来用公钥加密过的消息也同样只能用私钥解密。

我们可以把我们的钱包想象成一个上了锁的真正的钱包,只有通过私钥才能打开这把锁,拿走里面的钱。所以就算钱包丢了,只要私钥没有丢,别人即使捡到了我们的钱包,也拿不走里面的钱。或者也可以把私钥直接想象成我们银行卡的密码。

如果说私钥是银行卡密码的话,那么公钥就相当于银行卡的卡号了。在我们买好东西,需要付钱的时候,只要知道对方的卡号就能往里面转账了。同样,别人要给我们付钱的时候,我们也需要把自己的卡号告诉别人。

总之就是一句话,私钥是自己的,不可以告诉任何其他人,而公钥是公开的,只有告诉别人,别人才能往你的账户里塞钱。

举例说明

让我们用一个具体的例子来看看比特币的支付体系,从而理会去中心区块链如何应用。还是以小金向小国转100个比特币为例。小金会在自己的比特币钱包中进行一个转账操作,发出一个“从我的账户中向小国转账100个比特币“的指令。这个转账操作其实涉及了两个步骤:

    1)首先钱包会自动用小金的私钥对这个转账指令进行“签名”,这就相当于把上了锁的钱包用钥匙打开,说明我要动用钱包里的100块钱了。为了把钱转给小国,小金会输入小国的比特币钱包地址,这个地址也可以看作是小国的公钥。

    2)接下来,这个指令被发送到了比特比网络之中,包括小国在内的任何人都能够接收到这个指令。大家看到这个指令后,就会用小金的公钥去验证这个指令的有效性。比如说,这个指令是不是真的是小金发出的,小金钱包里的余额够100吗,指令的内容有没有被人篡改过等等。一旦大家确认这个指令没有问题,就会在自己的账本中记上一笔:“小金的账户余额-100,小国的账户余额+100“。

    3)以后,如果小国想要动用这100块钱,也会像小金一样,先用自己的私钥对这100块钱进行“签名”解锁,然后再填上另一个人的公钥,把钱转给对方。

    试想一下,假设有一个坏人小强,他也用小金的公钥解密了小金的转账指令,知道小金要转给小国100个比特币这件事,于是他想把这100个比特币的目标地址从小国的改成他自己的。那么他在修改完这个地址后,还必须得重新用小金的私钥进行签名,才能通过网络中其他人的验证。可是小强并不知道小金的私钥,所以这个办法行不通。那可不可以用试错法呢?比如说,小强不断地修改这个经过小金签名后的指令,每改一次后都用小金的公钥验证看看改成了什么样子,直到把小国的地址改成自己的。我只能说,如果真的要试出来,恐怕一辈子的时间都不够用。所以,公钥加密机制给比特币的转账交易提供了坚实的安全保障。


欢迎交流!