专栏名称: 区块链技术学习
致力于区块链技术的学习和普及,对区块链技术和相关企业事件进行深度分析和研判,探索去中心化账本技术应用领域。
目录
相关文章推荐
先进能源科技战略情报研究中心  ·  人工智能推动能源变革的前景、风险分析及建议 ·  昨天  
中国能源报  ·  停电8小时以上!该国实行六级限电→ ·  昨天  
中国能源报  ·  停电8小时以上!该国实行六级限电→ ·  昨天  
南方能源观察  ·  《南方能源观察》电子刊上线!订阅方式戳→ ·  2 天前  
51好读  ›  专栏  ›  区块链技术学习

使用电子表格学习区块链

区块链技术学习  · 公众号  ·  · 2019-06-06 12:30

正文

区块链技术学习(微信号:Blockchain1024)翻译

原文链接:https://medium.com/@vanflymen/learn-blockchains-using-spreadsheets-b97ad92b9b4d


学习区块链如何工作的最好方法就是和它们一起玩。但是这通常需要大量的编码,不过,在这里你不需要做这些,你只需要通过Google工作表来学习。


首先,你需要单击 File > Create a Copy ,然后才能使用它。


哈希(Hashing)


首先也是最重要的是要理解哈希。如果区块链包含砖块,那么哈希就是砂浆:将所有东西粘在一起的神奇酱料。


哈希是识别数据的行为。更具体地说,这是一种将任何数据映射到唯一的随机数字串的方法。


认识到这一点: e2762516d0decb18525bb635d3d19abf

你可能不会。这是“野餐少了几个三明治”的杂烩。


现在,我们在 Google工作表 格中试试。更改单个字符将产生一个完全任意的新哈希:



这个属性使得哈希在很多地方都很有用。如何检查电子表格是否被同事修改过?简单,哈希并比较历史哈希和当前哈希。


“不要相信,验证。”——比特币谚语


有很多种哈希函数,在本例中,我们使用的是MD5哈希函数。让我们尝试在Google工作表中哈希更多的输入:


在Google工作表中哈希一些输入数据


为什么哈希表如此特殊?


如果有了鸡块,就很难再造鸡了。加密哈希之所以如此命名,是因为它们难以(实际上不可能)逆转:无法逆转。 e2762516d0decb18525bb635d3d19abfto A few sandwiches short of a picnic.


要点1:哈希是不可逆转的


任何使用MD5算法和哈希一些三明治的人,都会得到相同的输出 e2762516d0decb18525bb635d3d19abf


要点2:哈希函数具有确定性


我们很快就会看到采矿是如何依赖于找到特殊的哈希值,从而创造出比特币的。


区块是什么样子的?


区块链是一种交易分类账。这些事务被分组成块,并随着时间的推移逐步添加到链中。下面是块的外观,给出或获取几个字段:


区块链中的一块


我用公式对块进行了哈希 =MD5(CONCATENATE(A1:C13))


花点时间研究一下这些领域,想想为什么它们是必要的。Junk字段和Miner交易的存在可能会让你感到困惑,但是它们非常特殊,我们待会讨论它们。


请注意,即使只更改一个便士的交易,也会导致哈希完全改变。


更改块中的任何内容都会导致哈希值更改,从而使块无效!


哈希为块欺诈提供了保护——如果恶意参与者必须修改块中的任何字段,整个网络都会知道,因为哈希会发生变化。


比特币是一个点对点(p2p)网络,任何运行比特币软件的人的计算机上都有最新版本的该分类账。比特币只是规则的集合。只要遵守规则,任何人都可以编写自己的比特币软件并参与网络。


当人们谈论比特币软件时,他们可能指的是这些规则的参考实现——代码托管在: https://github.com/bitcoin/bitcoin


采矿


如果仔细研究有效块,您会发现到哈希的一些奇怪之处:它以6个零开始!这很奇怪,因为我们学到的第一件事就是哈希是随机的。那么以6个0开始哈希的概率是多少?大约在2²⁴= 16777216或极不可能。


这是判断块是否有效的规则 ,如果它们以一定数量的零开始(在本例中我选择了6)。


要深入理解这个概念,请尝试从单个0开始获取块的哈希,你平均要尝试16次。


矿工的工作


矿工是网络上的有兴趣通过创建新的块来创建新的比特币的人。


这就是Junk字段的作用。矿工设置一个随机的Junk字段,哈希块并检查它是否以零开始。如果没有,则插入另一个Junk字段,然后再试一次,直到成功为止。


听说过采矿硬件吗?


这就是采矿硬件的作用。因为它是专门化的,所以它可以比普通计算机更快地执行哈希。


作为对这项工作的奖励,矿工将获得一些比特币作为区块中的第一笔交易。这种奖励是新比特币产生的方式,它会随着时间的推移而减少。


每21万个街区奖励减半。在撰写本文时,它是12.5个比特币,但到2020年将减半至6.25个比特币,并最终在2140年变为零。这就是比特币的供应的控制方式,只有2100万比特币。这是比特币维基描述的供应量。


哈希开头的零的数目称为难度,由于计算机的速度每年都在加快,所以它经常发生变化。比特币的目标是大约每10分钟创建一个新区块,在每2016个区块之后,难度将被重新评估。


工作证明


上面描述的算法,设置一个Junk字段并确定块哈希是否以0开头,被称为工作证明: Junk字段是矿工完成工作的证明!


给定一个块,对于网络上的任何人来说,计算哈希并验证它以零开始都是很简单的。这里的天才在于,工作证明是一种非常难计算但很容易验证的东西。


一旦矿工找到一个有效的Junk字段,它们就会广播该块,从而使每个人都检查该块是否以所需的零开始。如果每个人都将区块添加到他们的区块链中。我们说,网络已经就新区块达成共识。


在比特币中,Junk字段被称为“nonce”(胡说),当矿工们每一次猜测都没有成功时,他们就会对交易进行排序,并向区块中添加额外的数据,以便继续猜测。


区块链的不变性


正如我们所了解的,比特币只是一个分布式账本,通过这个过程,网络上的人通过验证哈希值来判断一个新区块是否有效。







请到「今天看啥」查看全文