Trục 2: Các khái niệm

V7GUID - Version-7-GUID

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

Cấu trúc

Segment Bits Phạm vi Ý nghĩa
timestamp_ms 48 Nền tảng RFC 4122 UUIDv7 Số mili giây kể từ Unix-Epoch (có thể sắp xếp)
version 4 Nền tảng RFC 4122 UUIDv7 Cố định: 0111 (UUIDv7)
rand_a 12 Nền tảng RFC 4122 UUIDv7 Vectơ xác định cho các Dictionary Tenant-/Doc-/Class-/Action của GitCover (được định nghĩa trong repo .gitcover của TOP)
variant 2 Nền tảng RFC 4122 UUIDv7 Cố định: 10 (RFC 4122)
repository_id 12 Phần mở rộng GitCover Phạm vi Repo-/Tenant (từ RFC rand_a)
class (L1–L6 + các trường đặc trưng mở rộng) 62 Phần mở rộng GitCover Phần tải GitCover được gán giá trị một cách xác định (hệ thống phân cấp 6 cấp + các trường đặc trưng mở rộng cho việc phân loại Compliance, từ RFC rand_b)

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

Nền tảng thời gian: GMT/UTC (quy tắc chuẩn tắc)

Dấu thời gian 48 bit của tất cả các V7GUID và uuidV7 phải được tạo và diễn giải luôn trên nền GMT/UTC (Offset 0) - không bao giờ trên nền một múi giờ địa phương (MESZ, MEZ v.v.):

flowchart LR GEN["Generierung
uuidV7 / V7GUID"] -->|"48-Bit-Timestamp
immer UTC (GMT+0)"| GUID["GUID
zeitzone-neutral"] GUID -->|"lesbar als
ISO-8601 UTC"| APP["App / Verwendung"] APP -->|"lokale Umrechnung
z.B. Europe/Berlin (MESZ)"| UI["Zeitmarke in App
z.B. Zeiterfassung Mitarbeiter"] style GEN fill:#c8e6c9 style GUID fill:#bbdefb style APP fill:#ffe0b2 style UI fill:#f8bbd0

Cơ sở lý luận:

Quy tắc nhận biết: Khi giải mã một V7GUID/uuidV7, giá trị 48 bit được trích xuất phải luôn được đọc là UTC. Việc hiển thị/xử lý tiếp theo theo giờ địa phương chỉ diễn ra ở tầng trình diễn của App, không bao giờ ở nền tảng định danh.

Chuẩn tắc & Triển khai: Nguyên tắc V7GUID (hệ thống phân cấp 6 cấp trong các bit GUID, các vùng bit cố định, tra cứu O(1), tham chiếu chéo giữa các repo) là một bộ phận của đơn đăng ký sáng chế 10 2025 003 091.6. Cách gán bit chuẩn tắc (offset/độ rộng/vùng giá trị chính xác của từng segment) được quy định chuẩn tắc trong đặc tả giao thức specs/v7guid/ - xem 00_gesamtkarte.md tại đó. GCBoK trình bày chuẩn tắc này; khi có sai khác thì đặc tả có giá trị áp dụng.

Class-Identifier - Sổ đăng ký segment

Class-Identifier của GitCover (segment class của V7GUID) được xây dựng một cách xác định từ một Business-Hierarchie sáu cấp. Mỗi cấp rộng 4 bit (vùng giá trị 015, tức 16 dạng biểu hiện có thể cho mỗi cấp) và được gán giá trị 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 nhiều trường đặc trưng mở rộng. Sổ đăng ký dưới đây liệt kê tất cả các segment được nhóm lại cùng với giá trị lớn nhất có thể tương ứng và tạo thành tài liệu tham chiếu có tính ràng buộc cho khả năng tương tác giữa các repo GitCover.

Business-Hierarchie (phân loại xác định)

# Segment Bits Max-Value 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) — đóng vai trò điểm neo đơn vị tổ chức cho trách nhiệm PII hai cấp (pháp lý: Tenant + về tổ chức: PMO/Department, xem Kỹ thuật: Git làm IdP
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ể hiện (ví dụ: 1 Default, 2 Primary)

Ký hiệu chuỗi Classification kết hợp sáu cấp thành L1_L2_L3_L4_L5_L6 - ví dụ: 1_14_12_14_13_1 (Portfolio-Preisposition). Vùng giá trị 16⁶ = 16.777.216 bao phủ tất cả các phân loại xác định.

Các trường đặc trưng mở rộng của V7GUID (phân loại Compliance)

Ngoài hệ thống phân cấp 6 cấp, V7GUID còn mang bốn trường đặc trưng khác có thể gán giá trị một cách xác định. Chúng là các trình hỗ trợ phân loại/xếp loại và phân loại thêm các khía cạnh Compliance của một chứng từ. Chúng rõ ràng không phải là các định danh thể hiện đối tượng - đối tượng cụ thể nào được nhắc đến chỉ do Object ID (chính là uuidv7 thuần túy) của định danh kép quyết định. Nhiều đối tượng dùng chung cùng một giá trị trường đặc trưng.

Segment Bits Max-Value (Custom) Câu hỏi Phương diện Compliance
RepositoryId 12 4.095 Ở đâu? Phạm vi Repo-/Dữ liệu (TOP + tối đa 4.095 repos mỗi Tenant); phân tách Tenant/PII
ProcessTypeId 8 255 Bằng gì? Thủ tục đã tạo ra chứng từ (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 chức năng)
VariantId 14 16.383 Dạng cụ thể? Bối cảnh pháp lý (lưu trữ §147 AO, mức bảo vệ DSGVO, IFRS/HGB)

Lưu ý: VariantId trước đây tên là InstanceId; tên đã được đổi vì trường này phân loại một lớp dạng cụ thể, chứ không phải một thể hiện đối tượng.

Như vậy, một định danh duy nhất mã hóa đa chiều cái gì, ở đâu, bằng gì, qua điểm kiểm soát nào và ở dạng cụ thể nào mà một chứng từ đã phát sinh - kiểm tra được trực tiếp từ GUID (O(1), không cần truy vấn cơ sở dữ liệu). Ví dụ một hóa đơn điện tử (E-Rechnung) đã được 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 giá trị: Các cấp 4 bit L1–L6 là chuẩn tắc toàn cục và chỉ được điều phối thông qua các Dictionary trong repo .gitcover của TOP (trao đổi qua GCEP/GCUCB). Đối với các trường đặc trưng mở rộng, áp dụng các Dictionary riêng (repository_ids.json, processtype_ids.json, gateway_ids.json, variant_ids.json); giá trị cao nhất trong mỗi dictionary được dành riêng làm Custom/TenantDefined. Các mã chưa được gán vẫn để trống cho việc cấp phát toàn cục sau này. Tài liệu 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ấp phát, mà được xác định từ 48 bit đầu tiên (dấu thời gian mili giây) của UUIDv7 được tạo ra khi lần đầu tiên lập thư mục TOP của Tenant. Nhờ vậy, định danh Tenant gắn với thời điểm, có thể sắp xếp và là duy nhất mà không cần cơ sở dữ liệu trình tự trung tâm - miễn là không có hai Tenant nào phát sinh tại cùng một thời điểm mili giây.

Nguồn thời gian có thể chọn tự do: Dấu thời gian 48 bit không nhất thiết phải là thời điểm lập thực tế. Thay vì giờ hệ thống (DateTime.Now), mỗi Tenant có thể tạo UUIDv7 từ một thời điểm được chỉ định 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 khác được chọn tùy ý (xem CustomEpoch/Timestamp trong TenantContext). Nhờ đó, định danh Tenant có thể được gắn với một ngày có ý nghĩa nghiệp vụ; tính duy nhất vẫn được bảo toàn, miễn là thời điểm mili giây đã chọn không bị xung đột giữa các Tenant (một lý do nữa cho việc đă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 (giải quyết chéo repo các đường dẫn vật lý và logic), một định danh Tenant phải có thể được phân giải một cách duy nhất khi sử dụng xuyên repo. Vì vậy mà 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 Tenant-UUIDv7 được quản lý trong sổ đăng ký trung tâm (tên viết tắt, pháp nhân, dấu thời gian, trạng thái) Phân giải được mà không xung đột; có tính 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ý Tenant-UUIDv7 tồn tại cục bộ nhưng không được quản lý trong sổ đăng ký Chấp nhận được cho sử dụng nội bộ; rủi ro xung đột khi duyệt xuyên repo (không được bảo vệ khỏi xung đột, không đảm bảo phân giải)

Thể hiện sổ đăng ký chuẩn tắc: Sổ đăng ký Tenant vận hành được quản lý tại tenant root tương ứng dưới .gitcover/access/TENANT_GUID_REGISTER.md (tên viết tắt · pháp nhân · UUIDv7 · dấu thời gian · trạng thái). Đây là danh sách có giá trị quyết định về các Tenant đã đăng ký.

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

Một chuỗi chứng từ nối các artefact Compliance với nhau qua các 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 đến hash SHA-256 của chứng từ đứng trước nó. Toàn bộ chuỗi nhờ vậy được neo bằng mật mã và chống được thao túng.

Lược đồ siêu dữ liệu (.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"

Bản gốc nhị phân và V7GUID-Sidecar

Các chứng từ tồn tại dưới dạng tệp nhị phân (PDF, DOCX, EML, hình ảnh) không thể mang siêu dữ liệu bên trong Git. Chúng được gắn vào chuỗi chứng từ thông qua một V7GUID-Sidecar (*.v7g.md nằm cạnh bản gốc): Sidecar ghi ít nhất sha256 của bản gốc cũng như DocID (uuidv7, định danh thể hiện) và v7guid đã phân loại (bối cảnh). Quy trình và việc cấp DocID từ dấu thời gian của tệp được mô tả trong Trục 5: Các cách thức thực hiện; việc đăng ký Tenant liên quan xem Sổ đăng ký Tenant trung tâm ở trên.

Cryptographic Evidence Chain

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

  1. Git-Commit-Hash - Tính bất biến của trạng thái repository
  2. GPG-Signatur - Danh tính của tác nhân (Ai đã quyết định?)
  3. V7GUID - Địa chỉ hóa xác định (Cái gì và Khi nào)

Nhờ đó hình thành một chuỗi vừa được neo bằng mật mã vừa có thể sắp xếp theo thời gian - nền tảng cho các bằng chứng Compliance an toàn trước kiểm toán.

Recovery-Fallback: Cuối cùng chỉ còn lại các Git-repo Khi xảy ra thảm họa, mất hạ tầng hoặc kiểm toán 10 năm sau, bộ artefact cuối cùng còn hoạt động được chính là Git-repository (hoặc xuất git bundle/ZIP). Bên trong chứa: Code-Artifacts, các registry/dictionary .gitcover/ (JSON/JSONL), các GPG-Keyrings (.gitcover/keys/), các chuỗi chứng từ V7GUID. Không cần cơ sở dữ liệu, không cần webserver, không cần các service đang chạy. Điều tra pháp y chính là Git-repo — các gói kiểm tra HTML chỉ là các sản phẩm phái sinh để trình bày (xem Các cách thức thực hiện: Audit-Readiness).

Phân nhánh xác định

Phân nhánh xác định cho phép gắn các chuỗi chứng từ vào các cấu trúc Git-repository. Thông qua sự kết hợp của:

hình thành các cấu trúc Compliance có thể tái tạo, đủ khả năng kiểm toán - không cần bảo trì bổ sung thủ công.

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