---
title: 'Uyumluluk Gereksinimlerinin Buluta Yansıması'
source: 'https://academia.sh/tr/kurslar/bulut-yonetisimi/uyumluluk-cerceveleri'
course: 'Bulut Yönetişimi, Güvenlik ve Maliyet'
language: tr
updated: '2026-08-17T18:06:55+00:00'
license: 'CC BY-SA 4.0'
---

# Uyumluluk Gereksinimlerinin Buluta Yansıması

Uyumluluk gereksinimlerinin kiralanan katmanda kanıta çevrilmesi: 12 gereksinim türü ve 26 kanıt kaleminde 7 kalemin sağlayıcının belgesinden, 16'sının kendi kaydından gelmesi, 3 gereksinimde kanıtın boşlukta kalması, kiracının katmanı dışında geçen 14 kalemin 7'sinin kanıtının sağlayıcıdan gelmemesi ve kanıt üretmenin yılda 139 kurgu birim ile 160 kişi-saate mal olması.

Önceki ders tespit kurallarını koşturdu ve üç sayı üretti: yakalanan, kaçan, yanlış alarm. Üçü de
ekibin kendi ölçüsüydü — eşiği de, kapatma kararını da aynı taraf veriyordu. Dışarıdan biri
"erişimin kısıtlandığını ve olağandışı etkinliğin izlendiğini gösterin" dediğinde istenen şey bu
sayılar değildir. İstenen **kanıttır**: bir yükümlülüğün karşılandığını, o yükümlülüğü koymayan
birine gösterilebilir biçimde ortaya koyan kayıt ya da belge.

Dış kısıtların koşturulabilir denetime çevrilmesi M20/K04'te ölçüldü; orada gevşetmenin yerini
kanıt alıyordu ve kanıtın tamamı mimarinin kendi çıktısıydı. Kiralanan katmanda bu bölünür.
Gereksinimlerin bir kısmı sağlayıcının makinesinde, tesisinde ya da personelinde karşılanır;
kiracının orada üretebileceği bir kayıt yoktur ve kanıt olarak **sağlayıcının belgesi** geçer. Bu
dersin ölçüsü o ayrımdır. Gereksinimler burada **tür olarak** anılır — veri yerleşimi kısıtı,
saklama zorunluluğu, silme hakkı, erişim kaydı yükümlülüğü, ayrıcalıklı erişim kanıtı — ve hiçbir
düzenleme, standart, sertifika ya da çerçeve adı yazılmaz.

## Gereksinimler ve Kanıt Kalemleri

Örnek kursun kurgu **bölgesel ölçüm ağı**dır. **BG43 — gereksinim kataloğu:** on iki gereksinim
türü. **BG44 — kanıt kalemi çizelgesi:** yirmi altı kalem; her kalem hangi katmanda geçtiğini
(sağlayıcı, paylaşılan, kiracı), kanıtının kim tarafından üretildiğini (sağlayıcının belgesi,
kendi kaydın, hiçbiri), tazeliğini gün olarak, günlük satır sayısını ve saklama süresini taşır.
**BG45 — gereksinim-kalem eşlemesi:** otuz iki bağ; bir kalem birden çok gereksinime hizmet
edebilir. **BG46 — kayıt birimleri:** satır başına 200 bayt, GB başına aylık 1,5 kurgu birim.
**BG47 — rapor üretimi:** her gereksinim çeyrekte bir derlenir, gereksinim başına 2 kişi-saat sabit
ve kalem başına 0,5 kişi-saat. **BG48 — kanıt deposu üst sınırı:** 12 GB (kurgu birim).

Aşağıdaki dosya çizelgeleri kurar ve kanıtı üreticisine göre ayırır. Süreç içi bir **modeldir**;
gerçek belge, kayıt ya da ücret yoktur.

```js
// uyum/kanit.mjs — uyumluluk gereksinimlerinin kiralanan katmanda kanita cevrilmesi.
// Surec ici model: bolgesel olcum agi (kurgu); gercek belge, kayit ya da ucret yoktur.

const satir = (s) => s.trim().split("\n").map((l) => l.trim().split("|"));
const yaz = (g, ...s) => console.log(s.map((v, i) =>
  (g[i] < 0 ? String(v).padEnd(-g[i]) : String(v).padStart(g[i]))).join(""));

// Kanit kalemi: ad|katman|uretici (saglayici|kendi|yok)|tazelik (gun)|gunluk satir|saklama (gun)
const KALEM = Object.fromEntries(satir(`
  kaynak-envanteri|kiraci|kendi|1|400|1095
  bolge-etiketi|kiraci|kendi|1|400|1095
  veri-akis-haritasi|kiraci|yok|0|0|0
  tesis-bolge-beyani|saglayici|saglayici|365|0|0
  saklama-politikasi-kaydi|kiraci|kendi|1|150|1095
  yasam-dongusu-kosum-kaydi|kiraci|kendi|1|900|1095
  yedek-kopya-envanteri|paylasilan|kendi|7|60|1095
  silme-istegi-kaydi|kiraci|kendi|1|30|2555
  silme-yayin-kaydi|kiraci|kendi|1|120|2555
  yedekten-silme-onayi|paylasilan|yok|0|0|0
  denetim-gunlugu|paylasilan|kendi|1|9000|2555
  veri-duzlemi-erisim-kaydi|saglayici|kendi|1|4000|2555
  saglayici-personel-erisim-beyani|saglayici|saglayici|365|0|0
  ayricalikli-oturum-kaydi|kiraci|kendi|1|200|2555
  rol-ustlenme-kaydi|kiraci|kendi|1|600|2555
  sifreleme-yapilandirma-taramasi|paylasilan|kendi|1|300|1095
  anahtar-sahipligi-beyani|saglayici|saglayici|365|0|0
  aktarim-uc-taramasi|kiraci|kendi|1|250|1095
  istemci-dogrulama-kaydi|kiraci|yok|0|0|0
  anahtar-dondurme-kaydi|paylasilan|kendi|1|20|2555
  anahtar-materyali-imha-beyani|saglayici|saglayici|365|0|0
  tesis-erisim-denetimi-beyani|saglayici|saglayici|365|0|0
  donanim-imha-beyani|saglayici|saglayici|365|0|0
  geri-yukleme-tatbikat-kaydi|kiraci|kendi|90|10|1095
  olay-zaman-cizelgesi|paylasilan|kendi|1|80|2555
  saglayici-olay-bildirimi|saglayici|saglayici|30|0|0`)
  .map(([ad, katman, uretici, taze, satirSay, sakla]) => [ad,
    { katman, uretici, taze: +taze, satirSay: +satirSay, sakla: +sakla }]));

// Gereksinim turu -> kanit kalemleri. Duzenleme, standart ya da cerceve adi yoktur.
const GEREKSINIM = satir(`
  G01 veri yerlesimi kisiti|kaynak-envanteri bolge-etiketi veri-akis-haritasi tesis-bolge-beyani
  G02 saklama alt siniri|saklama-politikasi-kaydi yasam-dongusu-kosum-kaydi yedek-kopya-envanteri
  G03 saklama ust siniri|saklama-politikasi-kaydi yasam-dongusu-kosum-kaydi
  G04 silme hakki|silme-istegi-kaydi silme-yayin-kaydi yedekten-silme-onayi
  G05 erisim kaydi yukumlulugu|denetim-gunlugu veri-duzlemi-erisim-kaydi
  G06 ayricalikli erisim kaniti|ayricalikli-oturum-kaydi rol-ustlenme-kaydi saglayici-personel-erisim-beyani denetim-gunlugu
  G07 beklemede sifreleme kaniti|sifreleme-yapilandirma-taramasi anahtar-sahipligi-beyani
  G08 aktarimda sifreleme kaniti|aktarim-uc-taramasi istemci-dogrulama-kaydi
  G09 anahtar dondurme kaniti|anahtar-dondurme-kaydi anahtar-sahipligi-beyani anahtar-materyali-imha-beyani
  G10 fiziksel erisim ve imha kaniti|tesis-erisim-denetimi-beyani donanim-imha-beyani
  G11 geri yuklenebilirlik kaniti|geri-yukleme-tatbikat-kaydi yedek-kopya-envanteri
  G12 olay bildirimi kaniti|olay-zaman-cizelgesi saglayici-olay-bildirimi denetim-gunlugu`)
  .map(([ad, k]) => ({ ad, kalem: k.split(" ") }));

const KATMAN = ["saglayici", "paylasilan", "kiraci"];
const URETICI = ["saglayici", "kendi", "yok"];

console.log(`${GEREKSINIM.length} gereksinim turu, ${Object.keys(KALEM).length} kanit kalemi, ` +
  `${GEREKSINIM.reduce((t, g) => t + g.kalem.length, 0)} gereksinim-kalem bagi`);

// Gereksinim basina: kanit kimden geliyor, bosta kalan var mi, en eski kanit kac gunluk
const G = [-36, 8, 14, 8, 8, 15];
console.log();
yaz(G, "gereksinim turu", "kalem", "saglayicidan", "kendi", "bosta", "en eski (gun)");
const durum = {};
for (const g of GEREKSINIM) {
  const say = (u) => g.kalem.filter((k) => KALEM[k].uretici === u).length;
  const uretilen = g.kalem.filter((k) => KALEM[k].uretici !== "yok");
  const taze = Math.max(...uretilen.map((k) => KALEM[k].taze));
  durum[g.ad] = { bosta: say("yok"), taze };
  yaz(G, g.ad, g.kalem.length, say("saglayici"), say("kendi"), say("yok"), taze);
}
const bosluklu = GEREKSINIM.filter((g) => durum[g.ad].bosta > 0);
console.log(`\nkaniti boslukta kalan gereksinim: ${bosluklu.length}/${GEREKSINIM.length} -> ` +
  bosluklu.map((g) => `${g.ad.split(" ")[0]} (${g.kalem.filter((k) =>
    KALEM[k].uretici === "yok").join(", ")})`).join("; "));

// Paylasilan sorumluluk siniri kanit tarafinda yeniden cizilir: katman x uretici
const C = [-14, 12, 10, 8, 9];
console.log();
yaz(C, "katman \\ uretici", "saglayici", "kendi", "yok", "toplam");
for (const kt of KATMAN) {
  const kume = Object.values(KALEM).filter((k) => k.katman === kt);
  yaz(C, kt, ...URETICI.map((u) => kume.filter((k) => k.uretici === u).length), kume.length);
}
yaz(C, "toplam", ...URETICI.map((u) =>
  Object.values(KALEM).filter((k) => k.uretici === u).length), Object.keys(KALEM).length);
const disKatman = Object.entries(KALEM).filter(([, k]) => k.katman !== "kiraci");
const disAmaKendi = disKatman.filter(([, k]) => k.uretici !== "saglayici");
console.log(`kiracinin katmani disinda gecen ${disKatman.length} kalemin ` +
  `${disAmaKendi.length} tanesinin kaniti saglayicidan gelmiyor: ` +
  `${disAmaKendi.map(([a]) => a).join(", ")}`);

// Kanit uretmenin surekli maliyeti (kurgu birim)
const SATIR_BAYT = 200, GB = 1e9, GB_BIRIM = 1.5;
const kendi = Object.entries(KALEM).filter(([, k]) => k.uretici === "kendi");
const hacim = kendi.reduce((t, [, k]) => t + (k.satirSay * k.sakla * SATIR_BAYT) / GB, 0);
const gunlukSatir = kendi.reduce((t, [, k]) => t + k.satirSay, 0);
console.log(`\nkendi kaydindan gelen ${kendi.length} kalem: gunde ` +
  `${gunlukSatir.toLocaleString("tr-TR")} satir; saklama suresi sonunda ` +
  `${hacim.toFixed(2)} GB, ayda ${(hacim * GB_BIRIM).toFixed(2)} birim, ` +
  `yilda ${(hacim * GB_BIRIM * 12).toFixed(0)} birim depolama`);

// Rapor uretimi: her gereksinim ceyrekte bir derlenir
const [CEYREK, SABIT, KALEM_SAAT] = [4, 2, 0.5];
const kisiSaat = GEREKSINIM.reduce((t, g) =>
  t + CEYREK * (SABIT + g.kalem.length * KALEM_SAAT), 0);
console.log(`rapor uretimi: ${GEREKSINIM.length} gereksinim x ${CEYREK} ceyrek x ` +
  `(${SABIT} + kalem x ${KALEM_SAAT}) = ${kisiSaat} kisi-saat/yil`);
const beyan = Object.values(KALEM).filter((k) => k.uretici === "saglayici");
console.log(`saglayicidan gelen ${beyan.length} belgenin tazeligi ` +
  `${Math.min(...beyan.map((k) => k.taze))}-${Math.max(...beyan.map((k) => k.taze))} gun; ` +
  `kendi kaydinin tazeligi 1-90 gun`);

// Sinir ve kalan (kurgu): kanit deposu ust siniri
const SINIR = 12;
console.log(`kanit deposu ust siniri ${SINIR} GB; kullanilan ${hacim.toFixed(2)}, kalan ` +
  `${(SINIR - hacim).toFixed(2)} -> denetim gunlugunun gunluk satiri ` +
  `${Math.floor(((SINIR - hacim) * GB) / (SATIR_BAYT * KALEM["denetim-gunlugu"].sakla))
    .toLocaleString("tr-TR")} satir daha buyuyebilir`);
```

```
12 gereksinim turu, 26 kanit kalemi, 32 gereksinim-kalem bagi

gereksinim turu                        kalem  saglayicidan   kendi   bosta  en eski (gun)
G01 veri yerlesimi kisiti                  4             1       2       1            365
G02 saklama alt siniri                     3             0       3       0              7
G03 saklama ust siniri                     2             0       2       0              1
G04 silme hakki                            3             0       2       1              1
G05 erisim kaydi yukumlulugu               2             0       2       0              1
G06 ayricalikli erisim kaniti              4             1       3       0            365
G07 beklemede sifreleme kaniti             2             1       1       0            365
G08 aktarimda sifreleme kaniti             2             0       1       1              1
G09 anahtar dondurme kaniti                3             2       1       0            365
G10 fiziksel erisim ve imha kaniti         2             2       0       0            365
G11 geri yuklenebilirlik kaniti            2             0       2       0             90
G12 olay bildirimi kaniti                  3             1       2       0             30

kaniti boslukta kalan gereksinim: 3/12 -> G01 (veri-akis-haritasi); G04 (yedekten-silme-onayi); G08 (istemci-dogrulama-kaydi)

katman \ uretici   saglayici     kendi     yok   toplam
saglayici                7         1       0        8
paylasilan               0         5       1        6
kiraci                   0        10       2       12
toplam                   7        16       3       26
kiracinin katmani disinda gecen 14 kalemin 7 tanesinin kaniti saglayicidan gelmiyor: yedek-kopya-envanteri, yedekten-silme-onayi, denetim-gunlugu, veri-duzlemi-erisim-kaydi, sifreleme-yapilandirma-taramasi, anahtar-dondurme-kaydi, olay-zaman-cizelgesi

kendi kaydindan gelen 16 kalem: gunde 16.520 satir; saklama suresi sonunda 7.72 GB, ayda 11.58 birim, yilda 139 birim depolama
rapor uretimi: 12 gereksinim x 4 ceyrek x (2 + kalem x 0.5) = 160 kisi-saat/yil
saglayicidan gelen 7 belgenin tazeligi 30-365 gun; kendi kaydinin tazeligi 1-90 gun
kanit deposu ust siniri 12 GB; kullanilan 7.72, kalan 4.28 -> denetim gunlugunun gunluk satiri 8.374 satir daha buyuyebilir
```

Sayılar **ölçüm** sınıfındadır; girdileri yukarıdaki varsayımlardır. On iki gereksinim yirmi altı
kanıt kalemine ve otuz iki bağa çözülüyor. Yirmi altı kalemin yedisi sağlayıcının belgesinden, on
altısı kendi kaydından geliyor, üçünün üreticisi yok. Kalem sayısı gereksinim sayısından fazladır
ve bağ sayısı kalem sayısından fazladır; tek bir kalem birden çok yükümlülüğe hizmet eder — denetim
günlüğü üç ayrı gereksinimde geçiyor, anahtar sahipliği beyanı ikisinde.

## Kanıtın İki Üreticisi

Gereksinim tablosunun ilk okunacak yeri ikinci ve üçüncü sütunlardır. G10 tamamen sağlayıcının
tarafındadır: iki kaleminin ikisi de belgedir, kiracının orada üreteceği hiçbir kayıt yoktur. G03
ve G05 tamamen kiracının tarafındadır. Kalan dokuz gereksinim karışıktır ve kanıt dosyası iki
farklı türden parça içerir. Bu, uyum çalışmasının pratik biçimini belirler: bir gereksinimi
karşılamak tek bir sorumlunun işi değil, iki üreticiden gelen parçaların birleştirilmesidir.

Son sütun bu birleştirmenin zayıf halkasını gösteriyor. **Bir gereksinimin kanıtı, en eski
parçasının yaşı kadar tazedir.** G05 için tazelik bir gündür, çünkü her iki kalem de günlük tutulan
kayıtlardır. G01, G06, G07, G09 ve G10 için tazelik 365 gündür; bu beş gereksinimin her birinde
yılda bir yenilenen bir sağlayıcı belgesi vardır ve kiracının günlük tuttuğu kayıtlar dosyanın
yaşını düşürmez. Bir olay ile onu kapsayan belgenin yenilenmesi arasında bir yıla kadar boşluk
kalabilir; yenileme takvimini de sağlayıcı belirler, dolayısıyla bu bir devredilmiş karardır ve
kiracının hızlandıramayacağı bir kalemdir.

İki üreticinin ürettiği şey aynı türden değildir ve bu ayrım sayılardan sonra gelir. Kendi kaydın
sorgulanabilir: bir tarih aralığı verilir, bir özne süzülür, aynı kayıttan başka bir soruya yanıt
çıkarılır ve gerekirse geriye dönük yeniden derlenir. Sağlayıcının belgesi ise kapalı bir
çıktıdır — verilen biçimiyle kabul edilir, içine sorgu yazılamaz, kapsamı dışına çıkarılamaz ve
kapsamadığı bir kaynak için ikinci bir sürümü istenemez. On altı kalem birinci türden, yedisi
ikinci türdendir. Pratik sonucu şudur: bir denetçi tabloda olmayan bir soru sorduğunda kiracının
on altı kalemde yanıt üretme şansı vardır, yedi kalemde yoktur; o yedide verilecek yanıt belgede
yazılı olanla sınırlıdır.

Üç gereksinimde kanıt boşlukta kalıyor ve üçü de adıyla yazılıyor. G01'de veri akış haritası
eksiktir: hangi verinin hangi bölgeye aktığını gösteren bir kayıt yok, dolayısıyla envanterdeki
etiket ile tesis beyanı arasındaki bağ kurulamıyor. G04'te yedekten silme onayı eksiktir: silme
isteği kaydediliyor ve yayınlanıyor ama silmenin yedek kopyalarda gerçekleştiğini gösteren bir
kayıt üretilmiyor. G08'de istemci doğrulama kaydı eksiktir: uç taraması sunucu tarafını gösteriyor,
istemcinin doğrulamayı gerçekten yaptığına dair kanıt yok. Üçünün ortak yanı şudur: eksik olan bir
belge değil, hiç kurulmamış bir kayıt akışıdır. Kimse reddetmedi, kimse vermedi — kimse istemedi.

## Sınır Kanıt Tarafında Yeniden Çizilir

Çapraz tablo dersin ana ölçüsüdür. Katman sütunları sorumluluğun nerede olduğunu, satırlar kanıtın
kimden geldiğini söylüyor ve ikisi çakışmıyor. Sağlayıcının katmanında geçen sekiz kalemin yedisi
belge ile karşılanıyor, biri karşılanmıyor: veri düzlemi erişim kaydı sağlayıcının içinde olup
biter ama kanıtını üreten, o kaydı açık tutan kiracıdır. Paylaşılan katmandaki altı kalemin
**hiçbiri** sağlayıcının belgesinden gelmiyor; beşi kiracının kaydından, biri hiç gelmiyor.

Toplam sayı bunu tek satıra indiriyor: kiracının katmanı dışında geçen on dört kalemin yedisinin
kanıtı sağlayıcıdan gelmiyor. Yani sorumluluk paylaşımı kanıt tarafına aynen geçmiyor; **kanıt
sınırı katman sınırının kiracı tarafına doğru kaymış durumdadır.** Yedek kopya envanteri, denetim
günlüğü, şifreleme yapılandırma taraması, anahtar döndürme kaydı ve olay zaman çizelgesi ortak
katmanda geçen işlerdir, ama gösterilmesi gerektiğinde gösterecek olan kiracıdır. Bu ayrım
sözleşmede değil, kanıt dosyasının kim tarafından derlendiğinde görünür — ve derleme yükü tam da
buradan doğar.

## Kanıt Üretmenin Sürekli Maliyeti

Kanıt bir defa üretilip bitmez; sürekli bir kalemdir ve iki başlıkta sayılır. Kendi kaydından gelen
on altı kalem günde 16.520 satır üretiyor; kendi saklama süreleri sonunda 7,72 GB tutuyor, ayda
11,58 ve yılda 139 kurgu birim depolama ediyor. İkinci başlık daha ağırdır: on iki gereksinimin her
biri çeyrekte bir derleniyor ve yılda 160 kişi-saat tutuyor. İki kalemi yan yana koymak dersin
sonucudur — kanıtın sürekli maliyeti ağırlıklı olarak depolama değil, **derleme emeğidir** ve
gereksinim başına değil kalem başına büyür.

M20/K04'ün kapalı halkası burada da geçerlidir ve bir sözcük ekler: kanıt da bir veri sınıfıdır,
kendi saklama süresine ve kendi yerleşim kısıtına tabidir. Eklenen sözcük şudur: bu veri sınıfının
yarısını kiracı üretmez. Sağlayıcıdan gelen yedi belgenin tazeliği 30–365 gün arasındadır ve bu
aralık kiracının seçimi değildir; kendi kaydının tazeliği 1–90 gündür ve bu aralık kiracının
seçimidir. Kanıt dosyasının ne kadar taze olabileceğine iki taraf birden karar verir.

Sınır tarafında da kalan sayılıyor. Kanıt deposunun üst sınırı 12 GB, kullanılan 7,72, kalan 4,28.
Bu, denetim günlüğünün günlük satır sayısının 8.374 satır daha büyümesine yeter; ondan sonrası ya
saklama süresini kısaltmayı gerektirir — ki saklama süresi bir gereksinimin kendisidir — ya da
sınırı büyütmeyi, ki bu da faturaya yazılır.

## Özet

- On iki gereksinim türü yirmi altı kanıt kalemine ve otuz iki bağa çözüldü; kalemlerin yedisi
  sağlayıcının belgesinden, on altısı kendi kaydından geliyor, üçünün üreticisi yok.
- Üç gereksinimde kanıt boşlukta kalıyor (veri akış haritası, yedekten silme onayı, istemci
  doğrulama kaydı); üçünde de eksik olan bir belge değil, hiç kurulmamış bir kayıt akışıdır.
- Bir gereksinimin kanıtı en eski parçası kadar tazedir: beş gereksinimde tazelik 365 gündür,
  çünkü içlerinde yılda bir yenilenen bir sağlayıcı belgesi vardır ve yenileme takvimi kiracının
  değildir.
- Paylaşılan sorumluluk sınırı kanıt tarafında aynı yerde durmuyor: kiracının katmanı dışında geçen
  on dört kalemin yedisinin kanıtı sağlayıcıdan gelmiyor, paylaşılan katmandaki altı kalemin
  hiçbiri belgeyle karşılanmıyor.
- Kanıt üretmenin sürekli maliyeti iki kalemdir: 16.520 satır/gün ve 7,72 GB ile yılda 139 kurgu
  birim depolama, artı yılda 160 kişi-saat rapor derleme. Ağır olan ikincisidir.
- Kanıt deposunun 12 GB'lık sınırının 7,72'si dolu; kalan 4,28 GB denetim günlüğüne günde 8.374
  satırlık büyüme yeri bırakıyor.

## Sonraki Adım

Konu burada kapanıyor ve bıraktığı tablo tek bir cümleye sığar: kiralanan katmanda güvenlik, kimin
neyi yapabildiğini daraltmak, verinin okunduğunda ne göstereceğini değiştirmek ve ikisinin de
yapıldığını gösterebilmektir. Üçünün de sayısı çıkarıldı — daraltmanın kaç meşru işi durdurduğu,
yalıtımın kaç erişimi kırdığı, tespitin kaçını kaçırdığı ve kanıtın hangi gereksinimde boşlukta
kaldığı.

Çıkarılmayan tek şey bunların toplamıdır. Uyum denetimi bir kotayı, özel uç noktalar hizmet ve ağ
başına aylık bir kirayı, sinyal toplama GB başına bir ücreti, kanıt saklama bir depo sınırını
tüketiyor; her biri kendi bölümünde kurgu birimle yazıldı ama hiçbiri diğerinin yanına konmadı.
Erişim daraltıldı, veri şifrelendi ve kanıt üretildi — bunların hepsinin bir **faturası** var ve o
fatura bu konu boyunca hiç okunmadı. Sonraki konu faturayı kalem kalem açar: hangi kalemin neye
ait olduğu, hangi ekibe düştüğü ve hangi payın hiçbir ekibe atanamadığı.
