引言:圈内人士交流买卖币时经常会说查币的转账情况,或者说查某个地址有多少币,这些均由于区块链的透明性,那到底何为透明性,又如何去查询这些转账信息,本节课以区块链透明性为主体,在解释透明性的基础上教学习者如何去查询转账信息。
一般说到透明,大致包括两个含义:1)用来形容物体能透过光线的,例如水是透明的;2)比喻公开,不隐藏。如:透明度。此次课堂里说的透明就是指公开、不隐藏。说到区块链的透明性,作者君看来,大致包括架构的公开透明和数据的公开透明。
(1)项目公开透明:区块链项目组会将项目信息公示,并将项目代码公开,例如部分区块链项目代码可在www.github.com上查询。
(2)数据的公开透明:这里泛指目前区块链上的信息公开透明,区块中数据均可查询到。当然,现在很多数据上链并不是明文,区块里包含的是明文处理后的数据,这些被处理后的数据(例如数据的哈希值)公开在区块链上。
本节课重点讲解数据的公开透明,对区块链完全不了解的读者可以先看作者君的第一节课:https://www.botfans.org/forum.php?mod=viewthread&tid=13810,这样可以更好的了解本次讲解的内容。
第一次课程中只给出了区块链结构的大致示意图,本次我们介绍区块链结构,在此基础上说明其透明性,然后学习如何查询转账信息,币圈人士可以自己查询转币情况和一些地址的转账信息。
(一)区块结构及区块链的透明性
区块链(blockchain)也称分布式帐本技术,是一种通过自身分布式节点进行网络数据的存储、验证、传递和交流的技术方案。比特币区块链是区块链最著名的一个实现,也是目前唯一经过较大规模实践检验的区块链应用,我们就以比特币区块链为例介绍其结构。
区块链结构中每个区块包括区块头和交易信息,区块头中会包含上一区块的哈希值(哈希的概念会在第三节课密码学基础知识中介绍),这样依次相连形成链,然后分布式存储在区块链节点,这样保证数据无法篡改和删除。
图1 区块链结构
交易信息是指的是某个时间段整个区块链网络上的交易数据,这些数据依次打包进入区块中,用户可以通过交易的地址或者交易ID来查询交易信息,也可以通过区块高度来查询某个区块内包括的交易数据。所以经常会有币圈人士说帮忙查询下自己提币情况,这些数据都是可以自己去查询。对于每个区块链,都会提供相应的区块链浏览器,供用户去查询信息。
目前区块链最常用的方式里面包含的大部分都是虚拟币转账信息。还有部分区块链是用于日常生活,例如Factom,中文名为公证通,专注于第三方存证的数秦科技就是利用Factom进行区块链存证。首先计算出用户存证数据的哈希值,然后将哈希值写入Factom中,这样达到区块链存证的效果。由于区块链上的数据不可篡改,写入区块链的哈希值不能被修改或者删除,用户可以利用存证数据维护自己的合法权益。这时上链的是数据的哈希值,即文章开头说明的:区块中包含明文处理后的数据,而不是原始数据。
当然,这也分要公有链、联盟链和私有链。公有链是公开给所有人,联盟链一般是公开给联盟链内节点和用户,而私有链则是特定的节点和用户,具体如何会根据实际情况而定。
(二)交易信息查询
上面介绍区块链结构及其透明性,接下来介绍如何查询交易信息。币圈人士应该很大部分知道怎么查询,部分不清楚的读者可以了解这方面的内容,以后可以自己来查转账信息和区块内数据。
作者君以被咨询到最多的以太坊为例,由于很多项目会以太坊为底层,导致以太坊偶尔会遇到拥堵的情况,若不拥堵,转账和提币一般相对较快,则无需去查询转账信息,而遇到拥堵时,用户长时间收不到币时,会相对焦急,这时就会去查询区块链内转账信息。
图2 以太坊区块链浏览器
在以太坊区块链浏览器中,输入需要查询转账信息的地址,即可查看该地址的所有转账信息和地址内数字资产。输入交易ID,可以查询此次转账的转账信息。如果转账信息上显示pending,表示还在等待打包,在矿工(即区块链节点)打包某个时间段的转账信息后,会进行广播(其中会涉及到共识机制和挖矿,在第七节课中会进行介绍)。广播后,在经过12确认,转账则成功。在区块链浏览器上还可以查看各个区块,及每个区块内的信息。
对于比特币转账信息,用户可以使用以特币区块链浏览器查询,不过有一点需要注意的是:比特币是基于UTXO(Unspent Transaction Output,未花费的输出),而以太坊是基于账户,所以以太坊是在12个确认后币的数量才会显示在转账地址,而比特币在转账后、交易未确认的情况下,在比特币区块链浏览器上就可以查看到地址内有对应的币,但是实际上转账信息并未被确认,必须要等到确认后才能保证转账成功。
目前可使用的区块链浏览器较多,读者可以自行查询相应的浏览器。作者君给出几个常用的,方便读者人使用。
1、比特币区块链浏览器:
(1)https://btc.com/;
(2)https://blockchain.info/zh-cn。
2、以太坊区块链浏览器:https://etherscan.io/。
3、莱特币区块链浏览器:http://qukuai.com/ltc。
其他区块链都会有相应的浏览器,还有的虚拟币的钱包内可以查询到转账信息。
以上为本次课的内容,内容较为简单,若读者有任何问题或者疑问,欢迎大家指正。
第三节课内容:什么是密码学?本节课会分为上下两篇:上篇介绍密码学的历史及一些简单的密码学例子(例如摩斯密码等),培养读者对密码学的兴趣;下篇介绍现代密码学中基础概念和算法,让读者对现代密码学有大致的认识。在读者对密码学有基础的了解后,第四节课作者君会介绍密码学与区块链之间的关系,其中会涉及到私钥、公钥和地址之间的联系、钱包哪些信息可以公开等等内容。如果读者有什么疑问或者希望作者君重点讲解哪些内容,可以留言提出,作者君会积极采纳各位的意见。