当前位置: 首页 > news >正文

化妆品成分溯源程序,成分,批次,检测报告上链,杜绝假货,劣质产品。

一、实际应用场景描述

化妆品行业存在大量 SKU,成分复杂,供应链环节多,消费者在购买时通常只能看到:

- 包装上的成分表

- 商家提供的检测报告(纸质或 PDF)

- 品牌方宣称的“批次信息”

当出现质量问题或假货争议时,消费者往往面临:

- 成分与宣传不符

- 检测报告造假或张冠李戴

- 批次信息无法真实追溯

本示例程序旨在构建一个教学级、可验证的化妆品成分与批次溯源系统,通过 Python 将成分清单、检测报告摘要、批次信息上链,为消费者和监管部门提供可核验的技术辅助手段。

二、引入痛点(Why Blockchain)

传统方式 存在问题

纸质/PDF报告 易伪造、难批量核验

中心化数据库 可被品牌方或平台修改

包装信息 可印刷虚假成分

维权困难 证据链不完整

区块链在该场景中的核心价值不是“去中心化美妆”,而是:

- 成分与批次锚定:生产时即上链

- 检测报告不可篡改:报告哈希固定

- 消费者可自查:扫码或输入批次核验

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

1️⃣ 基本对象

- ProductBatch(产品批次)

- 批次号

- 生产日期

- IngredientList(成分清单)

- 成分名称

- 含量范围

- TestReport(检测报告)

- 报告编号

- 摘要

- 哈希

2️⃣ 上链内容

批次号

成分清单摘要

检测报告哈希

生产时间

操作人

3️⃣ 业务流程

原料采购 → 配方确定 → 生产批次 → 检测报告 → 信息上链 → 消费者核验

四、代码模块化设计

📁 项目结构

cosmetic_trace_chain/

├── blockchain.py # 区块链结构

├── models.py # 数据模型

├── batch_service.py # 批次与成分

├── report_service.py # 检测报告

├── verification.py # 消费者核验

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

├── utils.py # 工具函数

└── README.md

五、核心代码示例(Python)

✅ 仅用于教学与原型验证

✅ 不上链原始报告文件,仅上链哈希

✅ 注释清晰,便于理解

1️⃣ models.py(数据模型)

from dataclasses import dataclass

from datetime import datetime

import hashlib

@dataclass

class Ingredient:

name: str

percentage_range: str # 如 "0.5%-1.0%"

@dataclass

class ProductBatch:

batch_id: str

product_name: str

production_date: datetime

ingredients: list[Ingredient]

def ingredient_summary(self) -> str:

return ",".join(

f"{i.name}:{i.percentage_range}" for i in self.ingredients

)

def compute_hash(self) -> str:

content = (

f"{self.batch_id}"

f"{self.product_name}"

f"{self.production_date.isoformat()}"

f"{self.ingredient_summary()}"

)

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

2️⃣ blockchain.py(简化区块链)

from typing import List

import hashlib

import json

class Block:

def __init__(self, index: int, record: dict, previous_hash: str):

self.index = index

self.record = record

self.previous_hash = previous_hash

self.timestamp = None

self.hash = self.compute_hash()

def compute_hash(self) -> str:

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

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

class CosmeticChain:

def __init__(self):

self.chain: List[Block] = []

self.create_genesis_block()

def create_genesis_block(self):

genesis = Block(0, {"info": "genesis"}, "0")

self.chain.append(genesis)

def add_record(self, record: dict):

last_block = self.chain[-1]

new_block = Block(

index=last_block.index + 1,

record=record,

previous_hash=last_block.hash

)

self.chain.append(new_block)

3️⃣ batch_service.py(批次与成分)

from blockchain import CosmeticChain

from models import ProductBatch

class BatchService:

def __init__(self):

self.chain = CosmeticChain()

def register_batch(self, batch: ProductBatch):

record = {

"batch_id": batch.batch_id,

"product_name": batch.product_name,

"production_date": batch.production_date.isoformat(),

"ingredient_summary": batch.ingredient_summary(),

"hash": batch.compute_hash()

}

self.chain.add_record(record)

return record["hash"]

4️⃣ report_service.py(检测报告)

from blockchain import CosmeticChain

import hashlib

class ReportService:

def __init__(self):

self.chain = CosmeticChain()

def register_report(self, batch_id: str, report_summary: str, report_file_hash: str):

record = {

"batch_id": batch_id,

"report_summary": report_summary,

"report_file_hash": report_file_hash

}

self.chain.add_record(record)

return hashlib.sha256(str(record).encode()).hexdigest()

5️⃣ verification.py(消费者核验)

from models import ProductBatch

class VerificationService:

def verify_ingredient(self, batch: ProductBatch, on_chain_hash: str) -> bool:

return batch.compute_hash() == on_chain_hash

6️⃣ cli.py(命令行入口)

from models import ProductBatch, Ingredient

from batch_service import BatchService

from report_service import ReportService

from verification import VerificationService

from datetime import datetime

batch_service = BatchService()

report_service = ReportService()

verification_service = VerificationService()

batch = ProductBatch(

batch_id="COS20260101",

product_name="修护精华液",

production_date=datetime.now(),

ingredients=[

Ingredient("烟酰胺", "2.0%-3.0%"),

Ingredient("透明质酸", "0.5%-1.0%")

]

)

tx1 = batch_service.register_batch(batch)

print("批次信息上链哈希:", tx1)

tx2 = report_service.register_report(

batch_id=batch.batch_id,

report_summary="重金属检测合格",

report_file_hash="abc123filehash"

)

print("检测报告上链哈希:", tx2)

is_valid = verification_service.verify_ingredient(batch, tx1)

print("成分核验结果:", "一致" if is_valid else "异常")

六、README 文件(示例)

# 化妆品成分与批次溯源系统(教学原型)

## 项目简介

本项目为课程示例,展示如何利用 Python 构建简化区块链结构,实现化妆品成分、批次与检测报告的溯源与核验。

## 运行环境

- Python 3.9+

## 运行方式

bash

python cli.py

## 注意事项

- 本系统仅用于教学与实验

- 不涉及真实商品流通与销售

- 不上传原始检测报告文件

七、使用说明(面向学生/开发者)

1. 阅读

"models.py" 理解成分与批次结构

2. 修改

"cli.py" 模拟不同产品与成分

3. 可扩展:

- 增加“消费者扫码核验”

- 增加“监管节点”

- 改为 Web API 供前端调用

八、核心知识点卡片(课程向)

模块 关键知识点

区块链 哈希锚定、不可篡改

供应链 批次管理、成分溯源

消费者权益 可验证信息

软件工程 模块化、单一职责

Python 实践 dataclass、CLI、哈希计算

九、总结

本方案从化妆品行业假货与劣质产品问题出发,剥离商业营销色彩,仅从技术视角展示:

- 区块链如何作为“成分与批次的可信见证人”

- 如何通过“摘要 + 哈希”兼顾隐私与可验证性

- 如何在课程中讨论技术与监管的边界

它不是一个完整的商品流通系统,而是一个可用于课堂讨论、政策研究、创新实验的教学原型。

如果你愿意,下一步可以:

- 改造成 Web API(FastAPI)

- 设计 消费者端核验流程

- 或结合 智能合约 + 多方节点

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

http://www.jsqmd.com/news/771492/

相关文章:

  • 2026年江浙沪企业租车、个人出行租车服务优选 - 速递信息
  • FPGA运行时重配置技术解析与应用实践
  • 杉德斯玛特服务卡怎么回收,1分钟完成有何实用技巧 - 淘淘收小程序
  • 2026GEO服务商权威测评报告:国内口碑好、值得合作的GEO服务商有哪些 - 博客万
  • 郑州汽修店走红:专治底盘异响与轮胎偏磨
  • Android开发工程师(聚焦蓝牙、WiFi、NFC技术)技术开发指南
  • DevOps 2026.05.06
  • 春秋云境CVE-2020-18262
  • 2026年5月合肥PVC快速门厂家最新推荐:电动卷帘门、防火门、伸缩门等优选指南 - 海棠依旧大
  • 2026年中企出海人力资源服务商全景盘点 - 速递信息
  • 一文读懂四川MPP电缆保护管:规格参数、厂家盘点及非开挖施工要点 - 深度智识库
  • Google ADK 实战:用 Python 搭一个多 Agent 协作系统
  • 【干货收藏】网络安全岗位完全指南:从零开始了解行业需求与职业发展
  • 3个核心步骤掌握Cursor Free VIP:免费解锁AI编程助手全部潜能的完整指南
  • 黄金变现就现在!九江福正美上门高价秒结 - 福正美黄金回收
  • Argo CD 插件 argocd-lovely-plugin:统一管理复合应用的 GitOps 实践
  • 小米手表表盘制作神器:3步搞定个性化设计,无需任何编程基础
  • Fan Control:Windows平台上的专业风扇控制解决方案
  • 设计系统从零搭太累?Better Design:29套开箱即用的shadcn/ui组件库,让产品一夜拥有大厂颜值
  • 2026浙江宁波抖音团购代运营行业观察:本地深耕与全域闭环成商家选型关键 - 野榜数据排行
  • ppt模板_0002_57tm_2蓝色--教育
  • 收藏 | AI新手必看:从零基础到掌握大模型,这条学习路线图请收好!
  • Python API自动化实战:逆向游戏签到与兑换,零依赖高效脚本开发
  • 基于Kubeadm与Ansible的Kubernetes集群自动化部署实战
  • Obsidian Tasks 终极指南:6个优先级符号让任务管理效率提升300%
  • 2026年长岛风景民宿选品实测指南 仙品花园民宿细节全解析 - 奔跑123
  • 为中小型 SaaS 产品选择 Taotoken 作为大模型接入层的决策考量
  • 沙漠干皮高保湿防晒霜,口碑出圈的5款补水防晒,保湿效果拉满 - 全网最美
  • 领时代·智未来 | 晶台光耦亮相2026北京车展
  • 2026年廊坊硅酸铝柔性防火包裹品牌推荐,品质与安全并重