chokcoco / cnblogsArticle

自己博客园一些写得比较好的文章移植,欢迎订阅。
482 stars 49 forks source link

你所不知道的区块链及疯狂的虚拟货币 #19

Open chokcoco opened 6 years ago

chokcoco commented 6 years ago

最近有关区块链的文章越来越多,发现现在很多人对区块链,比特币存在很多理解误差,遂打算好好全面的捋一捋相关知识。感兴趣可以继续读下去,可能会涉及到:

比特币是由一系列概念和技术作为基础构建的数字货币生态系统。

先介绍一些相关概念:

区块链与比特币

大部分人提及到区块链,第一反应肯定是比特币,只不过,区块链发展到现在,经历了区块链1.0 到 3.0 。甚至已经有打着区块链4.0口号的区块链应用出现。

区块链早已不再是比特币这么简单,我们通常习惯将不是比特币的其他区块链币种统称为山寨币,那么现在一共有多少种山寨币呢?

不完全统计,上非小号可以查询到的山寨币,截止至本文撰写的时候,已经达到了1900+ 多种。并且,这个数字还在以日为单位飞涨中。

到底何为区块链

那么,到底何为区块链呢?

区块链是一种不可篡改的、去中心化的、共享的数字化分布式账本,用于记录公有或私有对等网络中的交易。账本分发给网络中的所有成员节点,在通过哈希密码算法链接的区块的顺序链中,永久记录网络中的对等节点之间发生的资产交易的历史记录。

所有经过确认和证明的交易都从链的开头一直链接到最新的区块,因此得名区块链。区块链可以充当单一事实来源,而且区块链网络中的成员只能查看与他们相关的交易。

当然,区块链还有一些其他特定,譬如匿名性全球性

不可篡改

不可篡改这个很好理解,区块链记录的信息无法被篡改。对于传统中心化的服务来说,我们为客户提供服务,每个应用有自己的服务器,我们的信息存储在服务器的数据库上,要篡改我们的信息只需要修改数据库就好了。

那么区块链是如何做到不可篡改的?而且是 100% 无法篡改么?

不是,区块链的无法篡改,只是广义上的无法篡改。

一旦信息经过验证并添加至区块链,就会在区块的每一个节点永久的存储起来,除非能够同时控制住系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高。

所谓不可篡改也不是绝对的是因为,只要在从历史某一区块开始新开一个分支,并取得全网拥护即可。案例就是以太坊开发团队的以太币被黑客盗走后,为了挽回损失,团队新开了一个分支叫以太坊,被黑客盗币的那个分支现在叫以太坊经典。不过这件事也恰恰强调了区块链不可篡改的特性,毕竟以太坊开发团队并不能够在以太坊经典将黑客的以太币划拨到自己账户上。

51%攻击

所谓51%攻击,就是利用一些虚拟区块链货币使用算力作为竞争条件的特点,使用算力优势撤销自己已经发生的付款交易。如果有人掌握了50%以上的算力,他能够比其他人更快地找到开采区块需要的那个随机数,因此他实际上拥有了绝对那个区块的有效权利。

去中心化

由于使用分布式核算和存储,不存在中心化的硬件或管理机构,任意节点的权利和义务都是均等的,系统中的数据块由整个系统中具有维护功能的节点来共同维护。

过去几年里,人们对区块链的最大误解可能就是对“去中心化”这个词的理解,按字面含义,去中心化就是节点的分散,数据的分散,矿工的分散,开发者的分散……甚至有人认为,矿工的分散(人人都能用个人电脑挖矿)是中本聪的初心,中本聪支持“一CPU一票”,即每个用户通过个人电脑、手机就能挖矿。还有人试图通过算法的改进,阻抗ASIC芯片的研发,避免算力的中心化,当然,这些努力都是掩耳盗铃,算法只能延缓专业化挖矿芯片的诞生,而不是阻止。

每个人都能通过自己的个人电脑、手机挖矿,这看起来是更公平、更去中心化的理想社会,可为什么区块链的安全性反而降低了呢?原因很简单,去中心化并不是一个描述状态的词,而是一个描述过程的词,状态的去中心化并不意味着过程的去中心化,僵尸网络的节点在状态上是分散的,但在行为模式上具有高度一致性。去中心化的本意是指,每个人参与共识的自由度。他有参与的权力,他也有退出的权力。在代码开源、信息对称的前提下,参与和决策的自由度,即意味着公平。

分布式账本

分布式账本是一种在网络成员之间共享、复制和同步的数据库。分布式账本记录网络参与者之间的交易,比如资产或数据的交换。

网络中的参与者根据共识原则来制约和协商对账本中的记录的更新。没有中间的第三方仲裁机构(比如金融机构或票据交换所)的参与。

智能合约

“智能合约是一个在计算机系统上,当一定条件被满足的情况下,可以被自动执行的合约。”

智能合约看上去就是一段计算机执行程序,满足可准确自动执行即可,那么为什么用传统的技术为何很难实现,而需要区块链技术等新技术呢?

  1. 是数据无法删除、修改,只能新增,保证了历史的可追溯,同时作恶的成本将很高,因为其作恶行为将被永远记录;
  2. 是去中心化,避免了中心化因素的影响。

基于区块链技术的智能合约不仅可以发挥智能合约在成本效率方面的优势,而且可以避免恶意行为对合约正常执行的干扰。将智能合约以数字化的形式写入区块链中,由区块链技术的特性保障存储、读取、执行整个过程透明可跟踪、不可攥改。同时,由区块链自带的共识算法构建出一套状态机系统,使得智能合约能够高效地运行。

基于区块链的智能合约构建及执行分为如下几步:

1、多方用户共同参与制定一份智能合约;

2、合约通过P2P网络扩散并存入区块链;

3、区块链构建的智能合约自动执行。

智能合约场景

智能合约一定要在区块链技术之上实现吗?答案是否定的。

举个大家都熟悉的例子,就是信用卡的自动还款服务,我们就可以把它理解成一种智能合约。在具体的时间(信用卡还款日),当还款条件被满足(储蓄卡余额比信用卡还款金额要多的情况下),计算机系统会自动完成这笔交易(用最初设定的储蓄卡为信用卡还款)。然而这些服务仍是运行在传统的计算机系统之上,而这些系统并没有利用区块链技术。