news 2026/4/26 14:55:10

社团活动经费公示程序,收支全部上链公开,成员可查,杜绝社团负责人挪用公款。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
社团活动经费公示程序,收支全部上链公开,成员可查,杜绝社团负责人挪用公款。

一、实际应用场景描述

某高校技术类社团(如区块链/全栈开发社团)每学期有固定经费来源:

- 学校下拨经费

- 企业赞助

- 活动报名费

支出包括:

- 场地租赁

- 物料采购

- 讲师礼品

- 餐饮报销

当前管理方式多为 Excel + 微信群截图,透明度不足,历史记录易被修改。

本程序用于:

- 所有收支行为写入区块链

- 成员可通过 CLI 查询任意一笔记录

- 负责人无法事后篡改数据

二、引入痛点分析

传统方式 存在问题

Excel / 手工记账 易误删、易篡改

群公告截图 无法验证真实性

中心化数据库 管理员权限过大

无审计机制 挪用难以发现

核心诉求:

不依赖信任人,而依赖可验证的数据结构。

三、核心逻辑讲解(简化区块链模型)

1️⃣ 数据结构设计

每一笔经费记录为一条 Block:

Block:

├─ index

├─ timestamp

├─ transaction_type (收入 / 支出)

├─ amount

├─ description

├─ operator

├─ previous_hash

└─ hash

2️⃣ 防篡改机制

- 每个区块包含 前一区块哈希

- 任意历史数据被修改 → 哈希断裂 → 链失效

- 成员可校验整条链完整性

3️⃣ 存储方式

- 本地 JSON 文件(教学场景)

- 不依赖第三方链(如 Ethereum)

- 适合社团内部可信环境

四、代码模块化设计

fund_chain/

├── block.py # 区块定义

├── blockchain.py # 链管理

├── cli.py # 命令行入口

├── utils.py # 哈希工具

├── data/

│ └── chain.json # 本地账本

└── README.md

五、核心代码实现(Python)

✅ block.py

import hashlib

import json

from datetime import datetime

class Block:

def __init__(self, index, transaction_type, amount, description, operator, previous_hash):

self.index = index

self.timestamp = datetime.now().isoformat()

self.transaction_type = transaction_type

self.amount = amount

self.description = description

self.operator = operator

self.previous_hash = previous_hash

self.hash = self.calculate_hash()

def calculate_hash(self):

block_string = json.dumps(self.__dict__, sort_keys=True)

return hashlib.sha256(block_string.encode()).hexdigest()

✅ blockchain.py

import json

import os

from block import Block

CHAIN_PATH = "data/chain.json"

class Blockchain:

def __init__(self):

self.chain = []

self.load_chain()

def create_genesis_block(self):

genesis = Block(0, "init", 0, "Genesis Block", "system", "0")

self.chain.append(genesis)

self.save_chain()

def add_transaction(self, t_type, amount, description, operator):

last_block = self.chain[-1]

new_block = Block(

index=last_block.index + 1,

transaction_type=t_type,

amount=amount,

description=description,

operator=operator,

previous_hash=last_block.hash

)

self.chain.append(new_block)

self.save_chain()

def save_chain(self):

os.makedirs("data", exist_ok=True)

with open(CHAIN_PATH, "w", encoding="utf-8") as f:

json.dump([b.__dict__ for b in self.chain], f, indent=2)

def load_chain(self):

if not os.path.exists(CHAIN_PATH):

self.create_genesis_block()

else:

with open(CHAIN_PATH, "r", encoding="utf-8") as f:

data = json.load(f)

self.chain = [Block(**b) for b in data]

def is_valid(self):

for i in range(1, len(self.chain)):

curr = self.chain[i]

prev = self.chain[i - 1]

if curr.previous_hash != prev.hash:

return False

return True

✅ cli.py

from blockchain import Blockchain

def main():

bc = Blockchain()

print("社团经费区块链系统")

print("1. 添加收入")

print("2. 添加支出")

print("3. 查看账本")

print("4. 校验链完整性")

choice = input("选择操作:")

if choice == "1":

amount = float(input("金额:"))

desc = input("说明:")

operator = input("负责人:")

bc.add_transaction("income", amount, desc, operator)

print("✅ 已上链")

elif choice == "2":

amount = float(input("金额:"))

desc = input("说明:")

operator = input("负责人:")

bc.add_transaction("expense", amount, desc, operator)

print("✅ 已上链")

elif choice == "3":

for b in bc.chain:

print(f"{b.index} | {b.timestamp} | {b.transaction_type} | {b.amount} | {b.description} | {b.operator}")

elif choice == "4":

print("链状态:", "合法 ✅" if bc.is_valid() else "异常 ❌")

if __name__ == "__main__":

main()

六、README 文件(节选)

# 社团经费区块链公示系统

## 功能

- 收支记录上链

- 历史不可篡改

- 成员可查

- 链完整性校验

## 使用方式

bash

pip install -r requirements.txt

python cli.py

## 适用场景

- 高校社团

- 学生组织

- 内部财务公示

七、使用说明(简要)

1. 负责人录入每笔收支

2. 系统自动写入区块

3. 成员运行程序查看完整账本

4. 定期执行「链校验」确认未被篡改

八、核心知识点卡片(教学用)

概念 说明

区块 单次交易的数据容器

哈希 数据指纹,防篡改

链式结构 前后关联,形成信任链

去中心思想 不依赖单一管理者

审计机制 可验证、可追溯

九、总结

本项目并非追求复杂公链技术,而是:

- 将区块链核心思想应用到真实社团治理

- 用最小可行方案解决“信任成本”问题

- 强调工程透明性 > 技术炫技

对社团而言,这是一次低成本、高可解释性的信任升级实验;

对学生而言,是一次完整的全栈 + 区块链思维训练。

如果你愿意,可以再:

- 扩展为 Web 可视化版本

- 增加多签审批逻辑

- 或改写为课程实验指导书风格

利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 14:55:07

财务台账定时云端归档备份,完整账务溯源管理实操落地

一、实际应用场景描述某小微企业或门店,使用本地 Excel / CSV / SQLite 记录日常账务:- 收入台账- 支出台账- 借支与归还记录- 月度利润数据随着时间推移:- 文件越来越多- 历史数据难以追溯- 本地硬盘损坏风险高- 无法快速定位某一笔账务来源…

作者头像 李华
网站建设 2026/4/26 14:51:20

如何免费将PPTX转换为交互式HTML页面:PPTX2HTML终极指南

如何免费将PPTX转换为交互式HTML页面:PPTX2HTML终极指南 【免费下载链接】PPTX2HTML Convert pptx file to HTML by using pure javascript 项目地址: https://gitcode.com/gh_mirrors/pp/PPTX2HTML 在数字演示时代,传统的PPTX文件面临着跨平台兼…

作者头像 李华
网站建设 2026/4/26 14:49:22

Android Auto应用安装完整指南:无需root轻松扩展车载功能

Android Auto应用安装完整指南:无需root轻松扩展车载功能 【免费下载链接】AAAD The original application for downloading and installing apps made specifically for Android Auto outside of Google Play Store. Active since 2021. 项目地址: https://gitco…

作者头像 李华