看了那么多区块链文章,听了太多区块链讲座,结果不少人还是懵逼状态,但是今天这篇文章,绝对会让你的思路立刻清晰起来。
如何确定是否拥有一枚电子货币?
这个问题也是中本聪遇到的***个问题,而他***的解决方案是利用非对称密码学。
什么是非对称密码学?
其实,最初的密码是对称的,就像一把锁,上锁和解锁都是同一把钥匙,但是不安全。到70年代时,非对称密码学就发展起来了,这种密码学有两个钥匙,一个是私钥,另一个是公钥,它们之间有某种数学关联,有私钥就能计算出公钥;但有公钥,并不能算出私钥。
虚拟货币就是通过这个算法来解决所有权的问题,开始你可以随机生成一个私钥,然后由这个私钥生成一个公钥,公钥再经过确定性的格式变化,***产生一个地址。
所以,证明这是自己资产的唯一方法就是要有这个地址的私钥,当你想把地址上面的资产转走时,必须用私钥做数据签名,简单理解就是要盖个章或者按个手印。
怎么解决双重支付的问题?
双重支付是什么?
简单来说,就是用一个数字货币重复购买不同的东西。
因为在传统的贸易中,一手交钱一手交货,是很公平的。但是在去中心化的区块链中,所有的支付方式都是点对点,而电子货币就是一段数据,如果某个人拿这个数据买了杯子,然后他用同样的数据又去买水果,这时就出现了双重支付。
该如何解决呢?
中本聪的方法就是分布式记账。
比如屋子里有10个人,一开始,每个人手里都拿着1000块钱。当小胡给小王转了10块钱后,同时又把这个行为告诉所有人,那么每个人都会记下来,小胡手里只有990块钱,小王有1010块钱;如果下次小胡再告诉大家,他又给小王转了1000块钱,所有人都会拒绝记录这笔交易,为什么?因为他们都知道,小胡手里只有990块钱。
区块链也一样,每个人都可以记账,每个人都非常清楚地知道每个账号有多少钱,来自哪里,所以当发生交易的时候,就可以去验证。
但是,这时又出现一个问题,因为交易的顺序不同,每个人的信息也不同,如果所有人都来记账,会变得非常混乱。那到底该由谁来记账?为什么是你而不是我?
其实,这中间就存在一个竞争关系,所有人都能记帐本,但为了实现统一,一定要选出来记得***的那个。
那么如何区分出这个数据块是***的呢?
中本聪引入了一个算力,一个区块是否合格,就看它能否达到一定的难度,如果达到了,才能算合格的区块。
那么这个难度是由什么来界定的?
实际上跟哈西算法有关。
简单来说,就像是抛硬币,当连续出现正面的硬币达到某一个值,就算合格。如果是一枚硬币,正面朝上的概率是1/2;如果是两枚硬币,都是正面的概率是1/4;如果三枚的话,概率就更低了。如果比特币要你同时抛256枚,每一枚都有编号,要求前200枚全部都是正面朝上,你想想这得抛多少次?是非常巨大的工作量,所以找一个合格的区块也就变得越来越难。
我们经常会说,现在挖矿做的都是无用功,实际上他们做的就是这种哈希运算。
当你能找到了一个合格的区块,那意味着什么?一定是做了很多运算,所以这就是大家经常听到的工作量证明(POW)。
在现实生活中有很多这样的场景,比如大学读了四年,***拿到毕业证书,这个证书就是工作量证明,说明你有了四年的努力,虽然没办法跟踪证明这个过程,但是看到证书,就知道读完了大学。
什么叫共识机制?
实际上,整个区块链系统就是一套共识机制。
比如刚才说的POW(工作量证明),就是一种共识机制,所有人都约好了,只要拿到这个数据块,哈希值满足一定难度,那么它就是合格的。
除了POW,POS也是一套共识机制,它的基本核心理念,不像POW比拼算力,而是看系统里谁拥有的虚拟货币多。拥有越多,锻造区块的概率也就越大,维护这套系统的责任也就越重。
之所以会有POS的出现,是因为POW在整个社区里,引起广泛讨论,其中指责最多的就是做了太多无用功,浪费大量能源。在这个基础上,有人不断探索其他共识机制,到2012年的时候,POS就出来了。
构建一个区块,POW对所有人来说,难度一样;但是POS是一种权益或者利益模式,到目前为止,有很多的区块链用了这种机制。但这两种机制,到底谁优谁劣,目前整个社区还在讨论之中。
区块链资产的安全存储
在非对称密码学中,私钥是非常重要的,如果你的私钥被别人知道,那么地址上的资产也就不是你的了。
这个行业发展到现在,丢币行为时有发生,尤其是很多大型交易平台,非常多的币都被偷了。
但不管什么情况,最根本原因就是私钥被别人获取了。所以,目前最核心的问题,是如何来管理私钥。
现在,有很多钱包可以用来管理私钥,大体上可以分为热钱包和冷钱包。所谓的热钱包,就是接触互联网的钱包;而冷钱包则不会接触互联网。
到目前为止,大家已经有一个共识,冷钱包存储私钥是***的选择,但是不同方式,也存在不同弊端。
比如写在纸上,就是纸钱包,这种方式确实比较安全,但用的时候非常麻烦;有的人把私钥存在电脑上,再拔掉网线,但是只要这台电脑联网,瞬间就变成热钱包,还是很危险。
这种情况下,该如何解决呢?
回答这个问题之前,我们先来看看在区块链中,一笔交易的发生过程。
-
***步:生成地址。生成一个私钥,然后获得一个地址。
-
第二步:接收。有了地址,任何人就可以给你转币。
-
第三步:查询。可以在区块链上查询,谁给你发的币,数量是多少。
-
第四步:构建交易。当你要转走币的时候,要构建交易,指定发给谁,发多少。
-
第五步:签名。用你的私钥进行数字签名。
-
第六步:广播。把签名之后的数据,广播到区块链中,等待矿工验证,一旦验证通过,纳入某个区块也就确认了。
所以,无论是一代还是二代区块链,上面这几步都应该有。
同时,大家可以发现一个特点,上面的6步,只有其中的2步需要私钥,一是通过私钥获得地址,另外就是签名。所以,只有保证这两步的安全,整个地址就是安全的。
学霸他们就针对这个特点,设计了库神钱包,这是一个独立的硬件,也是一个冷钱包。它唯一的输入设备就是摄像头,输出设备是屏幕,而且绝对不联网。
很多人会问,不联网的话,是如何发挥作用的呢?
学霸他们的理念,就是把需要私钥的地方,放在一个独特的硬件里,也就是冷端;其他功能放在手机的一个APP里,叫热端。
那么冷端和热端是如何交互的的?
目前他们用的是二维码,因为二维码是图片,是一种非电磁波信号,是不能被监听的,绝对不会用wifi、蓝牙,这样就保证了私钥的安全,而且使用起来还很便捷。
所以,在安全存储这一环节,冷储存是***的选择,尤其是对于拥有大量币的人。
还有一种情况是,有人拥有很多区块链资产,是不是每一种资产都要一个钱包?每一个链都要一个密码?每个地址都要一个密钥?
学霸说,不是的,现在的钱包已经可以存放多资产。只要两个密码就够了,一个叫种子密码,一个叫支付密码。
开始的时候,可以随机地让用户生成一个种子密码,当有了种子密码之后,要求用户再设置一个支付密码,这个密码必须记在脑子里,然后由这两个密码通过确定性的算法,就能算出来1号地址的私钥,2号地址的私钥……,所以,通过两个密码就可以管理很多私钥,进而管理很多地址。
通过上面对区块链知识的讲解,大家很可能明白一个道理,什么事情都是双刃剑,区块链技术让你的私有财产变得神圣不可侵犯的同时,对人们的要求也变的越来越高。