通过比特币了解以太坊(1)

作者:Mike Goldin

图标:Eva Shon

译者:java达人

来源:https://media.consensys.net/time-sure-does-fly-ed4518792679

(点击阅读原文前往)

区块链

区块链基本上是状态变更的公共记录。任何人都可以审查区块链随时间变化的状态,并通过数学确定性证明这些交易是按照区块链的规则进行的。以比特币为例,这些规则很简单:比特币不能被重复使用,它们的来源必须追溯到一个对有效区块的挖掘(更多关于挖掘的内容请看后续)。为了开始我们的旅程,我建议你阅读比特币白皮书,即使你对密码学一无所知。稍后我们将返回到密码基础。比特币的白皮书很短,只有前六个部分与我们真正有关。

Satoshi Nakamoto的比特币白皮书: https://bitcoin.org/bitcoin.pdf [阅读1–6部分]

区块链交易的密码学基础

作为一个在密码学方面没有什么背景的人,我发现自己开始困惑于白皮书对交易的描述。我们应该清楚,这是一种机制,目的是通过追踪资产相关所有者的历史记录,在给定的时间内证明对某项资产的所有权。但是什么是公钥,散列呢?这些如何帮助我们证明资产的所有权?如果你从未上过密码学课,请观看可汗学院的视频对这些重要的功能进行的描述。(java达人:国内可看数字签名是什么?)

(Satoshi Nakamoto,比特币:点对点电子现金系统)

现在让我们回顾一下白皮书的交易图。在这里,我们将所有者2的公钥和之前的交易(在其中,所有者1拥有比特币)转换成唯一的摘要(哈希函数的输出)。然后,用所有者1的私钥对摘要签名。在未来,任何人都可以通过将所有者2声明的状态变化输入签名验证算法来验证他对比特币的所有权:一笔比特币和所有者2的公钥(标志着一笔比特币向所有者2转移),所有者1的公钥(表示这笔比特币是所有者1向他转移的),和交易的签名表单(可在区块链上公开的摘要,交易发生时被记录)。只有在所有者2指定的确切状态变化的确是用所有者1的私钥签名时,所有者1的公钥才能确认签名的交易摘要在签名的交易链上的有效性。这个过程可以递归地重复回到比特币的原点,证明整个所有权链条是有效的。

你可能在这一点上有很多问题,并且已经在考虑边缘案例——所有权链是如何开始的?比特币的具体金额是如何转帐的?令人惊讶的是,你需要理解比特币的并不多。接下来,我们将讨论三到六部分的白皮书,并找出其中一些边缘案例是如何解决的。

挖矿在区块链实现网络一致性方面的作用

所有比特币交易都向整个网络广播,这些交易由验证交易有效性的矿工收集(主要使用前面描述的方法),并将所有有效的交易记录到“块”中。块的内容和一个递增的随机数(称为“nonce”)随后被反复尝试计算,直到结果输出包含一定数量的前导零。网络动态调整必要的前导零个数(或“难度”),以便控制平均每10分钟开采一个区块。由于散列算法的结果是不可预知的,要找到被网络其他节点接受的有效散列需要运气和CPU能力。人们拥有的计算能力越强,他们在网络其他人之前找到有效散列的机会就越大。当有效块被“挖掘”时,它被广播并由网络的其他节点进行测试。其他节点在给定最新标准块的情况下,在接受该块作为最新标准网络状态之前,测试所包括的状态转换是否有意义,所有用于有效性验证的交易签名,这个区块和所提供的nonce。然后将该块添加到每个节点本地数据库中的原有区块链的头部

所有权链如何开始? 比特币协议规定,每个区块都允许向区块矿工提供一笔25 BTC的交易,其中这些25 BTC是凭空创造的。 这提供矿工支持网络的激励。 如果一个比特币的所有权链可以追溯到这些特殊交易中的一种,那么比特币可以被验证为非伪造。 的确,这是新比特币创造的唯一途径。

控制51%网络的恶意用户用比特币支付他的咖啡,可以喝着他的饮料,然后挖掘一个区块(从他刚刚交易之前的状态开始),欺骗性地略去了他的咖啡购买。 即使这个网络在他开始挖掘欺诈链时抢先挖掘了几个区块,他那51%的网络马力将不可避免地赶上。 因为比特币协议认为最长的链条才是规范的,才会被接受,即使存在被遗弃的区块子链暗示他的欺骗行为,恶意用户也会逃脱处罚

Extra Credit:比特币中的UTXO 在比特币中,并不持有可以从其中撤回和存入的无限可分的货币单位。 相反,比特币用户处理“未使用的交易输出”(UTXO)。 如果矿工新挖了25BTC,想要买1 BTC咖啡,他们必须指定整个25 BTC(UTXO)作为交易的输入,并为交易指定两个输出:其中一个输出发送一个 BTC到商家的地址,第二个输出指定24比特币作为“充值”发送回购买者的地址。 要购买另一杯咖啡,该24比特币作为一个UTXO。 多个UTXO组合包含在一个交易输入中以交换更昂贵的物品,而作为新的单个UTXO被商户接收。 以太坊不使用UTXO - 它的帐户余额是可分的。

您现在拥有了解比特币区块链基本原理所需的全部知识。 这是让人头晕目眩的东西! 如果你还没有完全理解它,请不要失落:试着带着它睡上几天,这些知识会在你的梦中组合起来。 一旦如此,你可以开始想象如何运用像比特链区块链那样的技术,在输入和程序代码被公开共享时,验证任意复杂计算的公共输出。 实际上,我们将在本系列的第二部分中探讨这一点。 回头见!

原文发布于微信公众号 - java达人(drjava)

原文发表时间:2018-03-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏kalifaの日々

比特币2140年将耗尽?我用python算了一笔账

首先,比特币是一种直接进行点对点交易的虚拟货币,每一笔用比特币进行的交易都需要记账。

10310
来自专栏CDA数据分析师

Youtube 网红老师带你看懂区块链的作用丨附中字视频

翻译/校对: Mika 本文为 CDA 数据分析师原创作品,转载需授权 Youtube 的科技网红Siraj以风趣幽默的方式讲解科技热点而备受追捧,在这期内容...

19890
来自专栏PPV课数据科学社区

干货|区块链入门教程:一文让你看懂区块链!

区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来。可是,简单易懂的入门文章却很少。区块链到底是什么,有何特别之处,很少有解释。...

29130
来自专栏存储

区块链入门教程

区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来。 可是,简单易懂的入门文章却很少。区块链到底是什么,有何特别之处,很少有解释。...

19960
来自专栏互联网杂技

区块链入门教程

区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来。 可是,简单易懂的入门文章却很少。区块链到底是什么,有何特别之处,很少有解释...

33960
来自专栏代码乱弹

区块链里的数据不一定是真的

这篇文章意在反驳人们"区块链数据是完全真实"的观念。先打个比方:在传话游戏中,最后的人讲出来的故事已经与原来的故事相差很远了。

40950
来自专栏企鹅号快讯

目前对区块链最通俗易懂的解释…

这应该是目前对区块链最通俗易懂的解释了... ? 区块链如何运作的? 下面这篇文翻译自”How Does the Blockchain Work?”全文。作者M...

23350
来自专栏liuchengxu

用表情符号解释比特币 - Part 1

比特币是一个存储和消费数字货币的革命性方式,并且有着变革其他领域的潜力。无须成为一个数学家或密码学家, 你就可以理解它是怎么回事。当开始看到整个系统是如何形成时...

8820
来自专栏企鹅号快讯

谈谈我对区块链的理解

通过之前研究的十大前景行业(带来高收入的 10 大开源技术,可以涨工资了!)提到人工智能,区块链,大数据都是今年以及2018年的技术热门趋势,本文专门介绍下什么...

29970
来自专栏ATYUN订阅号

【学术】区块链专家:为什么我对比特币黄金产生了怀疑?

几周前,比特币黄金被对外宣布。对于许多新手比特币用户和投资者来说,这更像是比特币现金发生了重复,本质上看来是给你“自由币(free coins)”。 在这篇文章...

29160

扫码关注云+社区

领取腾讯云代金券