1.背景
一次日常转账
三方担保交易模式下的隐患:
日常生活中的交易行为依赖第三方担保机构,比如银行、微信、支付宝等,第三方担保机构信任崩塌,在一个完全匿名的去中心化网络里,用户之间怎么转账?
2.什么是区块链
2018年10月31号,中本聪用9页论文论证和解决了这个问题。
核心定义:一种特殊的分布式数据库。分布式数据库并非新发明,市场上早有此类产品。但是,区块链有一个革命性特点。
区块链没有管理员,它是彻底无中心的。其他的数据库都有管理员,但是区块链没有。如果有人想对区块链添加审核,也实现不了,因为它的设计目标就是防止出现居于中心地位的管理当局。正是因为无法管理,区块链才能做到无法被控制。否则一旦大公司大集团控制了管理权,他们就会控制整个平台,其他使用者就都必须听命于他们了。
区块链场景下一次交易行为:
每个人都有一个从区块链创建依赖的所有交易记录的账本,每当有交易发生时,大家会通过广播的电子签名(转账行为数据)验证交易是否可以进行,验证成功后把这笔转账记在账本上,交易就完成了。
账本就是区块,区块连起来,就是区块链,区块链记录了比特币从创立到今天所有的交易记录,截至到2020年大概有60W个区块,每个区块大概有两三千笔交易;在区块链的网络里,所有人都拿着一份相同且实时更新的账本,所以我要给马云转账100块时,所有账本就开始回溯交易记录,检查你到底有没有100块,如果没有,转账就无效,这就引发了两个问题:
谁来给大家记账?
去中心化的场景下,每个人都有记账的权利,那么每个区块里包含的交易和交易顺序可能都不一样,那么一笔交易行为该由谁来记账呢?中本聪的方案是做题(POW,工作量证明),简单说就是谁算的快听谁的,第一个成功计算的人会获得奖励。
怎么保障账本不被篡改?
一次记账行为流程如下图所示:
简单来说,是靠区块里的哈希值进行保障,每个区块存储了上一个区块的哈希值,如果有人篡改交易数据,需要重新计算当前区块哈希值以及后续所有区块哈希值,当前每个区块计算成功概率是755万亿亿分之一,用一块英伟达最新的2080TI显卡计算,大概要算1407年。
寻找随机数计算最终满足条件的哈希值,这个过程就是挖矿,只要你把哈希值算出来了,所有人都能在瞬间验证算的对不对,如果区块没问题,大家就会把这个区块加到账本上,开始计算下一个区块,这样网络里所有人就有一份相同且实时更新的账本了。
欢迎评论区留言交流讨论
引流:大厂 java 字节跳动 阿里巴巴 腾讯 面试 设计模式 笔试