一文看懂区块链:区块链入门指南
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一文看懂区块链:区块链入门指南
什么是加密经济学?以太坊社区开发者Vlad Zamfir解释道:“这是一门独立的学科,旨在研究去中心化数字经济学中的协议,这些协议被用于管理商品及服务的生产、分配和消费。它也是一门实用科学,重点研究对这些协议的设计和界定方法。”
区块链技术是运行在加密经济学理论基础之上的。我们不妨将此概念分解一下。加密经济学来源于两个词汇:密码学和经济学。人们常常会忽略其中“经济学”的成份,而恰恰正是这一成份赋予了区块链以独特性。区块链并非是首个使用“去中心化的点对点系统”的技术,洪流网站(torrent sites)在文件共享上对此技术的使用由来已久。然而,从某种意义上来说,这是一次失败的应用。为什么点对点的文件共享是个失败的应用?在一个洪流系统(torrent system)中,任何人都能通过一个去中心化的网络来共享文件。这个想法旨在让每个下载者在下载的同时也保持着向网络里的其他下载
者提供种子(上传已下载的数据)。问题是,这一系统的运作逻辑是建立在荣誉系统制度上的。如果你下载了一个文件,系统预期你也会提供种子。但是在没有经济激励的情况下,人们认为持续上传种子是件毫无意义的事情,尤其是当这一行为还将占据电脑里更多的存储空间时。中本聪和区块
链技术2008年10月,中本聪(一位匿名男士、女士,或组织)发布了一篇论文,此文为比特币(Bitcoin)后续的发展奠定了基础。这篇论文将会动摇网络社区的根基,因为这是我们有史以来第一次拥有了一个以加密经济学为理论依据
的工作模型。与之前的点对点去中心化系统不同的是,人们现在有了经济激励去“遵守规则”。不仅如此,区块链技术的真正天才之处在于其克服了拜占庭将军问题,并创造了一个完美的共识系统(详见下文)。比特币的加密经济学属性那么,像比特币这样的,基于加密经济学理论的加密货币,究竟有哪些属性呢?让我们一一阐述:它是基于区块链技术而产生的货币。其中,每个区块都包含前一个区块的哈希值,从而形成一条连续链。每个区块都包含多笔交易。新产生的交易会使所有区块的特定状态得以更新。例如,如果A有50个比特币,且想把其中的20个比特币发送给B,那么在新的状态下就会显示:A只剩下30个比特币,而B拥有20个新的比特币。区块链必须是不可变的。只可能新增区块,而不可篡改旧的区块。仅允许有效交易。区块链应当是可下载的,任何人在任何地点都可以轻松接入并查询某笔特定的交易。如果支付了足够高的交易费用,则交易可以被快速添加至区块链上。正如其名,加密经济学有两大支柱:密码学经济学区块链技术的运行中使用了多项密码学函数。让我们看一下其中一些主要的函数:密码学区块链技术的运行中使
用了多项密码学函数。让我们看一下其中一些主要的函数:哈希算法签名工作量证明零知识证明哈希算法简言之,哈希算法是将任意长度的字符串映射为较短的固定长度的字符串。比特币则是使用SHA-256摘要算法对任意长度的输入给出的是256bit的输出。那么,加密货币中哈希算法的应用有哪些?加密哈希函数数据结构挖矿加密哈希函数:一个加密哈希函数有如下特性:确定性:无论在同一个哈希函数中解析多少次,输入同一个A总是能得到相同的输出h(A)。高效运算:计算哈希值的过程是高效的。抗原像攻击(隐匿性):对一个给定的输出结果h(A),想要逆推出输入A,在计算上是不可行的。抗碰撞性(抗弱碰撞性):对任何给定的A和B,找到满足B≠A且h(A)=h(B)的B,在计算上是不可行的。细微变化影响:任何输入端的细微变化都会对哈希函数的输出结果产生剧烈影响。谜题友好性:对任意给定的Hash码Y 和输入值x而言,找到一个满足h(k|x)=Y的k值在计算上是不可行的。加密哈希函数对区块链的安全性和挖矿有巨大的帮助。数据结构:有两种数据结构对于理解区块链非常重要:链表和哈希指针。链表:链表是依次按顺序连接而成的数据区块,如下图所示:在链表中的每个区块都通过一个指针指向另一个区块。指针:指针是包含其他变量地址的变量。因此,正如其名,指针就是指向其他变量的变量。哈希指针:哈希指针不仅有其他变量的地址,还有该变量中数据的哈希
值。那么,这对区块链而言有何帮助呢?区块链的构成如下图所示:区块链本质上是一个链表,其中的每个新区块都包含一个哈希指针。指针指向前一区块及其含有的所有数据的哈希值。借此特性,区块链拥有了不可更改性(immutability)的伟大特质。区块链如何实现其不可更改性?假设在上面的图表中,有人尝试篡改1号区块中的数据。请记住加密哈希函数的一个重要特质是任何输入端的细微变化都会对哈希
函数的输出结果产生剧烈影响。那么,即便有人尝试对1号区块里的数据进行细微的改写,也会使得存储在2号区块里的1号区块的哈希值产生巨大的变化。接下来,这将导致2号区块的哈希值发生变化,进而影响存储在3号区块的哈希值。以此类推,最终整条区块链上的数据都会发生变化。这种通过冻结整条链条来修改数据的方式几乎是不可能做到的。正因如此,区块链被认定为是不可篡改的。每个区块都有自己的梅克尔根(Merkle Root)。现在,正如你已知道的,每个区块里都包含多笔交易。如果将这些交易按线性存储,那么在所有交易中寻找一笔特定交易的过程会变得无比冗长。而这就是我们使用梅克尔树的原因。在梅克尔树中,所有个体交易通过哈希算法都能向上追溯至同一个根。这就使得搜索变得非常容易。因此,如果想要在区块里获取某一特定的数据,我们可以直接通过梅克尔树里的哈希值来进行搜索,而不用进行线性访问。挖矿加密谜题被用来挖掘新的区
块,因此哈希算法仍然至关重要。其工作原理是调整难度值的设定。随后,一个被命名为“nonce”的随机字符串被添加到新区块的哈希值上,然后被再次哈希。接着,再来检验其是否低于已设定的难度值水平。如果低于,那么产生的新区块会被添加至链上,而负责挖矿的矿工就会获得奖励。如果没有低于,则矿工继续修改随即字符串“nouce”,直至低于难度值水平的值出现。正如你所见,哈希算法是区块链和加密经济学中一个至关重要的部分。签名在加密货币中,签名是其中一个最为重要的密码学工具。在现实生活中,签名的概念是什么?又有哪些特性?想象一下,你在一张纸上签名后,如何鉴定这是一个好的签名?可被验证的。这个签名要可以证明确实是你在纸上签名了。不可伪造的。没有其他人能够伪造及复制你的签名。不可抵赖的。如果你使用自己的签名进行签署,你就无法将其收回或声称他人代替你签名。但是,在现实生活中,无论签名有多复杂,都有被伪造的可能性。你无法通过简单的视觉辅助工具来真正地验证签名的有效性,这样做既无效率也不可靠。密码学给了我们一种通过公钥和私钥来解决问题的方案。让我们来看看这两种秘钥的工作原理和其对加密货币系统的促进作用。假设有两个人,Alan和Tyrone。Alan想要发送一些非常重要的数据,而Tyrone想要鉴别这一数据确实来自Alan,他们可以通过使用Alan的公钥和私钥来实现这一目标。有一点必须指出,通过