- 写论文 ETA 5.2
- 绪论
- 基础知识
- 方案描述
- 代码描述
- 测试结果:和集成测试一起写
- 写客户端Lib ETA 4.23
- Core Library 95%
- 集成测试
ETA 4.29 - CLI前端
- 写服务端Lib 95% ETA 4.26
- Core
- 集成测试 ETA
4.295.4 - CLI前端
- 写冒烟测试 ETA
Before 5.1 - 完善,运行测试 ETA 5.1 - 5.2
Last active
May 1, 2023 16:09
-
-
Save CamberLoid/a160bb65acfc1d0bc64963d6f0678555 to your computer and use it in GitHub Desktop.
Chimata Progress & Plan (In Chinese)
- client.go: CLI客户端
- 不考虑,集中于集成的test和benchmark
- db.go:数据库操作,现阶段不考虑。
- [ ]
- crypto.go
- Phase 1 Core:
-
func CryptoInit()
-
func CKKSEncryptAmount(amount, pk) ct
加密 -
func CKKSDecryptAmountFromCT(ct, sk) float64
解密
-
- Phase 1 Core:
- transaction.go:
- Phase 1: Core
-
func u.TransferByReceiptPK(*User, float64)
: 使用接受者公钥进行转账,并使用发送者私钥签名。需要接受者确认; -
func u.TransferBySenderPK(*User, float64)
: 使用发送者密钥链进行转账和签名。不需要发送者确认。使用该方法时,服务端在验证后直接进行记账。- 转交给:
u.CreateTransferJob()
- 转交给:
- u.AcceptTransactionByTransaction(t Transaction): TransferByReceiptPK的后续处理方法,生成签名返回给服务端
-
前置:func u.NewIncomingTransaction
- u.RejectTransactionByTransaction(t Transaction): 生成取消签名
-
- u.VerifyAmountIsMoreThanBalance(): 客户端方面确认余额是否足够
-
- Phase 2: Extend
- u.AcceptTransaction(t interface{}):
- u.AcceptTransactionByUUID():
- Phase 1: Core
- server.go:
- CreateTransferJob(t Transaction):
-
func ConfirmTransaction
-
func RejectTransaction
向服务器发送新的交易请求,返回交易识别符uuid [16]byte
- CreateReceiveJob(): Advanced,后期处理
- user.go
- Phase 1:
-
type User struct
继承 internal/user 的共用部分- 不太完备,不勾上了
- Sign() 签名
-
func SignCipherText(ct)(sig ,err)
-
func SignAcceptTransactionCT(ct)(sig, err)
: 接受签名
-
-
u.GetBalance() float64
-
GetBalance(userUUID [16]byte) rlwe.CipherText
-
- u.DecryptAmountFromCT() 解密
- CKKSDecryptAmountFromCT
-
- Phase 2:
- u.QueryTransaction(q interface{})
- Phase 1:
- 冒烟测试 1
- 造两个User出来
- 造Switchingkey并丢给服务端
- 模拟转账
- 验证交易金额正确性
- 验证交易消耗时间
- 造两个User出来
- server.go: 主函数
- db.go: 数据库操作: 使用 SQLite
- api.go: 负责处理 RestfulAPI 请求
- Phase 1 核心
-
/transaction/create
: 创建新的交易-
.../bySenderPK
: -
.../byReceiptPK
:
-
-
transaction/get
: TransactionGetWithUUID -
Transaction/confirm
: 确认待确认的交易 -
User/GetBalance
: 以uuid为凭据,获取余额的密文
-
- Phase 2 其他更多
- User/GetTransaction: 以uuid为凭据,获取该用户的交易列表
- Phase 1 核心
Serverlib 负责所有离线的客户端可能的函数
- transaction.go
- VerifyTransactionValidity(t Transaction) error: 检验交易合法性:
- RequestCAVerifyValidity: 检验透支
- VerifyTransactionValidity(t Transaction) error: 检验交易合法性:
- crypto.go
- GetSwitchingKey(uuidIn, uuidOut)(*swk, error): 访问内部的
map[string]map[string]*swk
在第一阶段中,假设其已经有了这些重加密密钥信息- RequestSwitchingKey(uuidIn, uuidOut): Advanced用来向CA要求的重加密密钥的;
- ReEncryptCTWithSwk
- GetSwitchingKey(uuidIn, uuidOut)(*swk, error): 访问内部的
-
transaction.go
-
type Transaction struct
-
func GetSenderCT
-
func GetReceiptCT
-
- 大概没有了?
-
- 建表
- 测试
- 查询
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment