一个人的价值,应该看他贡献什么,而不应当看他取得什么。 ——<阿尔伯特·爱因斯坦>
作者:Ashish Lahoti
译者:cl9000
来源:https://codingnconcepts.com/post/blockchain-explained/
我们大多数人认为区块链是比特币背后的技术。虽然这是它最初的目的,但区块链有更多的功能……
什么是区块链?
区块链是数字的、分布式的、不可变的、可信的账本。
我们一个一个地理解每一个术语:
区块链是数字账本 Blockchain is Digital Ledger
你对分类账簿很熟悉,它只不过是记录金融交易的本子。类似地,区块链是一个数字账本,它可以通过编程来记录事情,这些事情不仅限于金融交易,还可以是任何事情,从政府记录到土地所有权,甚至是购买订单。
分类帐簿中的每一行记录可以假定为区块链中的一块,它们按时间顺序连接在一起,形成一块链。
您在财务分类帐簿上为以前交易中的任何更改写一个新记录。类似地,如果您想要更改特定块中的记录,您不需要重写它。相反,更改被记录在一个新的块中。
区块链是分布式账本 Blockchain is Distributed Ledger
让我们假设我与我的朋友们共享一个账本,其中每个人都记录了他们共同的支出。假设,我借了100美元给我的朋友 Ben 并记录在了共享的账本上。现在我的朋友 Charlie 和 David 知道了我借给 Ben 的确切数额他们基本上认可了这笔交易并做了记录。下个月,Ben 问我最初借给他多少钱,我们可以很容易地找到我的朋友 Charlie 或 David,他们有这笔交易的记录。当你结识新朋友时,他们也可以加入你的共享账簿。
与共享分类帐类似,任何人都可以选择将自己的计算机连接到区块链网络作为节点。这样一来,他们的电脑就会收到区块链的副本,每当有新的区块被添加时,区块链就会自动更新,有点像Facebook 的新闻 Feed,每当有新的状态被发布时,它就会实时更新。
从这个意义上讲,区块链是分布式的,数据是共享的。
优势
- 由于数据是共享的,并且每个节点都有事务的副本,所以不需要协调。
- 高可用性,因为网络中有数千个分布式节点,即使有几个节点宕机也没关系。
区块链是不可变分类账簿 Blockchain is Immutable Ledger
让我们看看组成区块链的各个部分,以理解它的不变性
-
事务(transaction): 这是创建块时发生的事务的详细信息
-
哈希(hash): 这是代表区块中交易的数字指纹,是完全唯一的。如果事务细节有任何变化,散列也会发生变化。一般来说,它是通过对交易细节应用某种加密算法生成的字母数字序列
-
前哈希(previousHash): 这是链中的前一个块的散列值。
我们看看下面区块链的例子。其中交易有发送方、接收方和金额的详细信息。为简单起见,我们只是通过结合事务细节来生成哈希,即。
1 | hash = sender + receiver + amount |
请注意,区块1
是我们区块链的第一个区块,也被称为起源区块,没有 preoushash
值。
1 | Block 1 |
假设黑客试图将 区块2
中的交易金额从200美元编辑为999美元。一旦他们编辑了交易的金额,区块的哈希值就会改变。链中的下一个 区块3
将仍然包含旧的 preoushash
,黑客需要更新该区块以掩盖他们的踪迹。然而,这样做将改变该块的散列。然后是下一个,以此类推。
1 | Block 2 (Tampered Amount) |
为了改变单个区块,黑客将需要改变区块链上的每一个区块。重新计算所有这些散列将需要巨大且难以置信的计算能力。换句话说,一旦一个块被添加到区块链中,它就变得非常难以编辑,也不可能被删除。
从这个意义上说,区块链是不可变的,是防篡改的。
区块链是可信分类帐 Blockchain is Trusted Ledger
当你把钱转账给某人时,你需要通过一个调解员,通常是银行。现在所有的交易记录都集中在银行内部。黑客篡改记录的机会也更多了。
此外,当你转移像比特币这样的加密货币时,它是由区块链技术支持的,没有中介参与,基本上所有的节点,在区块链网络中有数百万的加密货币,都是中介,有他们自己的记录副本。如果黑客想篡改任何记录,他们需要在所有的百万份记录中进行。
让我们对此有更多的了解,为了能够在区块链中添加一个新块,节点必须解决一个非常复杂的数学问题,并且需要提供所谓的工作证明。从计算(时间)和电力消耗(金钱)的角度来看,解决谜题是密集的,这既需要时间,也需要金钱。
正如我们之前看到的,黑客需要篡改所有的数百万份拷贝。如果向区块链添加一个块需要花费如此多的时间和金钱,您可以想象篡改所有数百万份拷贝会是什么样子。这当然不值得付出努力,更有可能是不可能的。
从这个意义上说,区块链技术是值得信任的。
区块链的用例
1. 比特币 Bitcoin
大多数加密货币-比特币,Dash,Ethereum(以太坊),Litecoin,Ripple跟随公开的区块链。公共区块链向所有人开放,以查看和访问,也称为无许可区块链,因为您不需要授权。
比特币协议 建立在区块链之上。比特币以数字货币的形式推出,其匿名创造者中本聪(Satoshi Nakamoto)称其为 “一种全新的电子现金系统,完全是点对点的,没有可信的第三方。”
比特币是如何运作的?
全世界都有这样的人,他们拥有比特币。世界各地可能有数百万人至少拥有比特币的一部分。假设这数百万人中的一个想把比特币花在食品杂货上。这就是区块链的作用所在。
-
当一个人用比特币为另一个人支付商品时,本质上一笔交易就启动了。这种交易包含所有必要的信息,如发送方和接收方,但不包含实际的姓名,而是使用类似于用户名的唯一 数字签名 以及金额、时间戳等。
1
2
3
4
5
6
7
8
9
10Bitcoin Block
transaction: {
type: BITCOIN
sender: g4h4g5jnsm6bd4b8d0q6d8v4zx5k2la8d9n4c6f8,
receiver: m1n2h3b4b5v6c7xz89sld8ff9d47d9dft47mkd,
amount: 25
timestamp: dd-mm-yyyy hh:mm:sss
}
hash: ???????
previousHash: b4h84nv46sn29n4b5h6j7k8l2l3nx6b3n8l38xn40z54n2bv68c -
该交易加入了比特币网络上的其他交易。
比特币旷工
比特币区块链是一个公开的区块链,这意味着任何人都可以注册自己成为比特币矿工之一。比特币矿工是比特币区块链网络中的节点。网络中的所有节点本质上都拥有所有事务的副本,任何时候进行新的事务时,它们都将收到新块的通知。
- 网络中的所有比特币矿工开始收集这些交易,并通过查看区块链到目前为止发生的所有交易进行验证,这些交易也是有效的。
- 每个比特币矿工尝试解决加密哈希难题,也被称为工作证明算法。现在,这是公共区块链和无许可区块链使用的共识算法,本质上,这是他们能够就下一个区块达成共识的方式。
- 一旦一个比特币矿工解决了这个难题,本质上意味着生成了下一个块的哈希值,他们要做的就是将该块的哈希值广播给网络中的所有其他节点。所有节点验证哈希的真实性,- 一旦所有节点都通过验证,它就作为一个新块添加到网络中的所有节点中。
比特币矿工也因为他们在解决这个谜题上的工作而获得比特币奖励。解决谜题也被称为挖矿
如果其中一个比特币矿工是黑客呢?
比特币矿工是比特币网络中的一个节点,如果比特币矿工是一个黑客,他们操纵自己的记录副本,那么比特币协议通过一个称为共识的过程阻止这种被操纵的区块链的存在。当存在多个不同的区块链副本时,共识协议将采用可用的最长链。
为什么加密哈希谜题耗时?
每个节点都尝试通过SHA-256算法从事务细节中生成唯一的哈希值来解决哈希难题,这可能会花费更少的时间。但是一些协议,比如比特币协议,限制哈希生成时必须有32个前导0。生成带有前导或尾部零的散列要复杂得多。类似地,生成带有10个前导0的散列比使用5个前导0的散列计算量更大。
现在您会说事务细节已经固定,它将根据这些细节生成散列。我们如何生成一个前缀为0的哈希?因为这个块有一个叫做nonce的特殊字段,它也被包含在生成哈希表中。每个节点都不断地尝试修改nonce值,直到找到具有指定前导零的散列。
1 | SHA-256 ( nonce + transaction details ) = 00000h3bdju7vb3n9s73nf92n1b38d |
2. 私有区块链 Private Blockchain
区块链也可以用于供应链、银行和政府部门等业务。它们大多是私有区块链,可以被一组经过选择的授权用户访问,如您的公司、一组银行或政府机构。这也被称为许可区块链。
私有区块链也使用共识算法,但由于节点数量有限,它们不像公共区块链那么复杂。
在被许可的区块链中,节点是受信任的,所以它们通常彼此认识。此外,它们并不总是代表用户,而是代表整个组织。所以,在这种情况下,我们的隐私是被许可的区块链的主要租户之一,这是非常重要的。
3.供应链 Supply Chain
举个例子,假设有一个零售商以1000美元购买了25件商品。现在,制造商收到零售商的订单,并说:“好的,让我们批准”。让我们确保仓库里有足够的库存,并与货运公司合作。于是,他们去找船运公司,他们说,“好吧,我们把这100件商品运出去吧”他们要花100美元来装运。
1 | Block 1 |
这里有一些隐私问题,
- 制造商应该知道关于零售商和运输的所有信息
- 零售商不必知道运输成本
- 发货不一定要知道零售商花了多少钱
- 其他在区块链的零售商不应该知道这个零售商和装运
因此在本例中,所有的组织都是区块链的一部分,只有作为交易一部分的零售商才能
看到该信息。因此,隐私必须是区块链的一部分,以便企业能够控制谁可以看到特定的交易细节。
4. 智能合同 Smart Contracts
区块链技术最成功的商业应用之一是 智能合同。本质上,这是运行在区块链上的代码,只要满足某些条件,它们就会自动执行。
在之前的供应链例子中,每当零售商向制造商下订单购买一定量的商品时可能会有一个生产代理反复检查订单是否包含所有必要信息,然后,他们可能会去航运代理,以确保他们可以支付装运,如果仓库有正确的货物数量。然后他们会下装运订单。现在想象一下,如果我们可以自动化整个过程。
这就是你可以用 智能合同 做的事情,本质上是确保满足所有必要信息的代码,它会自动创建发货记录。如果不满足其中任何一个条件,它可以自动向零售商发放退款。这加快了整个过程。
房地产 Real Estate
智能合约可以自动处理业权契约,方便交易,甚至通过智能钥匙授予对物业的访问权。该技术可以简化房产销售,节省买家的时间和金钱,而不需要任何中间人或房地产代理。
5. 跨境支付 Cross Border Payments
在其他国家工作的人通常会从汇款机构把钱寄回家,这需要几个小时,有时几天,而且他们还要支付一大笔费用。区块链技术将消除这些中介机构,缩短转会费和转会费的时间。
6. 在线投票 Online Voting
在许多国家,选民必须亲自到投票站投票。人们一直担心人工投票和投票机的真实性。许多国家也在网上进行投票,但他们也担心安全和欺诈。区块链可以成功地消除这些担忧,因为它将提供一个清楚的投票记录。区块链的防篡改功能使其难以破解支持区块链的投票系统。有了区块链,选民可以在舒适的家中投票。居住在国外的公民也可以投票。这可能会导致投票率大幅上升。
西弗吉尼亚州使用区块链技术实现了一种安全的移动投票应用程序,允许选民以电子方式接收、投票和返还选票,这是美国历史上2018年的第一个项目。
公司致力于在线区块链投票解决方案-
- FollowMyVote,
- Voatz, https://voatz.com/
- Scytl, https://www.scytl.com/en/
- Clear Ballot, https://clearballot.com/
- Polyas, https://www.polyas.com/
- Intelivote, http://www.intelivote.com/
- SMARTMATIC, https://www.smartmatic.com/
- electionrunner, https://electionrunner.com/
7. 银行间支付 Inter-bank Payments
新加坡金融管理局(MAS)宣布了Ubin-https://www.mas.gov.sg/schemes-and-initiatives/Project-Ubin项目,该项目使用区块链和分布式账本技术(DLT)进行银行间支付,与美国银行美林、瑞士信贷、星展银行、汇丰银行、摩根大通、三菱UFJ金融集团、华侨银行、新加坡交易所、渣打银行、和大华银行。
8. 身份管理 Identity Management
一个人的身份包括基本信息(姓名、年龄、性别、国籍、地址、联系方式等)和身份证明文件,如出生证明、驾驶执照、选民卡和唯一身份证。这些细节都可以存储在分布式的、安全的、不可变的区块链记录中。
好处
- 分布式身份管理系统可以被全球范围内的许多服务同时使用。
- 银行等金融服务可以使用该功能验证客户身份,以确保KYC(了解客户)的遵从性。
- 像学校、大学这样的教育服务机构可以用它为学生提供学术证书。这样就解决了验证证书真实性的问题,避免了假证书的欺诈。
- 政府机构可以用它来保存出生证明,结婚证,土地权证,以避免腐败。
总结 Summary
我希望读完这篇文章后,你对区块链技术和它的实际应用有一个基本的了解。我会根据我的发现继续更新这篇文章。感谢你的阅读。
如果对一些区块链编码感兴趣,请阅读文章——使用JavaScript实现区块链 - https://codingnconcepts.com/javascript/blockchain-explained-using-javascript/
参考
关注【公众号】,了解更多。
关注【公众号】,了解更多。
关注【公众号】,了解更多。
赞赏一下 坚持原创技术分享,您的支持将鼓励我继续创作!