原文标题:《Using On-Chain Data for Policy Research: Part 1》
原文作者:Brendan Malone,Paradigm
原文编译:Kxp,BlockBeats
I. 引言
Crypto 政策在制定时很少会用到真实且细化的数据,原因主要有以下三点:
1. 新兴技术领域的相关政策大多还停留在理论及定性分析层面,早期阶段很少会使用到数据。
2. 尽管链上数据全部开放透明,但要想访问这些数据人们需要在短期内完成大量工作(即直接从区块链提取原始数据),即便对于 Crypto 原生从业者来说也是如此。
3. 区块链「取证」公司和数据供应商有少量的数据产品,但它们都不具备灵活性/可定制性,也不能满足经济/金融研究人员的需求。
许多现代经济学和金融学研究人员错过了将工具应用于 Crypto 数据分析的机会。从设计上讲,Crypto 可以向任何人提供细化数据,但大部分政策在制定时仍依赖于 CoinMarketCap 等外部预聚合时间序列数据源,而不是直接从数据源获取数据,这又是什么原因导致的呢?
正如政策制定者可以查询美国每家主要银行的资产负债表,并逐秒观察消费者存款的变化一样,他们也可以毫不费力地查看整个 Ethereum 生态系统的 Stablecoin 发行情况,但大多数分析 Stablecoin 的政策文件却采取了一种探讨假设事件的分析方法。
CleanSpark第四季度收入为2620万美元,低于预期:金色财经报道,比特币矿商CleanSpark第四季度收入为2620万美元,略低于分析师估计的2740万美元。净亏损为4230万美元,而估计亏损为1540万美元。首席财务官Gary Vecchiarelli在一份声明中表示,“第四季度的大部分亏损主要是由于商誉和比特币余额的减值,以及因修改权益工具而产生的非现金费用。”[2022/12/15 21:45:28]
我将在本篇中具体阐释以下几点内容,希望可以对想要使用链上数据的政策研究人员有所帮助:
· 链上数据的获取方法
· 链上数据所采用的结构
· 提取和使用链上数据的几个基本工具
在随后的文章中,我将探讨如何使用这里收集的数据来判断 Crypto 市场的走势。同时,我将在结尾发布可供免费使用的数据和代码。通过阐明如何在区块链中查询数据,我希望向大家展示 Crypto 的开放性可以为数据决策开辟的新方法。
如果您就职于一家监管机构或研究机构,并在获取 Crypto 数据时遇到了困难,欢迎与我们取得联系分享你的想法,了解 Paradigm 可以为您提供哪些帮助。
II. 链上数据获取方法
一般来讲,数据收集工作应集中在一个区块链(Ethereum)及特定项目的子集上,这些项目主要是以美元计价、法币支持的 Stablecoin,具体包括 USDC、Tether、Binance USD、Pax Dollar 和 Gemini Dollar。该方法广泛适用于链上数据,即便你想创建一个不同的数据集。
数字支付平台 Flexa 计划收购营销技术公司 Drop Party:6月10日消息,数字支付公司 Flexa 计划收购营销技术公司 Drop Party,以通过各种在线活动与用户进行互动。Drop Party 将负责连接粉丝和 Flexa 商家,开发忠诚度平台,并整合包括 NFT 和即时数字支付在内的新技术。此外,Flexa 还宣布扩展了适用于多种加密货币和钱包的支付套件,新功能将推出支持 99 种数字货币的支付选项。(Coindesk)[2022/6/10 23:05:39]
Etherscan 这类区块浏览器非常适用于查看交易快照以及收集特定智能合约的信息,但根据我的经验,它们却不太能用于生成大型数据集。在收集和处理原始数据时,你基本上有两个选择:(1)在本地运行一个完整的节点,或(2)查询已经从链上直接写入原始数据的数据库。第一种方法对于专业技能和计算资源的要求比较高,而第二种方法则只需要基本的 SQL 和 Python 技能就可以实现,所以这里我们将采用第二种方法。
Dune 和谷歌云平台(GCP)的 BigQuery 有最新的链上数据,这些数据都以表格的形式存储在数据库中,研究人员可使用 SQL 命令对其进行查询。Dune 还提供免费的数据库,不过其速度较慢,而且还有些局限性,但它非常适合于 A/B 测试的数据查询,也有助于你熟悉数据库的运行模式,尤其是对于那些不善于使用 SQL 查询关联数据库的人。BigQuery 虽然更加灵活快捷,但谷歌会对计算资源收费,所以其价格也相对昂贵。我在第一次处理数据时,为了节省费用,我会先在 Dune 中测试查询语句,然后再将其输入 GCP 中运行。在大多数情况下,这种方法都能起到很好的效果(还有一点值得注意的是,Dune 的 Crypto 表格数量至少是 GCP 的 100 倍,包括一些用户生成、预先清理过的高质量 Crypto 表格。相比之下,GCP 中的数据大多是原始区块或交易。Dune 也有一些非常方便的内置数据可视化工具,值得单独购买。)
SBF:赞同Paradigm联创,OFAC的审查存在很多弊端:金色财经报道,FTX首席执行官SBF发推表示,对Paradigm联创的做法表示赞同,并表示,OFAC的审查做法会对(加密行业)产生很多不好的影响。同时,SBF认为区块链基础层非常重视其金融职责以防范金融犯罪。
此前报道,加密风险资本Paradigm在其官网发表文章探讨制裁和审查对区块链基础设施的影响。文章表示,美国财政部外国资产控制办公室(OFAC)不应该要求任何区块链基础层参与者审查受制裁的地址。[2022/9/10 13:20:40]
III. 链上数据结构
要回答这个问题,你首先需要搞清楚自己处理数据的目的。对于这个测试案例,我决定为主要的法定支持 Stablecoin 建立一个大型的时间序列数据集,并观察一些特定的行为: 铸币(即发行 Stablecoin),烧毁 (即停止流通 Stablecoin) 和转移。我之所以选择以这种方式进行研究,是因为政策制定者和学者目前最为关注法定支持的 Stablecoin,所以这些数据在短期内可能相当有用。
以美元计价的几大 Stablecoin 都采用了 ERC-20Token 标准。顾名思义,ERC-20 是一种在 Ethereum 上使用智能合约创建 Token 的标准化方式。如果你把区块链理解为一个巨大的去中心化 Excel 表格,那么智能合约就类似于 Excel 函数。在函数中输入参数之后,它将使用其内置逻辑产生一个特定的输出结果(例如,MAX 函数就是用来输出所输入参数中的最大值)。
Celer与Oasis达成合作,以将cBridge集成至Emerald ParaTime:2月8日消息,Celer Network宣布与Oasis Protocol达成合作,将cBridge集成至Emerald ParaTime,以实现更好的区块链互操作性。用户现可通过cBridge将以太坊上的USDT、USDC、WETH、DAI ,BSC上的BNB、BUSD,Fantom上的FTM以及Avalanche上的AVAX快速低成本地跨链至Oasis。
此外, Celer和Oasis将基于Celer跨链消息框架(Celer IM)达成更多合作,比如在Oasis上实现跨链函数调用、跨链智能合约调用等,这意味着其他区块链生态的用户将能够一键使用基于Celer IM部署在Oasis上的应用,而不必切换其所连接的区块链。[2022/2/8 9:38:57]
我们可以使用智能合约的 Ethereum 地址来对它们进行定位,这些地址是区块链数据结构中的唯一标识符:
· USDC
· Tether USD
· Binance USD
· Pax Dollar
· Gemini Dollar
与 API 类似,智能合约也是可以重复使用的程序。每次智能合约获得互动指令时,都会产生该互动的记录,并由 Ethereum 协议以日志的形式记录在区块链上,而这些日志则构成了智能合约活动的可靠信息来源。
中币(ZB)宣布支持Spark对XRP持有者的空投:根据官方公告,中币(ZB)将支持Spark(SPARK)空投XRP(Ripple)用户的计划,并将在12月12日8:00对持有XRP的账户进行快照。中币将于12月10日18:00停止XRP借币;并于12月11日18:00暂停XRP的充提业务,交易不受影响。用户可将XRP充值到中币平台,中币将为用户处理好XRP空投事宜,并将在收到SPARK空投后进行分发,用户获得SPARK分发数量 = 中币获得的SPARK数量 * 用户持仓占比;持仓占比是指:用户XRP持仓数量 / 中币总XRP持仓数量。更多详情请查看中币官方公告。[2020/12/1 22:42:47]
当智能合同执行一个特定函数时,例如烧毁 ERC-20 Stablecoin 以将其从流通中移除,该函数及其参数将作为交易日志记录在区块链上。
在下面的交易中,USDC Stablecoin 的发行商 Circle 烧毁了价值 1056.92 美元的 USDC。
如果你切换到「日志」标签,你就可以查看交易事件日志,相应的字段为
· 地址:智能合约的合约地址。USDC Stablecoin 的合约地址是0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48。
· 名称:智能合约执行的函数,以及该函数中的参数。在这里,智能合约正在调用烧毁函数,该函数接收的参数指定了所烧毁币的发送地点(例如燃烧池,必须是 Ethereum 地址)和烧毁币的数量(其金额必须是小于 256 位的无符号整数)。
Etherscan 的输出结果还会显示主题和数据字段,这些字段包含了我们在分析交易时需要解析的大部分相关信息。
· Topic0 是函数签名的哈希值。从本质上讲,它会将函数及其参数经由单向算法得到一个唯一的函数哈希值。Ethereum 使用的是 Keccak-256 哈希函数,当你通过 Keccak-256 算法输入函数签名时,它总是会产生相同的哈希值,所以任何时候该哈希值出现在日志中,你都能确信是调用了同一个函数。
· Topic1 是烧毁函数的一个索引参数。在这里,Topic1 是烧毁的 Token 被发往的地址。(注意:如果烧毁函数有更多的参数,这些参数将作为额外的主题出现)
· 这里的数据字段表示所烧毁 Token 的数量。
既然我们已经了解了链上数据的基本结构,就可以开始从 Dune 和 GCP 中提取数据了。
IV. 提取并处理链上数据的基本工具
如前所述,在这个例子中,我选择从现有数据库中提取链上数据,而不是访问 Ethereum 网络上的活动节点。为了便于理解,我使用 SQL 从 GCP 提取了大量原始数据表格,然后在 Python 中使用 pandas 库对其进行清理。
当我们从 GCP 提取表格时,我们将使用 BigQuery,它储存有很多 Ethereum 的数据表,如下图左边一栏所示。当你点击一个表格时,相应的数据库模式就会出现,就如下图中的 ethereum.logs 表。与此同时,其中涉及的地址、数据和主题都会记录到日志数据中去。
下图中的查询语句将用于提取日志表中涉及与 USDC、Tether USD、Binance USD、Pax Dollar 或 Gemini Dollar 合约互动的所有记录。除了 ethereum.logs 中的信息外,一些额外的信息也很有用,所以我还合并了 ethereum.block 表中的数据,其中涵盖了 Gas 费等信息。
得到的表格可以直接由 Python 读取,并借助 pandas 数据框架细分为以下字段:
· log_index
· transaction_hash
· transaction_index
· address
· data
· topics
· block_timestamp
· block_number
· block_hash
· number
· miner
· size
· gas_limit
· gas_used
· base_fee_per_gas
这些字段中的大多数都可以直接使用,不过第三节中讨论的主题字段需要用 Python 进行一些额外的清理,以便将其分成多列。
V. 结语
这篇文章使用的是 Ethereum 的日志数据,同样的方法也可以用来访问链上的各种数据。Python 和 SQL 是大多数经济学家和政策制定者所熟悉的工具,它们可以发挥很大作用。与传统金融相比,Crypto 更具透明度。这样一来,研究人员就可以利用实时数据来阐明金融体系的运作方式,并及时控制住可能出现的风险。
区块律动BlockBeats
媒体专栏
阅读更多
金色早8点
金色财经
1435Crypto
吴说区块链
blockin
比推 Bitpush News
Block unicorn
Foresight News
Odaily星球日报
Bankless
DeFi之道
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。