JCCDex / ProjectFundingProposal

Jingtum & MOAC Project Funding Proposal
28 stars 8 forks source link

PFP47 基于墨客联盟公链的电子签章系统 #75

Closed lijiehelloworld closed 2 years ago

lijiehelloworld commented 3 years ago

概述: 本项目是基于MOAC联盟公链开发一套电子签章系统,丰富MOAC联盟链生态系统。

系统功能: 1.基于区块链的企业DID身份生产颁发, 2.基于区块链的企业签章合约、身份合约、合同合约。 3.企业用户用于基于ECDSA算法对合同签名,并数据上链。 4.不同文件格式的合同文件转换成PDF和预览,以及在pdf上将签名数据转换为可视的印章图像。 5.支持用户基于区块链上的数据直接合约合同的签署情况。 6.基于中心化服务的证书保存和管理平台。 7.其他:如通知,帮助文档等辅助功能。

项目产出: 1、H5客户端(适配PC和手机,注册、生成保管公私钥、上传预览合同、合同签名、合同核验等)。 2、客户端接口服务(注册、认证、签章合约部署、文件服务、链上数据统计、托管加密后私钥等)。 3、管理后台(用户管理、合约管理、合同管理、图表统计等)。 4、管理后台接口服务(用户管理、合约管理、合同管理、图表统计等)。 5、智能合约:签章合约、身份合约、合同合约等。 后端采用Java+Spring Boot框架、前端VUE框架,前后端分离模式开发。

工作量: 1.UI设计:20人日,其中客户端10人日、管理后台10人日; 2.开发:255人日,其中客户端 120人日、接口服务 60人日、管理后台 40人日、管理后台接口20人日、智能合约15人日; 3.测试:40人日 4.管理:20人日 合计:335人日

JCCDex commented 3 years ago

你这个工作范围太粗了,能给出到画面级别的工作清单吗?不然我不太好估计工数

ApisChen commented 3 years ago

基于墨客联盟链的电子签章系统,核心技术模块为用户/企业身份凭证(W3C DID和VC)下发、签章管理、合同签署、合同核验。具体系统交互时序图https://kdocs.cn/l/cmC9p9DGC0OK。

本次提案开源模块:

工作量合计110人日,具体见:https://kdocs.cn/l/caG7q8la70lC

成果验收,主要是源码、文档、可运行demo,都在工作量表格中。

AnFengDe commented 3 years ago

第一次30% 第二次支付30% 第三次付清 支付审计费用

ApisChen commented 2 years ago

项目提交:https://github.com/gaoshan-tech/sealcontract

gwang74 commented 2 years ago

审计报告

合约部署

合约审计

​ 1、部署实现合约:0xdB67F5ABa085347E4eFBF45E89d12Aae41AFBE2a

​ 2、部署代理合约:0x1b4892e9395cDCD49173eC3A0EFE5D78727C95a1

​ 3、功能测试:

​ - 初始化owner

​ - 禁止重复初始化owner

​ - 允许转移owner

​ - 添加身份

​ - 禁止重复添加身份

​ - 吊销身份

​ - 禁止重复吊销身份

​ - 查询身份有效性 ✅

​ - 查询身份吊销时间 ✅

​ - 允许重新添加已吊销身份&&身份有效性确认

​ - 禁止非owner账号操作(添加/吊销身份) ✅

​ - 支持合约升级 ✅

1、部署实现合约:0xF9Fa9C0D7f6952C32c13b26783Dc33CDbED3c8eC

2、部署代理合约:0x71c8F13b96Bb20e1F4EF592d3da87854e10b771D

​3、功能测试:

​ - 初始化owner

​ - 禁止重复初始化owner

​ - 允许转移owner

​ - 创建企业签章合约

​ - 查询指定索引的签章合约地址 ✅

​ - 查询指定法人和企业识别码的企业签章合约地址 ✅

​ - 预计算签章合约地址与实际地址匹配 ✅

​ - 查询签章合约owner ✅

​ - 查询签章合约状态 ✅

​ - 管理员吊销企业签章合约

​ - 查询签章合约吊销后的相关状态 ❗️(签章合约吊销后仍可执行授权)

​ - 允许带签名的企业签章合约授权

​ - 允许带签名的企业签章合约吊销授权

​ - 禁止授权签名重复使用 ✅

​ - 禁止非owner账号操作(不带签名的企业签章授权/吊销) ✅

​ - 支持合约升级 ✅

​ 1、部署实现合约:0x5C6D26949B3Ed382CCa9eE5E58218987f70F3c61

​ 2、部署代理合约:0xF9398CdCD15f527681D309066465AAB8fD8148Ac

​ 3、功能测试:

​ - 初始化owner

​ - 禁止重复初始化owner

​ - 允许转移owner

​ - 设置签章路由合约

​ - 禁止使用已吊销签章的合同上链

​ - 禁止使用未授权签章的合同上链

​ - 合同上链

​ - 查询合同是否已上链 ✅

​ - 查询指定合同上链信息 ✅

​ - 查询合同上链时间 ✅

​ - 禁止非owner账号操作(设置签章路由合约) ✅

​ - 支持合约升级 ✅

审计结果

1、签章路由合约在吊销签章合约后,该签章合约仍可以执行授权等操作(但在合同合约内校验了签章有效性),是否考虑将路由合约内的签章状态列表改为由签章合约存储状态并在操作时追加校验;

2、合同合约内引入SafeMath.sol,但并未使用;UpgradeabilityProxy.sol未引入Address.sol

3、其他功能测试均通过;

lijiehelloworld commented 2 years ago

对于审计结果进行一个补充说明: 1、设计基于2点考虑: 第一签章合约创建后,我们希望权利完全属于用户,平台也无权修改用户合约的任何数据, 第二考虑未来扩展性,签章合约也可以用第三方甚至用户自己创建,这样平台也不方便操作用户的合约。 平台只在路由合约中对于认证和吊销,进行背书,相关服务也会去路由合约去验证签章合约的有效性。 2、SafeMath.sol引入未使用,UpgradeabilityProxy.sol未引入Address.sol -----已修改,最新代码已提交。