REA 概念

难以解读的区块链交易

与传统的金融交易相比,区块链交易往往更为复杂,使得其所代表的底层事件难以理解。当交易涉及智能合约时,这种复杂性进一步加剧。由于区块链的去中心化特性,任何人都可以创建没有明确规则的智能合约,这导致了越来越多难以解读的交易。

这产生了两个问题:

  1. 不清晰:普通用户很理解区块链交易背后的影响,无法进行准确的财务分析。

  2. 集成难:传统平台在整合区块链交易时面临兼容问题,阻碍了区块链的更广泛应用。

解决以上问题,我们需要一个规范且标准化化的信息模型,能够以用户以及系统兼容友好的方式处理区块链交易。

REA 信息模型

REA(Resource, Event, Agent)正是一个完美的解决方案。REA 是 William E.McCarthy 在 1982 年提出的新的会计信息模型,它是一种对企业经济业务的原始描述方法,对企业的重要资源、事件、参与者及其相互关系建模,把与企业一切经营事件(财务的和非财务的)相关的内容,按其原本的实际语义(Semantic)而不是人为加工为借贷分录的形式输入数据库集中存储。

REA 模型的三大特点包括:基于数据、基于语义和基于结构化。这三大特点很好的满足了人们对于理解和存储区块链交易的需求,也能够被传统的 ERP 所接受。以下是一个例子,展示了根据 REA 模型解读的信息结果。

Blockchain TxREA Interpretation

0x37cd2a3f7c1bf25276b39f629677d10c0d32a7a0ab8fa24c9ef15ad2c9a7afa6

  • 0xbed…7c6b repaid a loan principal of 2,000 USDC to Aave Protocol v2

  • 0xbed…7c6b paid a loan interest of 340.35 USDC to Aave Protocol v2

  • 0xbed…7c6b paid a gas fee of 0.0066 ETH to Ethereum Validator

EventsResourcesAgents (from)Agents (to)

repay (loan principal)

2,000 USDC ($2,000)

0xbed...7c6b

Aave Protocol v2

pay (loan interest)

340.353418 USDC ($340.35)

0xbed...7c6b

Aave Protocol v2

pay (gas)

0.006266591 ETH ($10.8)

0xbed...7c6b

Ethereum Validator

REA Data Scheme

通过 Mest 协议,任何人都可以为一个区块链地址标注 Agent 信息,如果该地址是智能合约,还可以为对应的合约方法标注 Event 信息。

{
  "id": "4376c65d2f232afbe9b882a35baa4f6fe8667c4e684749af565f981833ed6a65",
  "pubkey": "6e468422dfb74a5738702a8823b9b28168abab8655faacb6853cd0ee15deee93",
  "created_at": 1673347337,
  "kind": 1011,
  "address": "0x37cd2a3f7c1bf25276b39f629677d10c0d32a7a0ab8fa24c9ef15ad2c9a7afa6",
  "tags": [
    ["agent", "Aave Protocol v2", "4376c65d2f232afbe9b882a35baa4f6fe8667c"]
    ["event", "Repay loan", "0x573ade81", "bab026fc230a0e3542bfaded54263d2d542fa"],
    ...
  ],
  "sig": "908a15e46fb4d8675bab026fc230a0e3542bfade63da02d542fb78b2a8513fcd0092619a2c8c1221e581946e0191f2af505dfdf8657a414dbca329186f009262"
}

其中 tags 表示和该地址相关的标签,分为 agent 和 event 两种:

  • Agent tag ["agent", "agent 名字", "标签提交 ID"]

  • Event tag ["event", "event 名字", "合约方法签名", "标签提交 ID"]

每个地址都可以包含多个 agent 和 event 标签,最终用户如何使用这些标签,将会由应用层来决定,例如引入投票机制筛选出共识标签,等等。

Last updated