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 artifact 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 bằng một phân loại class đặc thù của GitCover.

Cấu trúc

Phân đoạn Bit 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 Vector tất đị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ừ rand_a của RFC)
class (L1–L6 + các trường định danh mở rộng) 62 Phần mở rộng GitCover Phần payload GitCover được gán giá trị tất định (phân cấp 6 cấp + các trường định danh mở rộng cho việc phân loại Compliance, từ rand_b của RFC)

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

Cơ sở 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 cơ sở GMT/UTC (Offset 0) - không bao giờ trên cơ sở 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

Lý do:

Quy tắc nhận diện: 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ờ ở phần nền của định danh.

Chuẩn & Triển khai: Nguyên tắc V7GUID (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 Cross-Repo) là một phần của đơn đăng ký bằng sáng chế 10 2025 003 091.6. Cách gán bit chuẩn tắc (offset/độ rộng/khoảng giá trị chính xác của từng phân đoạn) được quy định mang tí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 này; khi có sai khác thì áp dụng đặc tả.

Class-Identifier - Bảng đăng ký phân đoạn

GitCover Class-Identifier (phân đoạn class của V7GUID) được cấu tạo một cách tất định từ một phân cấp kinh doanh (Business-Hierarchie) sáu cấp. Mỗi cấp rộng 4 bit (khoảng giá trị 0–15, tức 16 giá trị có thể có cho mỗi cấp) và được gán giá trị toàn cục 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 định danh mở rộng. Bảng đăng ký sau đây 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 có thể tương ứng của mỗi phân đoạn và tạo thành tài liệu tham chiếu ràng buộc cho khả năng tương tác giữa các repo GitCover.

Business-Hierarchie (phân loại tất định)

# Phân đoạn Bit Giá trị tối đa 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 tầng (pháp lý là Tenant + về tổ chức là PMO/Department, xem Kỹ thuật: Git als IdP
L3 Category 4 15 categories.json Danh mục (ví dụ: 12 Service, 14 DocSigning; 15 = Sentinel Custom/TenantDefined)
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, 11 Agentic; 15 = Sentinel Custom/TenantDefined)
L6 Instance 4 15 instances.json Instance (ví dụ: 1 Default, 2 Primary)

Ký hiệu chuỗi phân loại (Classification-String) 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). Khoảng giá trị 16⁶ = 16.777.216 bao phủ tất cả các phân loại tất định.

Business-Hierarchie như một Ontologie

Sáu Dictionaries (từ Entity đến Instance) cùng nhau tạo thành GitCover-Ontologie: một bộ từ vựng đọc được bằng máy, dùng chung của tổ chức — các thực thể (ví dụ: Business Entity, Business Partner), các mối quan hệ, quy tắc và phân loại của chúng. Nhờ đó, con người, các validator và các AI agent nói cùng một ngôn ngữ: một thuật ngữ như „ERechnung" (ProcessType 13) đều mang cùng một ý nghĩa trong mọi Repo, mọi Schema và mọi Policy.

Tại GitCover, Ontologie được hiện thực hóa Git-nativ — không phải dưới dạng một cơ sở dữ liệu đồ thị trong một nền tảng:

Đặc điểm GitCover-Ontologie Các Ontologie nền tảng (ví dụ: Microsoft „Fabric IQ", nơi „Ontology" là một Preview-Item)
Nơi lưu trữ Các JSON-Dictionaries đã được phiên bản hóa trong Repo .gitcover (L1–L6) + các JSON-Schema Graph tập trung trong nền tảng (OneLake, giao diện truy vấn GQL)
Tính truy vết Chính lịch sử Git („Pháp chứng = Git-Repo"); mỗi thay đổi là một Commit Lineage trong phạm vi nền tảng; bên ngoài không thể tái hiện
Truy cập của kiểm toán viên Mọi kiểm toán viên đều tái hiện ngữ nghĩa bằng các công cụ mở (Git, jq, các trình xác thực JSON-Schema) — No Vendor Lock-In Quyền truy cập bị ràng buộc vào tài khoản nền tảng
Quyền thay đổi Governance thông qua Review/Merge trong Repo Mô hình vai trò của nền tảng

Microsoft mô tả tầng ngữ nghĩa của mình là „governed, self-service knowledge graph", vốn cung cấp cho các agent „shared context" — cùng một không gian vấn đề (ngữ cảnh agent, các thuật ngữ thống nhất), nhưng được giải quyết theo cách gắn với nền tảng. GitCover giải quyết vấn đề này theo kiểu repo-nativ: Ontologie chính là bộ quy phạm trong Git-Repo, chứ không phải một dịch vụ tại một nhà cung cấp. Chi tiết về việc phân định: Bảng thuật ngữ („Ontologie") và Các thành phần: GCUCB, Bối cảnh thị trường.

Các trường dữ liệu đặc trưng mở rộng của V7GUID (Gán kiểu Compliance)

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

Segment Bits Max-Value (Custom) Câu hỏi Chiều 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 Mandant/PII
ProcessTypeId 8 255 Bằng gì? Quy trình đã tạo ra chứng từ (GoBD, EN16931, AI-Act)
GatewayId 8 255 Đ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)
Status 8 255 Giai đoạn nào? Bitmask vòng đời (đã lên kế hoạch/được phê duyệt/đã phát triển/…; bộ lọc O(1))
Kind 8 255 Loại nào? Loại hoạt động/biện pháp (R&D, thường quy, xử lý đơn hàng …)
VariantId 6 63 Biến thể? Bối cảnh pháp lý (bảo quản theo §147 AO, mức bảo vệ DSGVO, IFRS/HGB)

Lưu ý: VariantId trước đây có tên là InstanceId; tên đã được thay đổi vì trường này gán kiểu cho một lớp biến thể, chứ không phải một thực thể đối tượng. GatewayId/VariantId đã được thu hẹp từ 16/14 xuống 8/6 bit theo ADR-002 để chừa chỗ cho status và kind - xem specs/v7guid/ADR-002_layout_v2_kind.md.

Nhờ đó, một định danh duy nhất mã hóa đa chiều cái gì, ở đâu, bằng cái gì, qua điểm kiểm soát nào và ở biến thể nào mà một chứng từ đã được tạo ra - có thể 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ụ về một hóa đơn điện tử đã đượ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 (bảo quản 10 năm).

Gán giá trị: Các cấp 4-Bit L1–L6 mang tính chuẩn tắc toàn cầu và chỉ được điều phối thông qua các Dictionaries trong Repo .gitcover của TOP (trao đổi qua GCEP/GCUCB). Đối với các trường dữ liệu đặ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 của mỗi trường đượ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ầu sau này. Tham chiếu quy phạm: specs/v7guid/50_erweiterte_kennfelder_compliance.md.

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

Bên cạnh phân cấp 6 cấp, V7GUID còn mang sáu trường định danh khác có thể gán giá trị một cách tất định. Chúng là các trường hỗ trợ phân loại/xếp loại và phân loại các khía cạnh Compliance bổ sung của một chứng từ. Chúng rõ ràng không phải là các định danh instance đối tượng - đối tượng cụ thể nào được nói đế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 định danh.

Phân đoạn Bit Giá trị tối đa (Custom) Câu hỏi Chiều kích Compliance
RepositoryId 12 4.095 Ở đâu? Phạm vi Repo-/Dữ liệu (TOP + tối đa 4.095 repo mỗi Tenant); phân tách Mandant/PII
ProcessTypeId 8 255 Bằng gì? Quy trình/thủ tục đã tạo ra chứng từ (GoBD, EN16931, AI-Act)
GatewayId 8 255 Đ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)
Status 8 255 Giai đoạn nào? Bitmask vòng đời (đã lên kế hoạch/được phê duyệt/đã phát triển/…; bộ lọc O(1))
Kind 8 255 Loại nào? Loại hoạt động/biện pháp (R&D, thường quy, xử lý đơn hàng …)
VariantId 6 63 Biểu hiện? 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 có tên là InstanceId; tên đã được đổi vì trường này phân loại một lớp biểu hiện, không phải một instance đối tượng. GatewayId/VariantId đã được thu hẹp từ 16/14 xuống 8/6 bit theo ADR-002 để chừa chỗ cho status và kind - xem specs/v7guid/ADR-002_layout_v2_kind.md.

Nhờ đó, một định danh duy nhất mã hóa đa chiều cái gì, ở đâu, bằng cái gì, qua điểm kiểm soát nào và ở dạng biểu hiện nào mà một chứng từ đã phát sinh - có thể kiểm tra 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 theo nguyên tắc 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 phối hợp qua các Dictionary trong repo .gitcover của TOP (trao đổi qua GCEP/GCUCB). Đối với các trường định danh 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 trường đượ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, mà được tạo một cách tất đị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 tạo thư mục TOP của Tenant. Nhờ vậy, định danh Tenant gắn với thời gian, có thể sắp xếp và duy nhất mà không cần cơ sở dữ liệu sequence tập trung - 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 tạo 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 - ví dụ như ngày thành lập của pháp nhân hoặc một ngày tham chiếu tùy ý khác (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 giữ nguyên miễn là thời điểm mili giây được chọn không 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 (phân giải Cross-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 ngắn, pháp nhân, dấu thời gian, trạng thái) Phân giải được mà không xung đột; ràng buộc cho các phép duyệt others.json giữa các repo
Riêng / 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ộ; có 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)

Instance 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 theo đường dẫn .gitcover/access/TENANT_GUID_REGISTER.md (tên ngắn · 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ừ liên kết các artifact 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ừ liền trước. Toàn bộ chuỗi nhờ đó được neo giữ bằng mật mã và chống giả mạo.

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ừ qua một V7GUID-Sidecar (*.v7g.md đặt 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 instance) và v7guid đã phân loại (ngữ 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 tiến hành; việc đăng ký Tenant liên quan xem Sổ đăng ký Tenant trung tâm ở trên.

Container giao dịch (.gcpn.md) — tầng quy trình của chuỗi chứng từ

Bên cạnh việc lập danh mục theo từng Sidecar, GCPN-Container được thêm vào cho các giao dịch nhiều bước (ví dụ: sự hình thành và ký một GVB): một tệp .gcpn.md đặt cạnh Referenced-Doc (<Referenced-Doc-Basisname>.gcpn.md), đồng hành cùng quy trình với tư cách là một Prozess-Ur-Doc độc lập — không phải với tư cách Sidecar của Referenced-Doc. Về mặt khái niệm:

Một Referenced-Doc đã ký sau đó trở thành immutable (GoBD: tính bất biến); Container vẫn là mutable và tiếp tục ghi lại quy trình — lịch sử Git chính là bằng chứng.

GCPN với tư cách là biên bản — Act với tư cách là chuyển đổi trạng thái

Một GCPN là một dạng biên bản. Trong GCBoK với Compliance là chủ đề chính, thường nói đến các cuộc họp thành viên với các nghị quyết được tổng hợp trong một GVB:

Thuật ngữ Cách hiểu biên bản Cách hiểu trạng thái
GVB biên bản của cuộc họp (tài liệu tổng hợp) có thể chứa nhiều Act (nghị quyết)
Act nghị quyết riêng lẻ mô tả sự thay đổi giữa hai trạng thái (Trước → Sau)
GCPN biên bản quy trình của giao dịch (hình thành, ký) ghi lại các chuyển đổi trạng thái một cách an toàn kiểm toán (Events dưới dạng Flags, referenced_doc.status, bitmask events_result)

Cách hiểu kép này (biên bản + chuyển đổi trạng thái) là cốt lõi của khả năng chứng minh: Mỗi Act được mô tả một cách tất định — trạng thái trước có thể được chứng minh qua chuỗi SHA-256 (Sidecar, Referenced-Doc), trạng thái sau qua biểu thức Flags và artifact được nhúng. Lịch sử Git của Container cung cấp trình tự thời gian. Quy trình và xác minh: Trục 3 (GCPN) và Chuỗi bài viết digital-signage (DS02–DS05).

Cryptographic Evidence Chain

Cryptographic Evidence Chain kết hợp ba primitive 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 chủ thể hành động (Ai đã quyết định?)
  3. V7GUID - Địa chỉ hóa tất định (Cái gì và Khi nào)

Nhờ đó hình thành một chuỗi vừa được neo giữ 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 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ộ artifact cuối cùng còn hoạt động được chính là Git-Repository (hoặc bản xuất git bundle/ZIP). Bên trong chứa: Code-Artifacts, .gitcover/ Registries/Dictionaries (JSON/JSONL), GPG-Keyrings (.gitcover/keys/), 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 dịch vụ đang chạy. Điều tra pháp y chính là Git-Repo — các gói kiểm tra HTML dành cho kiểm toán viên chỉ là các sản phẩm phái sinh để trình bày (xem Các cách thức tiến hành: Audit-Readiness).

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

Phân nhánh tất đị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 lập, đáp ứng được kiểm toán - không cần bảo trì bổ sung thủ công.

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