数据结构、数据指标、常用工具

数据分析|链上基础知识

链上交易全过程

无论共识算法是POW还是POS,交易过程都是一样的:

流程 解释 类比
交易创建 用户用钱包发起交易 写信+贴邮票
交易广播 交易被广播到网络 投进邮筒
节点验证 节点验证交易是否合法 邮局检查信件
交易打包 矿工打包交易进区块 把信封装进快递箱
添加区块 区块加入区块链 快递被正式寄出
交易确认 区块被后续确认加固 每一站盖章确认
交易完成 交易到账且不可更改 收信人收到信件

1. 交易创建(用户写信)

🔹 用户使用钱包或与智能合约交互,发起交易。

🔹 内容包括:谁发钱(发送方地址)、谁收钱(接收方地址)、多少钱、Gas 费用等。

📮 比喻:你写了一封信,准备寄给朋友。

🔸 就像在信封上写上寄件人、收件人、信件内容,还贴好邮票(手续费)并签名。


2. 交易广播(把信送到邮局)

🔹 钱包把交易发出去,广播到整个区块链网络。

🔹 所有节点(类似邮局)都能收到这封“交易信”。

📮 比喻:你把信投进邮筒,邮递员把它传送到各地邮局。


3. 节点验证(邮局验信)

🔹 网络中的节点收到交易后会进行预验证

🔸 不合法的交易会被丢弃,合法交易进入“交易池”(等待发送的信件箱)。

📮 比喻:邮局检查信有没有问题——邮票够不够,地址写得对不对,信是不是你自己签的。


4. 交易打包(邮局装箱)

🔹 矿工(或验证者)从交易池里选出多笔合法交易(优先选手续费高的),组成一个新区块。

🔹 这个区块就像一个装满信的快递包,准备发往区块链这条“大物流路线”。

📮 比喻:邮局把多封信装进一个快递箱,准备寄出。


5. 交易确认(物流开始+一路盖章)

🔹 区块(包括你的交易)被成功加入到区块链上,这称为第一次确认

🔹 之后每新增一个新区块,就多一层“确认”(更多人认账,数据更难被改)。

🔸 在比特币/以太坊等链上,通常 6 次确认后被认为完全安全不可逆。

📮 比喻:快递箱被正式寄出,在路上被每一站盖章确认,越来越无法撤回。


6. 交易完成(朋友收到信)

🔹 用户可以在浏览器上看到交易“已完成”,资金转账成功、不可撤销。

🔹 如果这是一次合约调用,比如买 NFT、换币、参与 DeFi,链上的合约也会被成功触发。

📮 比喻:你的朋友打开信件,确定收到。这封信再也拿不回来了。


链上数据结构

交易数据

交易详情

交易详情解释


1. 交易哈希(Transaction Hash 或 Tx Hash)

定义:每笔交易在链上拥有自己的“身份证号”,由一串字符(如 0x…)组成,唯一且不可更改

作用:就像快递单号,可以用它在区块链浏览器(如 Etherscan)上查询该交易的所有细节:从谁发、到谁收、金额、手续费、状态、所在区块、高度、时间等。


2. 交易状态(Status)

常见状态

作用:让用户知道交易的执行结果及进度 。只要交易开始执行,就会消耗 Gas,并扣掉相应费用,这正是为防止攻击的关键


3. 区块(Block)

定义:一个区块是容纳多笔交易的数据结构,除了交易,还包含区块头(包括前一个区块哈希、时间戳、Merkle 根等)。

作用:批量打包交易、形成链式结构,以保证顺序、安全和可追溯。


4. 时间戳(Timestamp)

定义:区块头里记录的一个时间点,表示“这些交易被哪个时间点打包进该区块”;该区块中所有交易共享相同时间戳

作用:帮助了解交易发生的大概时间,用于时间序列分析或审计。


5. 收/发双方地址(From/To)

From:发起交易的地址。

To:接收方地址。如果是普通转账,就是收款者;如果是智能合约交互,就是合约地址 。

作用:辨别交易的方向和目的对象。


6. 转账金额(Value)

定义:交易中实际转移的 ETH 数量。

注意:若交易仅是调用合约而未发送 ETH,Value 会是 0。


7. 交易费(Transaction Fee)

定义:用户为交易支付的网络手续费(给矿工/验证者),Transaction Fee = Gas fee = Gas Used × Gas Price

作用:决定矿工的打包优先级,费越高,确认速度越快。


8. Gas 与 Gas 价格(Gas Price)

Gas:执行交易所需的“计算单位”(操作复杂度越高,消耗越多)。

Gas Price:你愿意为每单位 Gas 支付多少 ETH(单位是 Gwei,即 10⁻⁹ ETH)。


9. Nonce

定义:一个地址自己发出的交易计数器,每发送一笔 +1,从0开始。

作用

  1. 保证交易顺序一致;
  2. 防止重放攻击和重复交易,
  3. 如果同地址先后发多笔,只能按 nonce 顺序执行。

智能合约数据

智能合约数据


名称 作用
函数(Function) 用于执行逻辑,与用户交互,如转账、设置参数、查询
事件(Event) 记录操作,让外部监听
变量(Variable) 存储状态数据,如余额、总量。供外部快速查询

合约定义逻辑(函数)

什么是函数?

函数就像合约里的“操作按钮”,包裹着一段代码,用于执行某个特定任务。

作用: 用户或其他合约通过调用函数来触发逻辑,比如转账、查询余额、交互兑换等。


合约定义事件(Events)

什么是事件?

就是在函数执行时“发出的广播信号”,类似“铃声提示”。

比如 Transfer(from, to, amount) 就代表一笔转账发生了。

作用:

效果: 减少 Gas 占用,又让外部可以高效地查询特定操作(如转账、授权、交换等)。


合约定义变量(Variables)

什么是变量?

用于存储持久化的状态数据,例如:

变量类型:

作用:

范围(可见性):


常见链上数据指标

链上数据解释


1. 总锁仓量 (Total Value Locked, TVL)

定义:存入 DeFi 协议的总资产价值(通常以 USD 或 ETH 计)。包含:流动性池(如 DEX 中 USDC‑WETH 池中资金)、抵押贷款(存为贷款抵押)、收益聚合(类似 ETF、私募)。

应用

计算公式TVL = 协议中所有资产现价总和(USD 或 ETH)

示例:Alice 存 10 ETH,Bob 存 20 ETH → 协议 TVL = 30 ETH。


2. 活跃地址数 (Active Addresses)

定义:在某个时间段内至少执行过一次交易(发/收都可)的唯一地址数。类似传统的“活跃用户”,但范围是区块链地址。

应用:反映协议或链的用户活跃度/使用量 / 增长趋势。

特点:只计一次;日活/月活均可。

示例:某段时间内,Alice 和 Bob 各交易一次,还有 Charlie 两次交易 → 活跃地址计为 3。


3. 交易数 & 交易量

交易数 (Transaction Count):某时间段内发生的交易笔数(每笔交易哈希作为计数单位)。

交易量 (Trading Volume):这些交易涉及的资产总价值(通常以 USD 或 ETH 计)。

应用

示例:Alice 转 2 ETH,Bob 转 3 ETH,Charlie 转 1 ETH → 交易数 = 3,交易量 = 6 ETH。


4. 交易费用 / Gas 费

定义:用户为交易支付给矿工或验证者的费用,即交易成本。

计算Transaction Fee = Gas Used × Gas Price

应用

示例:如果交易使用 21,000 Gas,Gas Price 为 50 Gwei → 交易费 = 21,000 × 50 Gwei = 1,050,000 Gwei = 0.00105 ETH。

gas计算


链上数据分析流程及工具

数据分析流程

数据分析的ETL流程

和Web2数据分析类似,一个完整的链上数据分析流程需要经过以下几个步骤:

数据抽取(Extract) → 清洗转换(Transform) → 加载(Load)到数据仓库 → 依据不同业务线及观测指标分析数据 → 输出量化结果。

数据抽取(Extract)

定义:从区块链(如通过 RPC 节点或 Etherscan API)获取原始数据,如区块、交易、事件日志。

特点:原始数据通常是非结构化的 HEX 信息,包括交易输入输出、日志、Trace 等。

例子:调用 Etherscan API 抓取某合约的所有 Deposit 事件原始日志。


清洗转换(Transform)

定义:将非结构化的原始数据(十六进制)解析成结构化格式,通过 ABI 解码参数、日志和交易内容。

例子:解析 Deposit(address user, uint amount) 事件,得到 { user: 0x123… , amount: 10 ETH },转换成 JSON 或表格列。


加载(Load)

定义:把清洗后的结构化数据存入数据库或数据仓库,便于后续查询和分析。

例子:将解析好的 Deposit 事件写入 SQL 表 deposits(user, amount, timestamp)


分析与输出

定义:根据业务需求(如 TVL、活跃地址、交易量)进行计算、聚合、筛选,并输出可视化结果。

例子


区块链数据产品

基于链上数据分析的ETL流程,区块链数据产品可以分为数据源、数据开发工具(Data Dev)和数据应用(Data App)三类。

数据源(Raw data + 索引API)

通过节点或 API 提供原始链数据(区块、交易、日志)

The Graph、Alchemy

数据开发工具(Data Dev)

针对数据分析或开发人员,可完成ETL,支持 SQL/GraphQL 查询和共享

Dune、Flipside

数据应用(Data App)

针对普通用户展示可视化结果,定制性较低但易读

Nansen(巨鲸 & Smart Money 行为分析)、Debank(多链资产追踪)、DefiLlama(DeFi TVL & 收益率分析)


目前链上数据分析赛道生态位已经有诸多玩家,根据面向的不同用户类型、不同赛道都有对应的数据产品布局。

赛道生态


觉得文章不错就支持一下呗~

打赏二维码

本文版权归 June 所有,采用 CC BY-NC-ND 4.0 国际许可协议 授权。

非商业转载请注明作者及原文链接,禁止改编及用于商业用途,商业合作请联系:yula.qian@gmail.com