没有银行的银行业务:区块链简单解释
比特币和区块链
比特币是一种数字去中心化的货币,它改变了金融。因为它是去中心化的,没有政府发行比特币,也没有银行管理账户。
比特币通常用于投资,但对于农民工而言,这种生活正在发生变化。
有超过2.5亿国际移民将钱转移回家乡。这被称为汇款。汇款问题是费用可能高达10%,而且需要数周时间才能到达目的地。比特币允许移民工人几乎不收取任何费用向家人汇款,转账时间不到一小时。
比特币允许近乎即时的交易,几乎不收费
汇款只是区块链(比特币的基础技术)的一种可能应用。要了解Blockchain还有什么可能,本文将通过向您展示如何设计自己的去中心化货币来解释它的工作原理。
Ledgers:跟踪谁欠谁
为什么去中心化货币这么难?
让我们来看看没有银行或政府的货币的基本例子,以及它的一些问题。
如果你和你的朋友频繁地换钱,比如为对方盖上晚餐账单,那么一直交易所现金会很不方便。因此,您可能会跟踪谁在分类账上的欠款(金融交易清单)。
分类帐可以位于任何人都可以查看和添加的网站上。
如果Bezos为Elon的自由贸易咖啡支付14美元,那么他们中的任何一个都可以将“Elon向Bezos支付14美元”添加到分类账中。
分类帐跟踪交易
在月底,你们都要向欠你们的人支付现金。
到目前为止我们的分类帐规则:
- 任何人都可以添加交易
- 任何人都可以查看分类帐
- 在月底结清现金
数字签名:控制自己的钱
我们的分类账协议存在很大问题。
“任何人都可以添加一条线”意味着即使Bezos从未同意过,Elon可以添加“Bezos支付Elon 420美元”。
为了解决这个问题,我们可以说无论是谁汇款都必须将他们的数字签名添加到交易中。
乍一看,似乎数字签名不起作用。人们不能只复制你的签名吗?
这是密码学的第一位出现的地方。每个人都会生成公钥/私钥对。顾名思义,每个人都知道你的公钥,但只有你知道你的私钥。
无论您签署什么文件,手写签名看起来都一样。数字签名要强得多。它们是一长串的0和1,并且稍微改变消息将完全改变签名。
没有深入数学,签署和验证交易非常简单。您需要知道的是功能是什么。
一个函数是一个操作,它接受一个输入(一只悲伤的猫)做某事(宠物它)然后有一个输出(一个快乐的猫)。
要对邮件进行签名,您可以为邮件和密钥提供“签名功能”,并输出数字签名。由于签名取决于您的密钥,因此只有您可以创建该签名。并且因为签名也取决于消息,所以没有人可以复制您的签名并将其伪造在另一条消息上。
要验证消息,请为消息提供“验证功能”,消息上的签名以及签名者的公钥。然后,此函数将指示签名是否有效。
只有您可以使用私钥对邮件进行签名,但任何人都可以使用您的公钥验证签名
需要注意的一点是,虽然公钥用于验证签名是否来自其关联的私钥,但是无法从其公钥中推断出私钥。
我们的新分类账协议:
- 任何人都可以在事务中添加一行
- 任何人都可以查看分类帐
- 在月底结清现金
- 只有签名的交易才有效
时间戳:防止重复事务
我们的分类帐和签名系统目前的工作方式存在一个小问题。由于数字签名仅取决于消息和密钥,因此可以复制签名消息对。
如果比尔在“Bill欠Elon 420美元”的分类账上签字并签名,Elon可以复制整个交易,邮件和签名,以获得更多收益。
对此的修复非常简单。每个事务都有一个标识符,每个事务增加一个。然后第42个事务将标识符“42”附加到消息的开头。
即使消息相同,增加的标识符也会完全更改签名
现在,如果有人试图复制交易以获得更多钱,签名将无效,因为您不能重复标识符“42”,将其更改为“43”将完全更改签名。
加密货币:没有超支
“在月底以现金结算”
如果有人在月底没有安顿下来并永远消失呢?
为了防止有人利用这一点,我们可以制定一个规则,即人们可以用现金购买“Ledger Coin”(我们自己的加密货币),所有交易都是在Ledger Coin中进行的,并且不允许超支。
现在,“结算”是自动完成的,因为所有交易都是在Ledger Coin中完成的。
在任何时候,您都可以将您的Ledger Coin变为现金,但您只能与Ledger Coin进行交易。
等待分类帐硬币怎么能有实际价值?
分类帐硬币和任何其他货币都有价值,因为人们认为它们具有价值。如果人们愿意提供现金或服务以换取您的分类帐硬币,那么它是有价值的。
去中心化
现在分类帐在网站上。如果网站出现故障或被黑客入侵,那么任何人都无法交易货币。如果网站所有者更改规则,那么每个人都可能遭受损失。
中心化系统只需要破坏一个故障点。通过向每个人提供分类帐的副本,去中心化分类帐可以解决这个问题。每个人都有一份分类帐,并负责保持自己的副本最新。
现在,当Elon想要为他的窗口支付Bezos 10美元时,他会向所有人播放“Elon向Bezos支付10美元”的消息。
这种方法存在一个非常大的问题。当你看到“Elon付给你5美元”的消息时,你如何确定其他人都收到了这条消息,并且你能够将这些Ledger硬币与其他人一起使用?也许Elon只向你发送了这条消息,没有其他人。
我们需要一个协议,告诉您如何接受或拒绝交易以及按什么顺序,以确保您的分类帐副本与世界上其他所有人一样。
散列函数
解决方案?信任分类帐,其中包含最多的计算工作。
要做到这一点,我们需要使用的是一种称为加密货币哈希函数和一些智能技巧。
加密货币散列函数接收消息,对其进行一些疯狂的数学运算,并输出具有固定长度的散列(0和1的字符串)。
最常用的散列函数SHA256会将任何消息转换为长度为256个字符的字符串。输出称为“哈希”,它看起来是随机的,但事实并非如此。每次向SHA256发送消息“Blockchain”时,它都会输出相同的哈希值。
稍微更改消息将完全更改散列
更改进入SHA256的消息将以完全不可预测的方式更改散列。重要的是,当给出哈希时,无法确定生成它的消息。如果要创建以五个0开头的哈希,则必须随机猜测并检查消息。
工作证明
SHA256之所以有用,是因为它可以用来证明大量的计算工作都进入了特定的事务列表。
想象一下,有人向您显示了一个事务列表,并说“我找到了一个特殊的数字,当你把它放在这个事务的最后,并将SHA256应用到整个事件时,哈希以30个零开始。”
对于随机消息,散列以30个零开始的几率为1 /2³⁰,大约是十亿分之一。
因为应用SHA256后消息的散列基本上是随机的,所以找到一个给出带有30个零的散列的特殊数字的唯一方法是猜测和检查。这意味着该人必须通过大约十亿个不同的数字才能找到一个特殊的数字。
要找到有效的“特殊号码”(工作证明),您必须随机猜测并检查
要验证该数字是否特殊,您只需在最后使用特殊数字的事务列表上运行SHA256,并检查哈希以30个零开始。
SHA256允许我们验证某人为特定消息进行了大量计算工作,而无需再次进行相同的工作。
这被称为“工作证明”。
块+链
让我们回到我们的去中心化分类帐。
可能会有很多潜在的分类广播。有些可能来自诚实的人,有些可能是欺诈性的。
作为一项规则,我们只会信任分类帐,其中计算工作量最大。为此,我们将整理分类帐。每个块都有一个事务列表和一个工作证明,它使整个块的散列以大量的零开始。
就像交易需要签名有效一样,块需要工作证明才有效。
为了形成一个块链,每个块的头部将包含前一个块的散列。现在,如果犯罪分子试图更改过去块中的任何事务,其哈希值将发生变化,这将使其工作证明无效,并且还将更改下一个块及其哈希值的标头。这将使以下所有块都具有无效的工作证明。
具有事务的块链接在一起
工作证明使得修改过去的块在计算上是不可行的,使得它们实际上是不可改变的。这被称为不变性,这就是为什么区块链可以安全地进行交易并且具有审查能力。
由于每个块彼此紧密链接,我们称这种类型的分类帐为区块链。
矿工
在实践中,只有一部分用户计算工作证明。这些人被称为矿工。
矿工监听交易,将它们捆绑到一个区块中,然后开始计算其区块的工作证明。如果他们在其他任何人之前找到有效的工作证明,他们就会向全世界广播他们的街区。如果其他人在他们做之前创建了一个有效的块,他们将更新他们的分类帐并开始链中的下一个块。
计算块的工作证明需要大量的计算能力和能量。为了激励矿工,有块奖励。任何街区的创建者都会获得一些Ledger Coin作品。
这是将新的分类帐硬币引入区块链网络的唯一方法。没有中央政府可以铸造新硬币。新的硬币来自创造街区的矿工。
Blockchain
我们现在全面了解去中心化货币系统的运作方式
- 任何人都可以提交要放入块的交易
- 交易已签署,因此用户只能自己花钱
- 用户只能花钱他们实际拥有的钱
- 工作证明表明计算工作已陷入障碍
- 块被链接在一起,因此无法修改过去的事务
- 矿工是将交易捆绑成块并找到有效工作证明的用户。当他们“挖矿”一个街区时,他们会获得加密货币奖励
- 诚实的用户将始终信任最长的块链
如果你想玩散列或挖矿等区块链概念,这个网站有很棒的互动演示。
区块链和超越
区块链不仅限于比特币。以太坊是另一种使用区块链的技术,允许用户以去中心化和不可变的方式进行几乎任何计算。它允许去中心化计算,文件存储,投资等。