随着区块链渐渐进入普通用户视野,很多有趣的去中心化应用开始流行起来,比如下图中去中心化交易所,还有基于多种玩法的DeFi协议等等。
很多区块链小白们可能费时费力学了半天区块链,创建了钱包,从各种渠道买到了数字货币,开始在钱包中参与各种各样五花八门的DeFi应用。那么,钱花出去了有没有被?是否根据正常流程参与了应用?这些都是普通非区块链技术用户们最关心的事情。因为不懂得如何确保自己数字货币流向的安全,或者自己参与业务的安全性,导致被的情况在区块链世界里屡见不鲜。
本文从区块链的显示器——区块浏览器来教大家玩转当前主流应用型区块链,基于区块链浏览器中交易内容查看、交易关键数据格式、区块链数据存储等几个模块,由浅入深教大家学习区块链,拒绝做“韭菜”,自我辨别项目风险性与交易安全性。
图1Uniswap-Ethereum链
图2PancakeSwap-BSC链
图3JustSwap–Tron链
图4DefiBox–EOS链
今天实验室从几大支持智能合约的区块链平台的区块链浏览器入手,带大家驰骋区块链的海洋。按照智能合约编写语言分类,本期主要讲解支持?Solidity语言智能合约与?C语言智能合约的区块链浏览器。
以太坊系区块浏览器
以太坊系主要分为以下几条区块链,首先是Ethereum,其次是以其为基准进行独自运营发展的几条公链,分别是Tron、BSC、HECO以及OKEXChain。作为以太坊系,这几家区块链项目的浏览器产品又细分为三种不同的框架。
Etherscan、BscScan、HecoInfo
以太坊浏览器团队开发的这三个区块浏览器,在框架、数据显示、功能等方面都近乎一致,详细的使用方法后续会统一讲解。
图5Etherscan浏览器主页
图6BscScan浏览器主页
图7HecoInfo浏览器主页
TRONSCAN波场浏览器
波场浏览器结合其自身账户模型特点以及与以太坊的区别,在框架上与前三个有少许差别,但在功能使用、数据存储以及编码等方面还是存在一些共通性。
图8TRONSCAN浏览器主页
OKT浏览器
该浏览器主要与其他多个区块链项目浏览器被统一整合在一个平台,主要用于区块数据查询,但其他智能合约读写功能与数据也相应可以实现。
图9OKT浏览器主页
去中心化金融应用中有一些常见的交易类别,以及在区块浏览器中有不同交易信息查询入口,通过这些信息来对应到不同的区块浏览器进行信息匹配查找,确认交易内容是否与Dapp前端进行的内容一致。
1、数字货币转账
几乎所有的DeFi协议核心内容均涉及数字货币转账,通过数字货币兑换、锁定、抵押等不同形式的操作来为项目方或者用户带来数字货币收益。
当用户在DeFi协议前端执行了需要支出数字货币的操作后,在对应的代币合约中会执行approve函数与transferFrom函数,此时打开区块浏览器根据钱包提示的交易hash、个人钱包地址、交易事件等查找对应交易。
图10defi交易类型查询示例
此处要注意,浏览器页签不同,对应查询页面的内容结构也是完全不同的,图10中显示的区块链数据为所有涉及UNI代币的交易,所以交易调用函数多种多样。
图11以代币为基准的数据查询链接
图12以合约地址为基准的查询页面
图13以合约地址为基准的数据查询链接
2、交易匹配查询
交易method根据以太坊虚拟机底层编码,简单来说,交易method为函数体的一个加密hash的前4位,如下所示:
图14交易method签名方式
同一函数在以太坊系浏览器中的结果均是相同的,以Etherscan和OKT浏览器为例,如下所示:
图15swapExactTokensForTokens函数method
图16swapExactTokensForTokens函数method
通过在区块浏览器中查询指定交易可以比对与实际交易操作是否匹配。
交易事件
交易事件用于记录指定函数调用日志,在唯一调用函数中触发一个或多个,用户可以根据事件中记录的内容来查询有限的记录数据是否正确以及与实际交易功能匹配。
与交易method一样,事件编号在EVM中也是以声明结构进行加密签名的,可以作为索引进行批量查找:
图17事件topic0签名方式
图18批量查询指定事件event
如上图所示,这种查找方式在现有区块浏览器中只能查找到部分内容,全部数据需要同步对应区块链全节点进行查找。
交易调用数据比对
最为完整的数据对比就是直接比较对应交易中的函数调用数据,文中以开源合约的对比进行讲解,在开源合约中,区块浏览器自动将调用数据字节码进行对应序列化存储与显示,而在非开源合约中,调用数据仍以EVM字节码的形式显示,不太适用于初学者进行比对,此处暂不详解。
图19调用数据对比
图20调用数据对比
以转账功能为例,可以通过区块浏览器来对比数据一致性,很方便,以太坊系区块浏览器提供了将数据解码功能,可以更直观的看到调用数据
图21转账数据对比
图22转账数据对比
以上功能在其他以太坊系区块浏览器中同样可以进行查找与对比,同样的区块浏览器还提供了很多其他功能,例如审计报告查询等等。有资质的项目方一般会将审计报告在区块浏览器上传,用户可以从根本判断项目风险,拒绝做区块链文盲,保证数字资产安全。关于以太坊系区块浏览器还有很多其他的功能,例如反编译字节码、转账交易列表等等可以更好的用于分析区块链数据、数字货币流向。
柚子EOS区块浏览器
其次,我们从柚子EOS链的几个区块浏览器产品对比来解释不同区块浏览器的用法。一般来说想要知道一笔转账什么时候到账,当前EOS的转账费用是多高,给你转账的地址到底有多土豪,都可以通过区块链浏览器直接展现出来。当然,我们也可以查询到区块中包含的交易信息,以及区块的高度、哈希值、发布时间和开采的矿工,部分区块链浏览器还会显示全网算力、算力难度以及其他的一些参考内容。
EOS主流常用的区块浏览器有eosflare、eostracker、bloks.io等,不同的浏览器在区块链数据展示和查询方面各有优点,后续展开为大家介绍。
图23eosflare浏览器主页
图24EOSTracker浏览器主页
图25bloks.io浏览器主页
由于EOS区块链与以太坊的设计理念的不同,他的资源利用以及账户模型都与以太坊有着很大的区别,本文中仅针对不同EOS区块浏览器在数据对比查询方面的优劣性做一个说明。以发行在EOS区块链上的USDT合约为例,进行一些数据查询优劣性对比:
1、转账区块信息概览查询
Eosflare浏览器主要用于快速浏览整个EOS区块链数据,查询指定合约账户、区块等数据,无法对应到具体合约存储数据查询等其他精细查询,这一点需要用户自行配合其他EOS区块浏览器来查询数据。
图26Eosflare浏览器查询页面
2、详细交易所在区块属性查询
EOSTracker浏览器主要用来辅助查询完整交易id以及其他一些交易对应区块属性,从而配合在其他区块浏览器进行详细查询。
图27EOSTracker浏览器查询页面
3、智能合约表存储查询以及详细交易查询
Bloks.io浏览器相对全面的查询了指定智能合约账户的详细交易信息和存储信息,包括交易元数据、账户信息、资源消耗、不同存储表的指定查询等。结合另外两个区块浏览器和实际参与Dapp交易内容进行对比,确保交易内容正确。
图28Bloks.io浏览器查询详细交易内容
图29Bloks.io浏览器查询智能合约存储表内容
区块链世界在区块浏览器上的展示与查询,仅仅是这个世界有限数据查看对比的易中方式,但对于普通用户鉴别五花八门智能合约交易安全与交易流向来说绰绰有余。整个区块链海洋中更深处的奥秘还需要通过搭建区块链节点等方式来一一探究,关于智能合约应用层面的各种实用小tips今天就先说到这,下回继续!
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。