# BlockChain-Project **Repository Path**: lslslscai/BlockChain-Project ## Basic Information - **Project Name**: BlockChain-Project - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-15 - **Last Updated**: 2021-06-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Read-me ​ 本团队拟利用aelf区块链实现存证。 ### 1. 程序架构 - ##### 综述:本系统初步需要实现存证上链和存证转移的核心功能,之后实现存证的验证(即文件比对)。为更好实现功能,需要额外添加注册和登录功能(暂时不加入设计)。 - ##### 存证上链(CR_Upload): - 输入为内容信息、作者信息、时间戳和属性参数(默认为原创作者,无上一次交易,持有状态为版权持有人) - 输出为结果信息(布尔值),如果成功则为真,否则为假。 - ##### 存证转移(CR_Transfer): - 输入为代表版权持有的交易ID、交易对方的地址、时间戳和属性参数(默认为非原创人,有上一次交易,持有状态为版权持有人)。 - 输出为结果信息(布尔值),如果成功则为真,否则为假。 - ##### 存证验证(CR_Confirm)尚未设计完成。 - ##### 登录(Sign_In)与注册(Sign_Up)尚不需要设计。 ### 2. 存储架构 - ##### 综述:本系统参考了比特币的UTXO模型,将所有的存证以交易的形式存在于链上。 - ##### 交易内容: - 每一笔交易中必然包含他所使用的智能合约,相关参数均存储于智能合约中。 - 交易分两种:初始交易和授权/转让交易 > 初始交易所使用的智能合约method为CR_Upload,包含信息为内容信息、作者信息和属性参数。 > > 授权/转让交易所使用的智能合约method为CR_Transfer,包含信息为上一交易ID、交易对方(现版权持有人)地址和属性参数。 > > 可以通过授权/转让交易中心的“上一交易ID”完成溯源,直接找到初始交易,从而确定版权内容。 - ##### 参数说明 - 内容信息:暂且由哈希值代替,需要进一步设计 - 作者信息:包含作者的姓名等身份信息 - 时间戳:系统自动生成,为提交申请的时间,时间精度要求高 - 属性参数:由多位二进制数表示(具体多少位需要进一步设计,根据需要的参数数量变化) - 签名:系统自动生成,暂不需要考虑生成方式 - 上一交易ID:定位到上一次的交易,如果该交易存在于未交易版权池中,则证明其可以交易 ### 3. 合约内部逻辑 - ##### CR_Upload(需要先置的approve交易): - 输入内容信息、作者信息、时间戳属性参数(属性参数缺省时为默认值) - 验证版权是否已经上链(较为模糊,暂且跳过) - 验证作者信息(暂且跳过) - 生成交易,金额(存证手续费)某个为固定值。币种为aelf币,from为本人,to为合约本省,memo中写“Upload” - 提取交易ID,存入可交易版权池(暂且由State代替)中 - 返回true - ##### CR_Transfer(需要先置的approve交易): - 输入上一笔交易的ID、交易对方地址(缺省时自动提取本合约使用人的地址)、时间戳(系统自动提取)、交易金额和属性参数(属性参数缺省时为默认值) - 验证签名,确认是否为本人持有且具有交易权限(暂且跳过) - 生成交易,金额(版权转让/授权费)为输入值。币种为aelf币,from为对方交易地址,to为本人,memo中写“Transfer” - 如果为本次交易为版权转让(记录在属性参数中),则提取交易ID,存入可交易版权池(暂且由State代替)中;否则跳过。 - 返回true ### 4. 下一版本任务 - 设计登录和注册 - 完成测试程序 - 尝试增加验证模块