大家好,我是比特王者,每天抱着手机刷视频,也可以抽空学习点东西。也许用不上,就当是饭后的谈资也好。
2018经常会听到的是什么,“区块链”,它到底又是什么呢?我也很感兴趣,所以就把每天学习记录写在了这里。感兴趣的朋友可以一起学习谈论。
说起区块链,我们必须说下比特币还有它的创始人“中本聪”。
2008年11月1日,一个自称中本聪(Satoshi Nakamoto)的人在一个隐秘的密码学评论组上贴出了一篇研讨陈述,陈述了他对电子货币的新设想——中本聪提出:“我相信存在一种不依赖信用的货币,我无法阻止自己去思考它。”比特币就此面世。
中本聪是比特币的创始人,但他是一个人,还是一个团队,至今我们也无从得知。但是他创造的比特币,却让世人举世瞩目。
我们先来看下比特币白皮书(简化版)
1.摘要 :一个纯点对点版本的电子货币允许由一方直接在线支付给另一方而无需一个财务机构。数字签名提供了部分解决方案,但是如果仍然需要一个可信的第三方来防止发生双重支付,还是不能实现电子货币的重要益处。我们提出了一个通过使用点对点网络解决双重支付问题的方案。网络通过将交易的哈希值连进一个不断增长的基于哈希的工作量证明的链中来为交易打上时间戳,形成一个除非修改工作量证明否则不可更改的记录。最长的链不仅是证明时间的证据,也是它来自最大的CPU算力池的证据。只要控制大部分CPU算力的节点不联合起来攻击网络,他们就能形成最长的链,让攻击者的算力赶不上链条生成的速度而来不及实施攻击。网络本身只需要最小的结构。消息是在尽最大努力的基础上广播的,节点可以按照意愿离开和重新加入网络,加入的时候接受最长的工作量证明链最为它们离开时发生的交易的证明。(摘自比特币白皮书)
2. 交易(Transactions)
我们定义,一枚电子货币(an electronic coin)是这样的一串数字签名:每一位所有者通过对前一次交易和下一位拥有者的公钥(Public key) 签署一个随机散列的数字签名,并将这个签名附加在这枚电子货币的末尾,电子货币就发送给了下一位所有者。而收款人通过对签名进行检验,就能够验证该链条的所有者。
举例:目前所有线上交易,都要经过中转。例如支付宝,A把钱转给B,实际是A-支付宝-B。支付宝就是在做信用担保。因为中转,会增大转账成本,还有转账的额度限制。而使用区块链,因为引入密码学证明,就可以不再需要解决信任问题。这种情况下,交易系统中的任意两个个体都能直接进行交易而不需要任何第三方了。
3. 时间戳服务器(Timestamp server)
本解决方案首先提出一个“时间戳服务器”。时间戳服务器通过对以区块(block)形式存在的一组数据实施随机散列而加上时间戳,并将该随机散列进行广播,就像在新闻或世界性新闻组网络(Usenet)的发帖一样[2][3][4][5] 。显然,该时间戳能够证实特定数据必然于某特定时间是的确存在的,因为只有在该时刻存在了才能获取相应的随机散列值。每个时间戳应当将前一个时间戳纳入其随机散列值中,每一个随后的时间戳都对之前的一个时间戳进行增强(reinforcing),这样就形成了一个链条(Chain)。
加入了时间证明,每一个数据都变成独一无二,无法伪造和销毁。
4. 工作量证明(Proof-of-Work)
为了在点对点的基础上构建一组分散化的时间戳服务器,仅仅像报纸或世界性新闻网络组一样工作是不够的,我们还需要一个类似于亚当•柏克(Adam Back)提出的哈希现金(Hashcash) 。在进行随机散列运算时,工作量证明机制引入了对某一个特定值的扫描工作,比方说SHA-256下,随机散列值以一个或多个0开始。那么随着0的数目的上升, 找到这个解所需要的工作量将呈指数增长,而对结果进行检验则仅需要一次随机散列运算。我们在区块中补增一个随机数(Nonce),这个随机数要使得该给定区块的随机散列值出现了所需的那么多个0。我们通过反复尝试来找到这个随机数,直到找到为止,这样我们就构建了一个工作量证明机制。只要该CPU耗费的工作量能够满足该工作量证明机制,那么除非重新完成相当的工作量,该区块的信息就不可更改。由于之后的区块是链接在该区块之后的,所以想要更改该区块中的信息,就还需要重新完成之后所有区块的全部工作量。
5. 网络
1) 新的交易向全网进行广播;
2) 每一个节点都将收到的交易信息纳入一个区块中;
3) 每个节点都尝试在自己的区块中找到一个具有足够难度的工作量证明;
4) 当一个节点找到了一个工作量证明,它就向全网进行广播;
5) 当且仅当包含在该区块中的所有交易都是有效的且之前未存在过的,其他节点才认同该区块的有效性;
6) 其他节点表示他们接受该区块,而表示接受的方法,则是在跟随该区块的末尾,制造新的区块以延长该链条,而将被接受区块的随机散列值视为先于新区快的随机散列值。
总结,今天学习的个人理解:比特币是一个电子支付系统, 是一个基于密码学原理代替第三方数据库。就是通过一个个电脑(节点)分布式存储所有的交易信息,形成一个去中心化的、完全公开透明的、不可篡改的账本。
再通俗点,我给你转100W(先有1000块再说),知道你全网唯一的转账地址,通过区块链,直接点对点转账。所有过程都会被记录,而且无法篡改,可以随时调取这段记录。
每天学习一点点,积累就会前进一大步。
感兴趣的朋友可以关注下,一起谈论学习。