我们向很多人谈及区块链,无论是说者,还是听者,其实理解起来都挺费劲。去中心化、不可篡改、加密等概念,对于不懂技术的人来说,更是特别费劲。思维惯性呢,也经常误导我们,比如互联网+,一开始听到这个词,大家是模糊的,当把互联网和+拆开了之后,思路就开始清晰。同样地,为了便于理解,我们公司的技术大神,把区块链拆开成区块和链,为大家解释区块链到底该如何理解。
区块链的基本三个概念
① 交易(transaction):一次对账本的操作,导致账本状态的一次改变,如添加一条转账记录;
这是在以太坊浏览器(https://etherscan.io)随机截取的一条以太坊交易信息,结合前面的的标签我相信大家应该不难看懂这张截图内容。这是一张比银行转账单都还要更详细的交易信息。从这里面我们可以获取到所有我们想要的信息,包括交易发起人,接收人,交易ETH数额(Token数额),时间,交易状态(成功or失败)等信息。
② 块(block):记录一段时间内发生的所有交易和状态结果,是对当前账本状态的一次共识;
这是一张“区块”的所有详细信息截图,包括时间,交易数,区块hash,上个区块hash(索引),随机数,大小等信息。
在做数据分析时,我们可以通过去所有“区块”中的“交易”的遍历来获取以太坊中的所有交易记录。
注意:已经打包好的“区块”中的信息,是已经在经过矿工打包并确认有效的交易信息,已经打包好的“区块”中的数据是不可篡改的
③ 链(chain):由区块按照发生顺序串联而成,是整个账本状态变化的日志记录。
这是一个区块列表,显示了每个“区块”的基本信息,时间,数量,块高度。需要注意的是,
区块的生成时间是不固定的;
区块高度是按顺序生成的,结合“区块信息”中的“Parent Hash”保留对上级索引
这样按序串联成“链”。
如果把区块链作为一个状态机,则每次交易就是试图改变一次状态,而每次共识生成的区块,就是参与者对于区块中交易导致状态改变的结果进行确认。
在实现上,首先假设存在一个分布式的数据记录账本,这个账本只允许添加、不允许删除。账本底层的基本结构是一个线性的链表,这也是其名字“区块链”的来源。链表由一个个“区块”串联组成(如图2-1所示),后继区块记录前导区块的哈希值(pre hash)。新的数据要加入,必须放到一个新的区块中。而这个块(以及块里的交易)是否合法,可以通过计算哈希值的方式快速检验出来。任意维护节点都可以提议一个新的合法区块,然而必须经过一定的共识机制来对最终选择的区块达成一致。
看完上述的解析,是不是有点清晰了,同时也可能生出了更多的疑问,放心,后续我们还会放出更多的技术类文章。
喜欢记得来一个
领取专属 10元无门槛券
私享最新 技术干货