个人电子合同自动签署程序,实现基于哈希的简易签约,记录签约时间,双方标识,生成不可篡改凭证,适用于私人借款,合租协议。防止事后抵赖。
结合区块链与创新思维课程中的「去中心信任、不可篡改、时间戳证明」思想,设计一个
👉 「个人电子合同自动签署程序(Hash-Based Signing System)」
适用于:
✅ 私人借款
✅ 合租协议
✅ 兼职/合作约定
✅ 防事后抵赖的小型契约场景
一、实际应用场景描述(Scenario)
你是一名自由职业者 / 房东 / 出借人:
- 借给朋友 5000 元
- 与室友约定水电分摊
- 与设计师达成远程兼职合作
但你担心:
- 对方事后否认
- 聊天记录被删除
- 纸质合同太麻烦
- 第三方电子签约平台收费高、流程重
👉 你需要一种:
低成本、可自证、不可篡改、带时间戳的电子签约方式
二、引入痛点(Pain Points)
传统方式 问题
微信聊天约定 易删、无法律效力
纸质合同 难保存、难举证
第三方签约平台 收费、中心化
普通 PDF 可篡改、无时间证明
✅ 核心诉求:
能证明:
谁 + 在什么时间 + 签署了什么内容 + 内容没被改过
三、核心逻辑讲解(Core Logic)
🧠 设计思想(来自区块链课程)
我们不做“链”,而是用区块链思维:
合同原文 → SHA-256 哈希 → 时间戳 → 签名凭证
三大核心特性
1️⃣ 哈希唯一性
- 内容改动 → 哈希立刻变化
2️⃣ 时间锚定
- 签约时间写入凭证
- 可用 NTP / 系统时间(轻量)
3️⃣ 不可抵赖
- 双方各持一份凭证
- 可随时验证一致性
四、代码模块化设计(Python)
📁 项目结构
hash_contract_signer/
│
├── main.py # 入口
├── contract.py # 合同模型
├── signer.py # 签署逻辑
├── verifier.py # 验签逻辑
├── utils.py # 哈希与时间工具
├── sample_contract.json # 示例合同
└── README.md
1️⃣ utils.py(哈希 & 时间工具)
import hashlib
import time
def sha256_hash(data: str) -> str:
"""
对字符串进行 SHA-256 哈希
"""
return hashlib.sha256(data.encode("utf-8")).hexdigest()
def get_timestamp() -> int:
"""
获取当前 Unix 时间戳
"""
return int(time.time())
2️⃣ contract.py(合同模型)
from dataclasses import dataclass
from typing import Dict
@dataclass
class Contract:
party_a: str
party_b: str
content: Dict
3️⃣ signer.py(签署核心)
from utils import sha256_hash, get_timestamp
from contract import Contract
class ContractSigner:
def sign(self, contract: Contract) -> dict:
"""
生成不可篡改签约凭证
"""
contract_str = str(contract.content)
signature = sha256_hash(contract_str)
timestamp = get_timestamp()
credential = {
"party_a": contract.party_a,
"party_b": contract.party_b,
"timestamp": timestamp,
"hash": signature,
"content_snapshot": contract.content
}
return credential
✅ 这一步就是“区块链式记账”的核心
4️⃣ verifier.py(验签与防抵赖)
from utils import sha256_hash
class ContractVerifier:
def verify(self, credential: dict) -> bool:
"""
验证合同是否被篡改
"""
original_hash = credential["hash"]
current_hash = sha256_hash(str(credential["content_snapshot"]))
return original_hash == current_hash
5️⃣ main.py(示例运行)
from contract import Contract
from signer import ContractSigner
from verifier import ContractVerifier
import json
contract_data = {
"loan_amount": 5000,
"purpose": "个人借款",
"repay_date": "2026-05-23"
}
contract = Contract(
party_a="张三",
party_b="李四",
content=contract_data
)
signer = ContractSigner()
credential = signer.sign(contract)
print("✅ 签约完成,凭证如下:")
print(json.dumps(credential, indent=2, ensure_ascii=False))
# 模拟事后验证
verifier = ContractVerifier()
is_valid = verifier.verify(credential)
print("🔍 验签结果:", "通过" if is_valid else "失败")
五、README.md(使用说明)
# Hash-Based Personal Contract Signer
📌 简介:
基于哈希与时间戳的个人电子合同自动签署工具,
适用于私人借款、合租协议、兼职合作等场景。
🚀 使用方法:
bash
python main.py
📄 输出:
- 签约凭证(含哈希、时间、双方信息)
- 可保存为 JSON 文件作为证据
⚠️ 注意:
- 本工具不替代司法电子签约平台
- 建议配合邮件 / 聊天记录共同使用
六、核心知识点卡片(Knowledge Cards)
模块 关键技术点
哈希算法 SHA-256、雪崩效应
时间戳 时间锚定、顺序证明
不可抵赖 数字指纹、快照存证
区块链思维 去中心信任、防篡改
合同建模 结构化数据、可序列化
创新思维 用简单技术解决真实痛点
七、总结(Conclusion)
✅ 本方案:
- ✅ 零区块链基础设施
- ✅ 极低成本
- ✅ 完全可自证
- ✅ 适合个人级签约场景
📌 一句话总结:
**用“哈希 + 时间”构建属于普通人的可信契约工具,
不让“口头承诺”成为纠纷的起点。**
如果你愿意,下一步可以:
- ✅ 升级为 二维码签约凭证
- ✅ 增加 双方私钥签名
- ✅ 做成 Web / 微信小程序版本
利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!
