


























许多人对区块链的认识止步比特币一类的虚拟货币,但实际上区块链的使用的场景除此之外还有很多。这篇文章会介绍 基础的区块链原理 、区块链的特点 、 区块链能解决的问题,以及目前主流应用(包括企业应用)。无需技术背景也可以读懂。
还是得从历史开始说起。很多人以为区块链 (Blockchain) 是由中本聪(Satoshi Nakamoto) 提出的。其实不是。
1982 年,美国的密码学家 David Chaum 就提出了区块链,并推乎了产品 e-cash, 想要在互不信任团体 (Group) 中,建立一套可以使他们相互信任的计算机系统,并于1989年创建了DigiCash公司[1],这套系统被一些小银行用于小额支付系统,但依然需要中心机构的协助,公司于1998年破产[2]。
在2008年之前,区块链技术虽然在进步,但都遇见了一些无法解决的难题,直到 2008年,一个署名为中本聪的人(或团体),发了篇论文,发明了比特币(bitcoin)。解决了之前没解决诸多问题。 2009 年第一个比特币公链上线。
过去,交易流水帐(ledger)都存储在机构的中心数据库上的。比如你在银行的交易流水是存在银行数据库上,你在支付宝的交易流水是存在支付宝的中心数据库上。这些数据是中心化的,就是说这个机构,有所有的权限去修改数据库,比如修改某个人的余额,或者冻结某个账户。
想要搞清楚区块链,一定要先知道中心化的数据库是如何记账的。
举个例子:
假设有一个不诚信的支付平台叫做 EvilPay,他们目前正在使用的是一款中心化的数据库。所有的用户的信息,交易记录,余额都存在他们的数据库里。
假设 Evilpay 里有两个账户和 A,B。在2022年1月1日,他们的余额都是10元。
2022年1月2日,发生了一笔交易,B向A转账10元。
对这个交易 Evilpay 的数据库里是这个样子的:
| 交易ID | 时间 | 账户ID | 交易对象ID | 交易金额 | 余额 | 备注 |
|---|---|---|---|---|---|---|
| 1 | 2022/04/01 | B | A | -5 | 5 | 向A转账 |
| 2 | 2022/04/01 | A | B | +5 | 15 | 接受B的转账 |
第一行表示,B向A转账5元,B的余额为5.
第二行表示,A收到了B的转账,A的余额为15.
以上交易流水都存储在 Evilpay 的中心数据库里。即 Evilpay 拥有全部的权限对数据库的权限,也就是说他们可以任意的修改数据库数据。
假设此时又有一个账户C,是Evilpay的秘密账户。Evilpay 想要窃取你的钱,他会怎么做?有两种方法
所以,作为Evilpay 的客户,我们当然不希望平台可以偷走我们的钱,此时我们想要解决的两个问题是:
比特币可以解决这两个问题。
如下是区块链的数据结构

每一个区块(block)至少存有三个信息,前一个区块的Hash值,本区块的Hash值,以及交易记录。
这里需要一点基础的密码学知识。
Hash 最通俗的解释是一个指纹。世界上没有任何两个人拥有一摸一样的指纹,我们可以说知道了一个人的指纹,就能够知道这个人是谁。所以每个block里存储的信息,可以理解成 [前一个区块的指纹,本区块的指纹,和交易流水]。
假如,黑客想要偷偷篡改区块2上的一个交易,那么区块2的hash就会改变。那么区块3就找不到区块2了,因为区块2的hash已经改变了。所以,黑客破坏一个区块,就等于破坏了那个区块之后的所有区块。
那黑客有可能篡改那个区块后的所有区块,达到自己的目的吗?答案是,有可能。在中心化的数据库中时可能的,但是在去中心化的区块链中:几乎不可能。
区块链是分布式的,世界各地有上万个节点,每个节点里运行着完整的区块链数据库,暂时把这些人理解成矿工。
假设有一笔交易,B向A转账了5元。他需要向全世界所有的节点广播,告诉大家我像A转账了5元。如果有一个幸运的矿工接收到这个信息,并且把这笔交易打包在到当前的区块中。然后这个区块之后,又长出了几个区块(通常认为是5个),我们就可以认为这币交易被确认了。(为什么要长出来几个区块才能确认,这里涉及到更进阶的知识,以后有机会再讲)
首先,区块链是少数服从多数的。如果黑客只是篡改了自己节点的数据库,别的节点发现黑客的节点跟自己和大多数的节点的都不一样,就会判定这个节点是不诚实的,这个节点也就被踢出了游戏。
所以,黑客想要篡改一条记录,必须攻击超过50%以上的节点。但,这几乎是不可能的。
区块链的应用只是虚拟货币吗?还有没有别的应用呢?有的,比如现在很火热的数字藏品(NFT),De-fi(去中心化金融)和 DAO(去中心化自治组织),除此之外还可以应用在如供应链,食品追溯,慈善等等。这些应用都是在智能合约的基础上实现的。
智能合约简单的讲就是写在每一笔交易上的一段代码,这段代码是用来描述这笔交易是做什么的。比如说A向B转账,在智能合约里就得写上A transfer 1.0 to B。 只有这样,每个节点才能理解这笔交易。
比特币时代,智能合约是很简陋的,仅支持简单的的操作,比如转帐。直到2013年,年仅20岁,出生在俄罗斯的 Nick Szabo发明了以太坊。以太坊支持图灵完备的编程语言,给区块链提供了更多的玩法。
举个例子:
买卖双方,是存在不信任的。尤其是线上购物。比如,在某宝买东西付款之后,支付宝会临时为我们托管资金,等买家收到货确认无误,资金才会转入卖家账户。这里例子里,信用良好的支付宝充当了一个信任中介。买卖双方不需要相信对方,只要相信支付宝,就可以完成这笔交易。
智能合约就可以充当这个中介。只用把上述的逻辑规则改成代码写进智能合约,区块链按照代码严格的运行。可以过去你相信支付宝,现在你可以相信代码。
2015年年末, Linux Foundation 开启了 Hyperledger 项目,想让区块链满足现代企业运营需求。 先去区分几个的概念
区块链的有两个特点是不可篡改和公开透明。那么他可以解决不同团体之间的信任问题,和数据孤岛的问题。以下是几个案例
不是所有的场景,都适合使用区块链解决。需要考虑一下几点:
Hey,我是 Alex Teng。欢迎关注我的公众号「亚历山大疼」。
[1]wikipedia: https://en.wikipedia.org/wiki/David_Chaum
[2]Guide to Blockchain: https://yeasy.gitbook.io/blockchain_guide/01_history/bitcoin
[3]What is blockchain?: https://www.oracle.com/blockchain/what-is-blockchain/
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。