Tích hợp DXA Blockchain (L3)
Trung tâm chứng thực có kiểm soát chữ ký trên Base Sepolia. Neo bằng chứng chống giả mạo, kiểm chứng và thu hồi — cho Trustway, ứng dụng của bạn, hoặc đối tác.
Hợp đồng on-chain (Base Sepolia)
DXAGovernanceSigners
0xBAE41b8711A7C19355Ad217231c439119137D215 ↗ Cấp quyền khóa ký theo payloadType.
DXAAttestationRegistry
0x133BCb88E038595994ab1Ee0c498A90e454882B8 ↗ verifyAndAnchor · getRecord · revokeAttestation.
REST API
POST
/api/anchor Băm dataFields, ký (EIP-191) và neo qua registry.
{ "scenario": "academic_credential", "payloadId": "XAI-2024-0001", "dataFields": { "f0": "Nguyễn Văn An", "f4": "Giỏi" } } POST
/api/verify Băm lại và tra sổ cái: tồn tại + trạng thái + toàn vẹn.
{ "dataFields": { "f0": "Nguyễn Văn An", "f4": "Giỏi" }, "sealCode": "0x…" } POST
/api/revoke Thu hồi một chứng thực (chỉ issuer gốc).
{ "sealCode": "0x…bytes32" } POST
/api/trustway Cổng Trustway: payload AI → securePayload → hash → ký → neo.
{ "score": 785, "payloadId": "DOC-1", "anchor": true } Mô hình xác thực (3 lớp)
- Lớp API: API key / JWT (DXA Developer + Identity) — nhận diện, rate-limit, đo dùng.
- Lớp ký số: khóa issuer ký EIP-191 trên keccak256(dataHash, payloadType, nonce).
- Cổng on-chain: governance cấp quyền signer theo payloadType — gốc tin cậy bất biến.
API key chỉ để vào cổng; giả mạo bản ghi vẫn cần chữ ký được governance cấp quyền. Ràng payloadType + nonce chặn dán nhãn sai loại và replay.
Tự ký (self-custody — Node / ethers v6)
import { Wallet, AbiCoder, keccak256, getBytes, Signature } from "ethers";
const wallet = new Wallet(ISSUER_PRIVATE_KEY); // khóa của bạn
const digest = keccak256(AbiCoder.defaultAbiCoder()
.encode(["bytes32","string","uint256"], [dataHash, payloadType, nonce]));
const sig = Signature.from(await wallet.signMessage(getBytes(digest)));
// → gửi { dataHash, payloadType, nonce, v: sig.v, r: sig.r, s: sig.s }
// tới registry.verifyAndAnchor(...) (relayer trả gas) Lưu ý Sandbox: Mạng thử Base Sepolia; trong bản demo relayer đồng thời là signer được cấp quyền. Không neo dữ liệu thật hoặc nhạy cảm.