foolish-bandit/Origynl
GitHub: foolish-bandit/Origynl
基于 Polygon 区块链的文件存在性公证工具,通过本地 SHA-256 哈希上链为任意文件生成不可篡改的时间戳证明,文件始终不离开用户设备。
Stars: 1 | Forks: 0
证明你最先完成。
上传文件。在区块链上获取不可篡改的、带有时间戳的证明。
文件永远不会离开你的设备。只有哈希值会上链。
## 问题所在
AI 生成的内容正变得与真实内容难以区分。Deepfake(深度伪造)、合成写作、AI 艺术——任何人都可以生成任何东西并声称他们最先制作了它。目前没有可靠的方法来证明一件原创作品是何时存在的。
**Origynl 解决了这个问题。** 对你的文件进行 SHA-256 哈希处理,将其记录在 Polygon 上,区块链的时间戳就会成为你的证据。它不是 DRM。它是一个公证服务。
## 工作原理
|
**认证**
上传图片或 PDF。Origynl 会计算 SHA-256 哈希值,并将其写入 Polygon 上的 OrigynlLedger 智能合约。文件始终保留在你的设备上。
|
**验证**
放入任何文档以检查其是否已被认证。如果哈希值存在于链上,你将获得时间戳和交易记录。
|
**拍摄**
拍摄带有嵌入式 GPS、时间戳和设备元数据的实时照片。创建与区块链锚定哈希相关联的“见证证明”。
|
**水印**
经过认证的图像会收到可见水印和嵌入式元数据,以证明其认证状态。
|
## 立即体验
**在线访问 [origynl.vercel.app](https://origynl.vercel.app)** — 在 30 秒内认证文件。
或在本地运行:
```
git clone https://github.com/foolish-bandit/Origynl.git
cd Origynl
npm install
npm run dev
```
## 使用场景
- **艺术家和摄影师** — 在发布前为你的原创作品加上时间戳
- **记者** — 创建带有嵌入式位置/时间的可验证见证证明
- **研究人员** — 证明数据集、论文或发现是何时生成的
- **法律** — 在特定时间确立在先发明或文档的存在性
- **开发者** — 认证代码快照、审计追踪或构建产物
- **所有人** — 使用加密确定性证明“我在此时拥有此文件”
## 技术栈
| 层级 | 技术 |
|-------|------|
| 前端 | React 19, TypeScript, Tailwind CSS |
| 构建 | Vite 6 |
| 区块链 | 通过 [viem](https://viem.sh) 接入 Polygon Amoy |
| 智能合约 | Solidity — [`OrigynlLedgerV2.sol`](contracts/src/OrigynlLedgerV2.sol) |
| 后端 | Vercel Serverless Functions |
| 相机/EXIF | react-webcam, piexifjs |
| PDF | pdf-lib |
## 智能合约
部署在 Polygon Amoy 上,地址为 [`0x894C...9d41`](https://amoy.polygonscan.com/address/0x894C98bf09B4e9e4FEd3612803920b7d82C59d41)
该合约在设计上非常简单:存储一个 SHA-256 哈希值,记录发送者和时间戳,并发出一个事件。一旦写入便不可篡改。有关合约架构,请参阅 [`BLOCKCHAIN_INTEGRATION.md`](./BLOCKCHAIN_INTEGRATION.md)。
## 部署
### 前置条件
- Node.js v18+
- 一个拥有测试网 POL 的 Polygon 钱包 ([水龙头](https://faucet.polygon.technology/))
### Vercel(推荐)
1. Fork 此仓库
2. 导入至 [Vercel](https://vercel.com)
3. 添加环境变量:
- `PRIVATE_KEY` — 你的 Polygon 钱包私钥
- `CONTRACT_ADDRESS` — `0x894C98bf09B4e9e4FEd3612803920b7d82C59d41`
4. 部署
### 本地开发
```
git clone https://github.com/foolish-bandit/Origynl.git
cd Origynl
npm install
cp .env.example .env.local
# 使用你的 PRIVATE_KEY 和 CONTRACT_ADDRESS 编辑 .env.local
npm run dev
```
## 路线图
- [ ] Polygon 主网部署
- [ ] 通过 Merkle tree 进行批量认证(V2 合约)
- [ ] WalletConnect 自托管模式(使用你自己的钱包签名)
- [ ] 捕获图像的 C2PA 内容凭证
- [ ] PAdES 签名的证书 PDF
- [ ] OpenTimestamps 双重锚定(Bitcoin + Polygon)
- [ ] 感知哈希 + 隐写水印
- [ ] 公开可分享的 `/proof/:id` 验证页面
- [ ] 为认证文件备份进行 IPFS 固定
- [ ] PWA / 带有排队认证的离线捕获
- [ ] 移动端原生捕获(Capacitor)
**明确的非目标:** Origynl 现在不会,将来也不会使用 AI 进行真实性评分。溯源是通过加密方式建立的,而不是推断出来的。
## 贡献
欢迎提交 PR。代码库采用 React + TypeScript + Vite 构建 —— 标准配置。
```
npm install
npm run dev # dev server
npm run test # run tests
npm run build # production build
```
## 许可证
MIT
由 Zack Brenner 构建
标签:DApp, NFT基础设施, Polygon区块链, SHA-256哈希, Web3应用, 人工智能内容识别, 创作者经济, 加密校验, 区块链溯源, 区块链认证, 原创证明, 去中心化应用, 可视化水印, 数字版权保护, 数字资产保护, 文件完整性校验, 文件证明, 文档哈希, 无需上传文件, 时间戳认证, 智能合约, 本地处理, 深度伪造检测, 版权存证, 知识产权保护, 网络安全, 自动化攻击, 防伪溯源, 隐私保护