Trục 2: Khái niệm

V7GUID — Version-7-GUID

V7GUID (còn gọi: Categorized UUIDv7 Identifier) là lược đồ phân loại cho identifier trong artifact GitCover, dựa trên UUID Version 7 tương thích RFC-4122 (dựa trên thời gian, sắp xếp được), mở rộng bằng phân loại lớp đặc thù GitCover.

Cấu trúc

Phân đoạn Bits Phạm vi Ý nghĩa
timestamp_ms 48 RFC 4122 UUIDv7 Basis Mili-giây kể từ Unix-Epoch (sắp xếp được)
version 4 RFC 4122 UUIDv7 Basis Cố định: 0111 (UUIDv7)
rand_a 12 RFC 4122 UUIDv7 Basis Vector tất định cho dictionary Tenant-/Doc-/Class-/Action của GitCover (định nghĩa trong repo .gitcover của TOP)
variant 2 RFC 4122 UUIDv7 Basis Cố định: 10 (RFC 4122)
repository_id 12 GitCover mở rộng Phạm vi repo/tenant (từ RFC rand_a)
class (L1–L6 + trường mở rộng) 62 GitCover mở rộng Payload GitCover gán tất định (hệ phân cấp 6 cấp + các trường mở rộng để phân loại tuân thủ, từ RFC rand_b)

Mục đích: Liên kết tất định, sắp xếp được giữa các chứng từ trong chuỗi chứng từ. Cho phép khả năng tái dựng theo thời gian/phiên bản (GoBD: tính đúng thời gian) mà không cần cơ sở dữ liệu tuần tự trung tâm.

Chuẩn & triển khai: Nguyên tắc V7GUID (hệ phân cấp 6 cấp mã hoá trong bit GUID, các vùng bit cố định, tra cứu O(1), tham chiếu liên-repo) là một phần của đơn đăng ký sáng chế 10 2025 003 091.6. Bố cục bit chuẩn tắc (offset/độ rộng/phạm vi giá trị chính xác cho mỗi phân đoạn) được duy trì mang tính chuẩn mực trong đặc tả giao thức specs/v7guid/ — xem 00_gesamtkarte.md tại đó. GCBoK trình bày chuẩn này; khi có khác biệt, đặc tả có hiệu lực.

Class-Identifier — Sổ đăng ký phân đoạn

Class-Identifier của GitCover (phân đoạn class của V7GUID) được cấu thành tất định từ một hệ thống phân cấp nghiệp vụ sáu cấp. Mỗi cấp rộng 4 bit (phạm vi giá trị 015, tức 16 giá trị khả dĩ cho mỗi cấp) và được gán toàn cục thông qua một dictionary chuẩn tắc trong repo .gitcover của thư mục TOP. Ngoài ra, V7GUID còn mang một số trường định danh mở rộng. Sổ đăng ký sau liệt kê tất cả các phân đoạn theo nhóm cùng với giá trị lớn nhất tương ứng và là tham chiếu ràng buộc cho khả năng tương tác giữa các repo GitCover.

Phân cấp nghiệp vụ (phân loại tất định)

# Phân đoạn Bits Giá trị max Dictionary Ý nghĩa
L1 Entity 4 15 entities.json Business Entity (ví dụ 1 BusinessEntities, 2 BusinessPartners)
L2 Department 4 15 departments.json Phòng ban/lĩnh vực (ví dụ 14 Portfolio, 9 IT)
L3 Category 4 15 categories.json Danh mục (ví dụ 15 Service, 14 DocSigning)
L4 SubCategory 4 15 subcategories.json Danh mục con (ví dụ 14 Leistung, 13 Preisposition)
L5 ProcessType 4 15 processtypes.json Loại quy trình (ví dụ 13 ERechnung, 14 Gobd, 15 Agentic)
L6 Instance 4 15 instances.json Thực thể (ví dụ 1 Default, 2 Primary)

Ký pháp chuỗi phân loại kết hợp sáu cấp thành L1_L2_L3_L4_L5_L6 — ví dụ 1_14_12_14_13_1 (vị trí giá danh mục portfolio). Phạm vi giá trị 16⁶ = 16.777.216 bao phủ mọi phân loại tất định.

Các trường định danh mở rộng của V7GUID (phân loại tuân thủ)

Ngoài hệ phân cấp 6 cấp, V7GUID còn mang bốn trường có thể gán tất định. Chúng là các trợ giúp phân loại/xếp loại, dùng để định kiểu các khía cạnh tuân thủ bổ sung của một artifact. Chúng rõ ràng không phải là định danh thực thể đối tượng — đối tượng cụ thể nào chỉ được xác định bởi Object ID (là uuidv7 thuần) của dual identifier. Nhiều đối tượng dùng chung một giá trị trường.

Phân đoạn Bits Giá trị max (Custom) Câu hỏi Chiều tuân thủ
RepositoryId 12 4.095 Ở đâu? Phạm vi repo/dữ liệu (TOP + tối đa 4.095 repo mỗi tenant); tách tenant/PII
ProcessTypeId 8 255 Bằng quy trình nào? Thủ tục tạo ra artifact (GoBD, EN16931, AI Act)
GatewayId 16 65.535 Điểm kiểm soát? Điểm bàn giao/phê duyệt (chuỗi chứng từ, phân tách nhiệm vụ)
VariantId 14 16.383 Biến thể nào? Ngữ cảnh pháp lý (lưu trữ §147 AO, mức bảo vệ GDPR, IFRS/HGB)

Lưu ý: VariantId trước đây là InstanceId; được đổi tên vì trường này định kiểu một lớp biến thể/ngữ cảnh, không phải một thực thể đối tượng.

Nhờ đó, một định danh duy nhất mã hóa đa chiều cái gì, ở đâu, bằng quy trình nào, qua điểm kiểm soát nào, và ở biến thể nào mà artifact được tạo ra — kiểm chứng trực tiếp từ GUID (O(1), không cần truy vấn cơ sở dữ liệu). Ví dụ hóa đơn điện tử đã kiểm tra: 1_14_12_14_13_1 + RepositoryId 3 (DMS) + ProcessTypeId 12 (kiểm tra EN16931) + GatewayId 220 (phê duyệt bốn mắt) + VariantId 10 (lưu trữ 10 năm).

Cách gán: Các cấp 4-bit L1–L6 mang tính chuẩn tắc toàn cục và được điều phối riêng qua các dictionary trong repo .gitcover của TOP (trao đổi qua GCEP/GCUCB). Các trường mở rộng dùng dictionary riêng (repository_ids.json, processtype_ids.json, gateway_ids.json, variant_ids.json); giá trị cao nhất của mỗi trường được dành làm Custom/TenantDefined. Các mã chưa gán vẫn để trống cho việc gán toàn cục sau này. Tham chiếu chuẩn tắc: specs/v7guid/50_erweiterte_kennfelder_compliance.md.

Sổ đăng ký Tenant trung tâm

TenantId của một pháp nhân GitCover không được suy ra từ một dải số được cấp phát, mà tất định từ 48 bit đầu tiên (dấu thời gian mili-giây) của UUIDv7 được tạo khi thư mục TOP của tenant được tạo lần đầu tiên. Do đó, định danh tenant gắn với thời gian, sắp xếp được và duy nhất mà không cần cơ sở dữ liệu tuần tự trung tâm — miễn là không có hai tenant được tạo trong cùng một mili-giây.

Nguồn thời gian tùy chọn tự do: Dấu thời gian 48 bit không nhất thiết phải là thời điểm tạo thực tế. Thay vì đồng hồ hệ thống (DateTime.Now), mỗi tenant có thể tạo UUIDv7 từ một thời điểm được cung cấp rõ ràng — chẳng hạn ngày thành lập của pháp nhân hoặc một ngày tham chiếu bất kỳ khác được chọn (xem CustomEpoch/timestamp trong TenantContext). Điều này cho phép gắn định danh tenant với một ngày có ý nghĩa nghiệp vụ; tính duy nhất được giữ nguyên miễn là mili-giây được chọn không trùng lặp giữa các tenant (thêm một lý do để đăng ký tự nguyện).

Vì các repo GitCover tham chiếu lẫn nhau qua các phép duyệt others.json (phân giải liên-repo các đường dẫn vật lý và logic), một định danh tenant phải phân giải được duy nhất khi dùng liên-repo. Vì lý do này tồn tại một sổ đăng ký trung tâm, tự nguyện.

Mô hình đăng ký (tự nguyện, không có dải số)

Trạng thái Ý nghĩa Khả năng tương tác
Đăng ký công khai UUIDv7 của tenant được ghi trong sổ đăng ký trung tâm (tên ngắn, pháp nhân, dấu thời gian, trạng thái) Phân giải không xung đột; ràng buộc cho các phép duyệt others.json giữa các repo
Riêng tư / chưa đăng ký UUIDv7 của tenant tồn tại cục bộ nhưng không được ghi trong sổ đăng ký Được phép dùng nội bộ; rủi ro xung đột trong các phép duyệt liên-repo (không có bảo vệ xung đột, không đảm bảo phân giải)

Phiên bản sổ đăng ký chuẩn tắc: Sổ đăng ký tenant vận hành được duy trì dưới .gitcover/access/TENANT_GUID_REGISTER.md trong tenant-root tương ứng (tên ngắn · pháp nhân · UUIDv7 · dấu thời gian · trạng thái). Đây là danh sách chính thức của các tenant đã đăng ký.

Chuỗi chứng từ (Evidence Chains)

Một chuỗi chứng từ liên kết các artifact tuân thủ qua tham chiếu prev-hash:

  1. Chứng từ B1 — V7GUID: ...-PERSON-..., SHA256: 3f2a1c..., prev: —
  2. Chứng từ B2 — V7GUID: ...-INVOICE-..., SHA256: 7d4e2f..., prev: 3f2a1c...
  3. Chứng từ B3 — V7GUID: ...-PAYMENT-..., SHA256: 1b8f90..., prev: 7d4e2f...

Mỗi chứng từ tham chiếu hash SHA-256 của chứng từ trước. Toàn bộ chuỗi như vậy được neo mật mã và chống giả mạo.

Lược đồ metadata (.v7g.md)

v7guid: "0197a3b2-f3c0-7b00-8001-000000000042"
class: INVOICE
sha256: "7d4e2f..."
prev_sha256: "3f2a1c..."
gpg_fingerprint: "ABCD1234..."
timestamp_iso: "2026-06-14T11:18:00+02:00"
gobd_periode: "FY2026"

Cryptographic Evidence Chain

Cryptographic Evidence Chain kết hợp ba nguyên thủy mật mã:

  1. Git-Commit-Hash — Tính không thay đổi của repository-state
  2. Chữ ký GPG — Định danh của tác nhân (Ai đã quyết định?)
  3. V7GUID — Địa chỉ tất định (Cái gì và Khi nào)

Như vậy tạo ra một chuỗi vừa được neo mật mã vừa sắp xếp theo thời gian — nền tảng cho bằng chứng tuân thủ an toàn kiểm toán.

Phân nhánh tất định

Phân nhánh tất định cho phép liên kết chuỗi chứng từ với cấu trúc kho Git. Qua kết hợp của:

phát sinh các cấu trúc tuân thủ tái lập được, có thể kiểm toán — không cần bảo trì thủ công.

Xem thêm: Các nguyên thủy kỹ thuật (GPG, uuidV7, OSCAL) được đào sâu trong Trục 4: Kỹ thuật.