全球亚文化俱乐部联盟 技术文档 1:IC 卡存储流程说明
-
先将以下数据存入到一个 MessagePack。
-
研究员 GPC 编号(仅在转据点/转队/转俱乐部时才会发生变更,不可手动修改。在 GPC40 下,二进制形式,64 比特,也就是 8 字节;实际上当新版本 GPC 公布时,GPC 编号占用的字节数可能发生变化)
-
GPC 版本(不可手动修改,仅当 GSCU 公布新版本 GPC 时才会发生变更。不超过 24 字节)
-
昵称(或者说"代号",可手动修改。不超过 120 字节)
-
GSCU 电子钱包 GSD 余额(不可手动修改,仅在完成交易之后发生变更,以 u 为单位。用一个 16 字节(128 位)有符号整数表示。范围大约是-1.70x10\^38 至 1.70x10\^38 之间,若转换为 GSD,则是-1.70x10\^32 GSD 至 1.70x10\^32 GSD。1.70x10\^32 GSD 非常巨大,若按 1 GSD = 1.5 USD,那就是 2.55x10\^32 GSD,相当于太阳价值的 0.2 倍至 8.4 倍[^1])
-
简介(可手动修改。不超过 3000 字节)
-
扩展内容(分为 user(可手动修改,由研究员自行添加)和 system(不可手动修改,由系统提供)两类。仅受到 IC 卡内部 NOR 芯片(或者未来会用到的 FeRAM 芯片)的总容量限制。)
示例:
研究员 GPC 编号(code):LFN2018-00121376(8255201800121376)
GPC 版本(ver):GPC40
GSCU 电子钱包余额(balance):8293.666667 GSD(8293666667)
昵称(nickname):白雪公主
简介(intro):GSCU Wiki 创建者 | 现居福建厦门
扩展内容(extend):(例如:是否为 Wiki 管理员?)
得到以下 MessagePack(以下内容是为进行教学展示,对 extend 部分(扩展内容)进行了简化的,大多数情况下,未压缩的 MessagePack 有 512 字节至 8192 字节(压缩后可能会在 300 字节至 7000 字节之间)):
-
86 a4 63 6f 64 65 c4 08 00 1d 54 0f f2 d8 6c 20
a3 76 65 72 d9 05 47 50 43 34 30 a8 6e 69 63 6b
6e 61 6d 65 d9 0c e7 99 bd e9 9b aa e5 85 ac e4
b8 bb a7 62 61 6c 61 6e 63 65 c4 10 00 00 00 00
00 00 00 00 00 00 00 01 ee 57 4f 6b a5 69 6e 74
72 6f da 00 27 47 53 43 55 20 57 69 6b 69 e5 88
9b e5 bb ba e8 80 85 20 7c 20 e7 8e b0 e5 b1 85
e7 a6 8f e5 bb ba e5 8e a6 e9 97 a8 a6 65 78 74
65 6e 64 82 a4 75 73 65 72 de 00 00 a6 73 79 73
74 65 6d de 00 01 aa 77 69 6b 69 5f 61 64 6d 69
6e c3
分析:
| 字节 | 内容 | 长度 | 说明 |
|---|---|---|---|
| 0x00 | 86 | 1字节 | 6个元素:"code"、"ver"、"nickname"、"balance"、"intro"、"extend" |
| 0x01 | a4 | 1字节 | 接下来是4字节字符串 |
| 0x02-0x05 | 63 6f 64 65 | 4字节 | "code" |
| 0x06-0x07 | c4 08 | 2字节 | 接下来是8字节二进制 |
| 0x08-0x0f | 00 1d 54 0f f2 d8 6c 20 | 8字节 | GPC编号(8255201800121376,也就是LFN2018-00121376) |
| 0x10 | a3 | 1字节 | 接下来是3字节字符串 |
| 0x11-0x13 | 76 65 72 | 3 字节 | "ver" |
| 0x14-0x15 | d9 05 | 2字节 | 接下来是5字节字符串 |
| 0x16-0x1a | 47 50 43 34 30 | 5字节 | GPC版本("GPC40") |
| 0x1b | a8 | 1字节 | 接下来是8字节字符串 |
| 0x1c-0x23 | 6e 69 63 6b 6e 61 6d 65 | 8字节 | "nickname" |
| 0x24-0x25 | d9 0c | 2字节 | 接下来是12字节字符串 |
| 0x26-0x31 | e7 99 bd e9 9b aa e5 85 ac e4 b8 bb | 12字节 | 昵称("白雪公主") |
| 0x32 | a7 | 1字节 | 接下来是7字节字符串 |
| 0x33-0x39 | 62 61 6c 61 6e 63 65 | 7字节 | "balance" |
| 0x3a-0x3b | c4 10 | 2字节 | 接下来是16字节二进制 |
| 0x3c-0x4b | 00 00 00 00 00 00 00 00 00 00 00 01 ee 57 4f 6b | 16字节 | GSCU电子钱包GSD余额(例如给定内容为8293666667,也就是8293.666667 GSD) |
| 0x4c | a5 | 1字节 | 接下来是5字节字符串 |
| 0x4d-0x51 | 69 6e 74 72 6f | 5字节 | "intro" |
| 0x52-0x54 | da 00 27 | 3字节 | 接下来是39字节字符串 |
| 0x55-0x7b | 47 53 43 55 20 57 69 6b 69 e5 88 9b e5 bb ba e8 80 85 20 7c 20 e7 8e b0 e5 b1 85 e7 a6 8f e5 bb ba e5 8e a6 e9 97 a8 | 39字节 | 简介(例如给定内容为"GSCU Wiki创建者 | 现居福建厦门") |
| 0x7c | a6 | 1字节 | 接下来是6字节字符串 |
| 0x7d-0x82 | 65 78 74 65 6e 64 | 6字节 | "extend" |
| 0x83 | 82 | 1字节 | "extend"内2个元素:"user"和"system" |
| 0x84 | a4 | 1字节 | 接下来是4字节字符串 |
| 0x85-0x88 | 75 73 65 72 | 4字节 | "user" |
| 0x89-0x8b | de 00 00 | 3字节 | "user"内0个元素 |
| - | - | 0字节 | (还没有任何内容) |
| 0x8c | a6 | 1字节 | 接下来是6字节字符串 |
| 0x8d-0x92 | 73 79 73 74 65 6d | 6字节 | "system" |
| 0x93-0x95 | de 00 01 | 3字节 | "system"内1个元素:"wiki_admin" |
| 0x96 | aa | 1字节 | 接下来是10字节字符串 |
| 0x97-0xa0 | 77 69 6b 69 5f 61 64 6d 69 6e | 10字节 | "wiki_admin" |
| 0xa1 | c3 | 1字节 | TRUE |
长度统计:
GPC 编号:8 字节
GPC 版本:5 字节
昵称:12 字节
余额数值:16 字节
简介:39 字节
扩展内容(user):0 字节
扩展内容(system):12 字节
框架内容:70 字节
总计:162 字节 2. 然后,压缩数据:以级别 9 的 GZIP,或者以 LZMA,对 MessagePack 进行压缩。当然,也可以跳过此步骤,直接进入加密步骤。 3. 最后,通过 AES256 进行加密,存入 NOR 芯片(或者 FeRAM 芯片)。
[^1]: 太阳含有 1.47x10\^30 kg 的氢(含 4.9x10\^25 kg 氘)、4.94x10\^29 kg 的氦(含 6.2x10\^25 kg 氦-3)和 2.66x10\^28 kg 重元素(O、C、Ne、Fe、Si、Mg、S、......),若按普通氢每千克 2 美元,氘每千克 12500 美元,普通氦每千克 50 美元,氘每千克 2000 万美元,重元素每千克 100 美元来算,总价值约为 1.27x10\^33 美元,2.55x10\^32 仅仅是它的 20%;若不算氘和氦-3,则总价值约为 3.03x10\^31 美元,2.55x10\^32 是它的 8.4 倍。