๐ ไปฅๅ จๅๆ ๅ ๅฏ (FHE) ๅฏฆ็พ็้ฑ็งไฟ่ญท่ช่ณๆฏไป็ณป็ตฑ
ๅจๅณ็ตฑๅๅก้ไธ๏ผๆๆไบคๆ้้กๅฎๅ จ้ๆใ้ๅฐ่ช่ณๆฏไป่่จๆฏๅ็ฝ้ฃโโไปปไฝไบบ้ฝ่ฝๆฅ็ไฝ ็ๆถๅ ฅใๆฏ่ผๅไบ่ชๆฐดใ็่ณ่ฎ็ซถ็ญๅฐๆๅๆๅ ฌๅธๆฏๅบ็ตๆงใ
PayWave ๅฉ็จ Zama FHEVM ็ๅ จๅๆ ๅ ๅฏๆ่ก๏ผๆ้ ไธๅ**ใๅ ฌ้ๅญๆฌพใ็งๅฏๅ็ผใ**็่ช่ณ็ณป็ตฑ๏ผ
- ๅ ฌๅธๅญๅ ฅ่ณ้ๆฏๅฏๅฏฉ่จ็ๅ ฌ้ไบคๆ
- ๆฏไฝๅกๅทฅ็่ช่ณๆ็ดฐ็ซฏๅฐ็ซฏๅ ๅฏ
- ๅชๆๅกๅทฅๆฌไบบ่ฝ่งฃๅฏไธฆ้ฉ่ญ่ชๅทฑ็่ช่ณ
- ๆฟๅบๅ่ฆๅญๅ้่ฆ้ๆนๆนๅ + 24 ๅฐๆๅท้ๆ
| ๅ้ก | ๅณ็ตฑๅๅก้ | PayWave |
|---|---|---|
| ่ช่ณ้้ก | โ ไปปไฝไบบๅฏๆฅ | โ ๅชๆๅกๅทฅๅฏ่ฆ |
| ๅไบๆฏ่ผ | โ ๅฎๅ จ้ๆ | โ ็กๆณไบ็ธๆฏ่ผ |
| ๅๆฅญๆฉๅฏ | โ ็ซถ็ญๅฐๆๅฏๅๆๆฏๅบ | โ ๅ้ ๆจกๅผๅฎๅ จ้ฑ่ |
| GDPR ๅ่ฆ | โ ็กๆณๆปฟ่ถณๆๅฐๅๆญ้ฒ | โ ๆธๆๆๅฐๅๅๅ |
| ๆฟๅบ็จฝๆ ธ | โ ็กๆงๅถๆฉๅถ | โ ้้ๆนๅ + ๆ้้ |
ๅ จๅๆ ๅ ๅฏ (Fully Homomorphic Encryption) ๅ ่จฑๅจๅฏๆไธ็ดๆฅ้็ฎ๏ผ็ก้่งฃๅฏ๏ผ
ๅ ๅฏ(ๅบๆฌ่ช่ณ) + ๅ ๅฏ(็้) - ๅ ๅฏ(ๆฃๆฌพ) = ๅ ๅฏ(ๆทจ่ช่ณ)
โ โ โ โ
ๅฏๆA + ๅฏๆB - ๅฏๆC = ๅฏๆD
ๆดๅ่จ็ฎ้็จไธญ๏ผๆฒๆไปปไฝไบบ๏ผๅ ๆฌๅๅก้้ฉ่ญ็ฏ้ป๏ผ่ฝ็ๅฐๅฏฆ้้้กใ
PayWave ็ณป็ตฑๆถๆง
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ ใๅ
ฌ้ๅฑคใ ใๆฉๅฏๅฑคใ โ
โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ USDC โ โโโdeposit()โโโโบ โ cUSDC โ โ
โ โ ๅ
ฌ้ไปฃๅนฃ โ โ ๆฉๅฏไปฃๅนฃ โ โ
โ โโโโโโโโโโโโ โโโwithdraw()โโโ โ (ๅ ๅฏ้ค้ก) โ โ
โ โ โโโโโโโโฌโโโโโโโโ โ
โ โ โ โ
โ โผ โผ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ Wrapper โ โ Payroll โ โ
โ โ ๅ
่ฃๅ็ด โ โ ่ช่ณๅ็ด โ โ
โ โโโโโโโโโโโโ โ โ โ
โ โ โข ๅ ๅฏ่ช่ณๅฎ โ โ
โ โโโโโโโโโโโโ โ โข FHE ่จ็ฎ โ โ
โ โ Treasury โ โโโโโpay()โโโโโโโโ โ โข ACL ๆฌ้ โ โ
โ โ ๅๅบซ โ โโโโโโโโฌโโโโโโโโ โ
โ โ(ๅ
ฌๅธ่ณ้) โ โ โ
โ โโโโโโโโโโโโ โ grantGovAccess() โ
โ โผ โ
โ โโโโโโโโโโโโโโโโ โ
โ โ Compliance โ โ
โ โ Gate โ โ
โ โ ๅ่ฆ้้ โ โ
โ โ โ โ
โ โ โข ้้ๆนๅ โ โ
โ โ โข 24h ๆ้้ โ โ
โ โโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| ๅ็ด | ่ฒฌไปป | ่ณๆๅฏ่ฆๆง |
|---|---|---|
| cUSDC | ๆฉๅฏไปฃๅนฃ๏ผ้ค้กๅ ๅฏๅญๅฒ | ้ค้ก๏ผ๐ ๅ ๅฏ |
| USDCWrapper | ๅ ฌ้ USDC โ ๆฉๅฏ cUSDC ่ฝๆ | ๅญๆ้้ก๏ผ๐๏ธ ๅ ฌ้ |
| PayrollTreasury | ๆๆๅ ฌๅธ cUSDC ่ณ้ | ็ธฝ้ก๏ผ๐ ๅ ๅฏ |
| Payroll | ๅ ๅฏ่ช่ณๅฎใFHE ่จ็ฎใๆฏไปๅท่ก | ่ช่ณๆ็ดฐ๏ผ๐ ๅ ๅฏ |
| ComplianceGate | Break-glass ๆฉๅถ็ๆ ๆฉ | ็ณ่ซ่จ้๏ผ๐๏ธ ๅ ฌ้ |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ 1๏ธโฃ ๅญๆฌพ โ
โ โโโโโโโโโโโโโ โ
โ HR ๅฐ USDC ๅญๅ
ฅ Wrapper โ
โ Wrapper ้้ ็ญ้ก cUSDC ๅฐ Treasury โ
โ โ
โ ๐ ๅฏ่ฆๆง: ๅญๆฌพ้้กๅ
ฌ้ (ๅฏๅฏฉ่จ) โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ 2๏ธโฃ ๅปบ็ซ่ช่ณๅฎ โ
โ โโโโโโโโโโโโโ โ
โ HR ๅจๅ็ซฏ่ผธๅ
ฅ่ช่ณๆ็ดฐ โ
โ ๅ็ซฏไฝฟ็จ FHEVM SDK ๅ ๅฏ โ ็ข็ handles + ZK proof โ
โ ้ๅบ setPayslipInputs() ไบคๆ โ
โ โ
โ ๐ ๅฏ่ฆๆง: ๅชๆๅ ๅฏ handle๏ผ็กไบบๅฏ่ฆๆ็ดฐ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ 3๏ธโฃ ่จ็ฎๆทจ้ก โ
โ โโโโโโโโโโโโโ โ
โ HR ๅผๅซ computePayslip() โ
โ ๅ็ดๅจๅฏๆไธๅท่ก: net = max(base + bonus - penalty - leave, 0) โ
โ ๅกๅทฅ็ฒๅพ่งฃๅฏๆฌ้ (ACL.allow) โ
โ โ
โ ๐ ๅฏ่ฆๆง: ่จ็ฎๅจๅฏๆไธ้ฒ่ก๏ผ็ตๆไป็บๅฏๆ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ 4๏ธโฃ ๅท่กๆฏไป โ
โ โโโโโโโโโโโโโ โ
โ HR ๅผๅซ pay() โ
โ Payroll ๆไบ cUSDC ่จๆๆฌ้ (allowTransient) โ
โ cUSDC.transferEncryptedFrom(Treasury โ Employee, ๅ ๅฏ้้ก) โ
โ โ
โ ๐ ๅฏ่ฆๆง: ่ฝๅธณ็ผ็๏ผไฝ้้กๅ ๅฏ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ 5๏ธโฃ ๅกๅทฅ่งฃๅฏ โ
โ โโโโโโโโโโโโโ โ
โ ๅกๅทฅไฝฟ็จ้ขๅ
็ฐฝ็ฝฒ EIP-712 ๆๆฌ โ
โ Relayer ้ฉ่ญ็ฐฝๅไธฆ่ฟๅ่งฃๅฏๅพ็ๆๆ โ
โ ๅ็ซฏๆฌๅฐ้ฉ็ฎ: base + bonus - penalty - leave = net โ โ
โ โ
โ ๐ ๅฏ่ฆๆง: ๅชๆๅกๅทฅๆฌไบบๅฏ่ฆ่ชๅทฑ็่ช่ณ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
FHEVM ็ Access Control List (ACL) ๆฑบๅฎ่ชฐ่ฝ่งฃๅฏๅชๅๅฏๆ๏ผ
่ช่ณๅฎๅปบ็ซๆ:
โโ FHE.allowThis(base/bonus/penalty/leave) โ ๅ็ดๅฏ็นผ็บไฝฟ็จ
่จ็ฎๅฎๆๆ:
โโ FHE.allow(ๆๆๆฌไฝ, employee) โ ๅกๅทฅๅฏ่งฃๅฏ
ๆฏไปๆ:
โโ FHE.allowTransient(net, cUSDC) โ cUSDC ๅจๆญคไบคๆไธญๅฏไฝฟ็จ
ๆฟๅบๅญๅๆ:
โโ FHE.allow(ๆๆๆฌไฝ, govMultisig) โ ๆฟๅบๅฏ่งฃๅฏ
็ถๆฟๅบ้่ฆๅญๅ็นๅฎๅกๅทฅ็่ช่ณ่ณๆๆ๏ผๅฟ ้ ็ถ้ๅดๆ ผ็ๆงๅถๆต็จ๏ผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Break-Glass ๆต็จ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ 1. ๐๏ธ ๆฟๅบๆไบค็ณ่ซ โ
โ requestCase(employee, period, reasonHash, evidenceURI) โ
โ โ โ
โ 2. โ
ๅ
ฌๅธๆนๅ โ
โ approveByIssuer(caseId) โ IssuerMultisig โ
โ โ โ
โ 3. โ
ๆฟๅบๆนๅ โ
โ approveByGov(caseId) โ GovMultisig โ
โ โ โ
โ 4. โณ 24 ๅฐๆๅท้ๆ โ
โ (ๅกๅทฅๆๆ้็ฅๆไธฆๅฐๆฑๆณๅพๅปบ่ญฐ) โ
โ โ โ
โ 5. ๐ ๅท่กไธฆๆๆฌ โ
โ execute(caseId) โ
โ โ Payroll.grantGovAccess() โ
โ โ FHE.allow(ๆฌไฝ, govMultisig) โ
โ โ โ
โ 6. ๐๏ธ ๆฟๅบ่งฃๅฏ โ
โ ๆฟๅบไฝฟ็จ userDecrypt ๆฅ็ๆๅฎๆ้็่ช่ณ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| ไฟ่ญทๆฉๅถ | ่ชชๆ |
|---|---|
| ้้ๆนๅ | ๅ ฌๅธ + ๆฟๅบ้ฝๅฟ ้ ๅๆ |
| 24 ๅฐๆๆ้้ | ็ตฆไบๅกๅทฅๅๆๆ้ |
| ๆๅฐๅๅญๅ | ๅชๆๆฌ็นๅฎๅกๅทฅ็นๅฎๆ้ |
| ไธๅ ฌ้่งฃๅฏ | ๆฐธ้ ไธไฝฟ็จ makePubliclyDecryptable |
| ๅฏฉ่จ่ฟฝ่นค | ๆๆๅญๅ่ซๆฑๅๆนๅ้ฝ่จ้ๅจ้ไธ |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ ๐ IssuerMultisig (ๅ
ฌๅธ HR/่ฒกๅ) โ
โ โโ ๅญๅ
ฅ USDC ๅฐ Treasury โ
โ โโ ๅปบ็ซๅ่จญๅฎๅกๅทฅ่ช่ณๅฎ โ
โ โโ ่จ็ฎๆทจ่ช่ณ โ
โ โโ ๅท่กๆฏไป โ
โ โโ ๆนๅๆฟๅบๅญๅ็ณ่ซ โ
โ โ
โ ๐ค Employee (ๅกๅทฅ) โ
โ โโ ่งฃๅฏ่ชๅทฑ็่ช่ณๅฎ โ
โ โโ ๆฌๅฐ้ฉ่ญ่จ็ฎๆญฃ็ขบๆง โ
โ โโ ๆฅ็่ชๅทฑ็ cUSDC ้ค้ก โ
โ โ
โ ๐๏ธ GovMultisig (ๆฟๅบๆฉ้) โ
โ โโ ๆไบคๅ่ฆๅญๅ็ณ่ซ โ
โ โโ ๆนๅๅญๅ็ณ่ซ โ
โ โโ ๅท่กๅพ่งฃๅฏๆๆฌ็่ช่ณ่ณๆ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| ่ณๆ | ๅ ฌ็พ | ๅกๅทฅ | ๅ ฌๅธ | ๆฟๅบ (ๆๆฌๅพ) |
|---|---|---|---|---|
| ็ธฝๅญๆฌพ้้ก | โ | โ | โ | โ |
| ๅกๅทฅๅๅฎ | โ | โ | โ | โ |
| ่ช่ณๅฎ็ๆ | โ | โ | โ | โ |
| ๅไบบ่ช่ณๆ็ดฐ | โ | โ (่ชๅทฑ) | โ | โ (็นๅฎ) |
| ๆฏไป้้ก | โ | โ (่ชๅทฑ) | โ | โ (็นๅฎ) |
| cUSDC ้ค้ก | โ | โ (่ชๅทฑ) | โ | โ |
- Solidity ^0.8.24
- Zama FHEVM SDK @fhevm/solidity v0.9.1
- ๅ ๅฏ้กๅ encrypted-types v0.0.4
- ้็ผๆกๆถ Hardhat
- ๆกๆถ Next.js 14 (App Router)
- ๆจฃๅผ Tailwind CSS + Vaporwave ่จญ่จ็ณป็ตฑ
- Web3 wagmi + viem
- FHEVM ๆดๅ Mock ๆจกๅผ (SDK ๆญฃๅผ็ผๅธๅพๅๆ)
| ็ถฒ่ทฏ | Chain ID | ็จ้ |
|---|---|---|
| Sepolia | 11155111 | ๆธฌ่ฉฆ็ถฒ้จ็ฝฒ |
| Hardhat | 31337 | ๆฌๅฐ้็ผ |
- ไบไปถไธๆดฉๆผ้้ก โ ๆๆ emit ็ไบไปถๅชๅ ๅซ ID ๅ็ๆ ๏ผไธๅซ้้ก
- ๆขไปถๅๆฏไฝฟ็จ FHE.select โ ๆฐธ้ ไธๅฐ
eboolไฝฟ็จif/else - ไธไฝฟ็จๅ
ฌ้่งฃๅฏ โ ๆฐธ้ ไธๅผๅซ
makePubliclyDecryptable
- ่ง่ฒ้ๆง โ ๆๆๆๆๆไฝ้ฝๆ
onlyIssuerใonlyGate็ญไฟฎ้ฃพ็ฌฆ - ACL ้ฉ่ญ โ ไฝฟ็จ
FHE.isSenderAllowed()้ฉ่ญ caller ๆฌ้ - ๆๅฐๆฌ้ๅๅ โ ๅชๆไบๅฎๆๆไฝๆ้็ๆๅฐๆฌ้
- ไธๅบๆผๅ ๅฏๅผ็ๆๅ/ๅคฑๆ่ก็บไพๆจๆธฌ่ณๆ
- ๆฏไปๅคฑๆไธๆ้้ฒๆฏใ้ค้กไธ่ถณใ้ๆฏๅ ถไปๅๅ
PayWave/
โโโ contracts/ # ๆบ่ฝๅ็ด
โ โโโ src/
โ โ โโโ cUSDC.sol # ๆฉๅฏ USDC ไปฃๅนฃ
โ โ โโโ Payroll.sol # ๆ ธๅฟ่ช่ณๅ็ด
โ โ โโโ PayrollTreasury.sol
โ โ โโโ USDCWrapper.sol
โ โ โโโ ComplianceGate.sol
โ โ โโโ lib/
โ โ โโโ Errors.sol
โ โโโ FHEVM_MIGRATION_NOTES.md
โ
โโโ frontend/ # ๅ็ซฏๆ็จ
โ โโโ src/
โ โ โโโ app/
โ โ โ โโโ issuer/ # HR ๅ่กจๆฟ
โ โ โ โโโ employee/ # ๅกๅทฅๅ
ฅๅฃ
โ โ โ โโโ government/ # ๆฟๅบๅ
ฅๅฃ
โ โ โโโ components/
โ โ โโโ lib/
โ โ โโโ fhevm.ts # FHEVM SDK ๆดๅ
โ โ โโโ contracts.ts # ๅ็ด ABI
โ โ โโโ addresses.ts # ๅ็ดๅฐๅ
โ โโโ package.json
โ
โโโ PayWave_Work_Spec.md # ๅฎๆดๅทฅไฝ่ฆๆ ผ
MIT License
PayWave โ ่ฎ่ช่ณๅๆญธ็งๅฏ ๐