Bitcoin mühendislik ödünleri, teşvikler, tehdit modelleri ve sadeliğin kötü niyetliler aktif şekilde zarar vermeye çalışırken bile bir sistemi çalışır tutabileceğini gösterir.

Çoğu sistem yabancılar için inşa edilir. Bilinmeyen kişilerin katılmasına, mesaj göndermesine, değer aktarmasına veya oy kullanmasına izin verdiğiniz anda, birbirlerine güvenmeden koordinasyon kurmalarını istiyorsunuz demektir.
İşte Bitcoin'in ele aldığı problem budur. Bu sadece "havalı kriptografi" değil. Birinin kuralları esnetmeye çalıştığında çalışmaya devam eden kurallar seçme üzerine mühendislik ödünleridir.
Bir saldırgan sadece "hacker" değildir. Kuruluşun varsayımlarını bozarak kazanç sağlayan herkes olabilir: bedava ödül peşindeki hileciler, dikkat isteyen spamcılar, nüfuz için rüşvet verenler veya hizmetinizin güvenilmez görünmesini isteyen rakipler.
Amaç hiç saldırılmayan bir şey inşa etmek değil. Amaç, saldırı altındayken bile kullanılabilir ve öngörülebilir kalmak ve kötüye kullanımı çoğu kişinin dürüst yolu seçmesini sağlayacak kadar pahalı kılmaktır.
Faydalı bir alışkanlık şudur: birine bu özelliği suistimal etmek için açık bir kâr güdüsü verirsem, ne yaparlar? Buna paranoya gerek yok. Teşvikler iyi niyetleri yener.
Açık sistemlerde aynı kalıplar hızla ortaya çıkar: otomasyon ve spam, kenar durum zamanlama numaraları (yarış koşulları, yeniden oynatma girişimleri, çift harcamalar), birçok kimliğin birçok kullanıcıymış gibi davranması (Sybil davranışı), içeriden iş birliği ve güveni azaltmak için kafa karıştırma kampanyaları.
Küçük ürünler bile bununla karşılaşır. Mesela inceleme paylaşanlara kredi veren bir puan programı düşünün. Krediler insanlar tarafından doğrulanandan daha hızlı talep edilebiliyorsa botlar bunları toplar. Ceza zayıfsa ucuz strateji "önce suistimal et, sonra özür dile" olur.
Bitcoin'den pratik çıkarım açıktır: tehdit modelinizi tanımlayın, gerçekçi olarak neleri savunabileceğinize karar verin ve temel kuralları baskı altındayken denetlenebilecek kadar basit tutun.
Bitcoin 2008–2009 interneti için tasarlandı: ev bilgisayarları, sınırlı bant genişliği, güvenilmez bağlantılar ve yazılımı yavaş hatlardan indiren yabancılar. Ayrıca güvenilir bir kayıt süreci veya kimin gerçekten kim olduğunu bilecek bir yol olmadan çalışmak zorundaydı.
Temel problem söylemesi kolay ama inşa etmesi zordu: bankasız bir şekilde, aynı parayı tekrar harcamaya izin vermeden herkese gönderilebilen dijital nakit yaratmak. Önceki dijital para sistemleri genelde defteri dürüst tutmak için merkezi bir operatöre dayanıyordu. Bitcoin'in hedefi bu bağımlılığı kimlik kontrolleri veya izinli üyeliklerle değiştirmeden ortadan kaldırmaktı.
Bu yüzden yaratıcının kimliğinden ziyade tasarımın yaptığı varsayımlar önemlidir. Bir sistem sadece kurucuya, şirkete veya küçük bir yönetici grubuna güvendiği için çalışıyorsa, gerçekten merkeziyetsiz değildir. Bitcoin güveni isteğe bağlı hale getirmeye çalıştı; güveni herkesin kendi makinesinde doğrulayabileceği kurallara itti.
Bitcoin tek bir başarısızlık veya baskı noktası yaratan kalıplardan kaçındı:
Bu seçimler sistemin güçlü ve zayıf yönlerini şekillendirdi. Güç, kimseye güvenmeseniz bile herkesin katılabilmesi ve doğrulayabilmesidir. Sınır, sistemin birçok bağımsız düğümün çalıştırabileceği kadar basit kalması gerektiği için işlem hacmi, depolama büyümesi ve kuralların ne kadar karmaşık olabileceği konusunda baskı yaratmasıdır.
Kısıtı görmenin pratik yolu: yabancılara "Her ödemenin kendiniz tarafından doğrulanabileceğini" vaat ettiğinizde, gizli veritabanlarına, müşteri hizmetleri kararlarına veya özel denetimlere güvenemezsiniz. Kurallar ağ düşman olduğunda ve bazı katılımcılar aktif olarak hile yapmaya çalıştığında bile geçerli kalmalı.
Bitcoin'in güvenliği bekçilere veya sözleşmelere ödenmez. Kurallara uyarak herkesin kazanabileceği ödüllerle ödenir. Bu, Bitcoin mühendislik ödünlerinin temel unsurlarından biridir: güvenlik probleminin bir kısmını iş problemi haline getirmek.
Madenciler elektrik ve donanıma gerçek para harcar. Karşılığında ağ onlara yeni basılan coin'leri (blok sübvansiyonu) ve işlem ücretlerini sunar. Bir madenci diğer düğümlerin kabul ettiği geçerli bir blok ürettiğinde ödeme alır. Geçersiz bir blok ürettiklerinde hiçbir şey almazlar çünkü düğümler onu reddeder. Çoğu hile varsayılan olarak kârsız hale getirilir.
"Dürüst" davranış, tutarlı ödemeler almanın en kolay yolu olduğu için kârlı varsayılan olur. Konsensüs kurallarına uymak öngörülebilirdir. Kuralları çiğnemeye çalışmak, başkalarının farklı bir geçmişi kabul etmesini sağlama bahsidir; bu koordinasyonu zor ve kaybetmesi kolaydır.
Teşvik hikayesi zamanla değişir. Yaklaşık her dört yılda bir sübvansiyon yarı yarıya azalır. Ücretlerin güvenlik bütçesinin daha fazlasını taşıması gerekir. Pratikte bu, kullanıcıların sınırlı blok alanı için rekabet ettiği bir ücret pazarına doğru itilir ve madenciler hangi işlemleri ne zaman dahil edeceklerine daha fazla dikkat edebilir.
Teşvikler idealdən uzaklaşabilir. Madencilik ölçek ekonomileri ve havuzlama yoluyla merkezileşebilir. Kısa vadeli kâr uzun vadeli güvenin önüne geçebilir. Bazı saldırılar geçersiz blok gerektirmez, sadece strateji gerektirir (örneğin, avantaj elde etmek için blok saklama). Sansür teşvikleri rüşvet veya düzenlemeyle de ortaya çıkabilir.
Somut bir düşünce yolu: bir madencinin hash gücünün %5'ine sahipse, düzenli gelir için en iyi yolu genelde paylaşılan yarışta kalmak ve ödüllerin olasılıksal payını almaktır. Tarihi yeniden yazma planı onlara gerçek maliyet yüklerken herkesin onları geride bırakma riski vardır.
Tasarım dersi basittir: istediğiniz davranış için ödeme yapın, kural çiğnemeyi pahalı hale getirin ve katılımcıların "doğru şeyi yapmak" yerine kârı optimize edeceklerini varsayın.
Bitcoin mühendislik ödünleri, dost olmayan bir varsayımdan başladığınızda daha anlamlı olur: biri kuralları kırmaya çalışıyor ve tek seferde kazanması yeterli.
Saldırganlar genelde birkaç sonuçtan birini ister: hak etmedikleri değeri almak, aynı parayı iki kez harcamak, belirli ödemeleri engellemek veya güveni sarsarak insanların sistemi kullanmayı bırakmasını sağlamak.
Erken dönemde büyük tehditlerden biri Sybil saldırısıdır; bir kişi birçok "kullanıcı"ymış gibi davranarak etki kazanır. Normal bir oylama sisteminde sahte hesaplar ucuzdur. Bitcoin'in cevabı proof-of-work oldu: etki kimliklere değil gerçek dünyadaki maliyete (enerji ve donanım) bağlandı. Bu saldırıları imkansız kılmaz ama ölçülebilir şekilde pahalı yapar.
Herkesin konuştuğu başlık riski %51 saldırısıdır. Eğer bir madenci ya da koalisyon madencilik gücünün çoğunu kontrol ederse, geri kalan ağdan daha hızlı olabilir ve hangi zincirin kabul edileceğini etkileyebilir.
Bu güç yine de sınırlıdır:
Bitcoin ayrıca madencilik yarışını kazanmayı gerektirmeyen ağ düzeyinde tehditlerle de karşılaşır. Bir saldırgan bir düğümün duyduklarını kontrol edebilirse, onu izole edip yanlı bir gerçeklik görünümü besleyebilir.
Yaygın riskler arasında eclipse saldırıları (bir düğümü saldırgan kontrollü eşlerle çevreleme), ağ bölünmesi (grupları ayırma), hizmet engelleme (bant genişliği, CPU veya bağlantı yuvalarını tüketme) ve kullanıcıları risky alışkanlıklara iten tıkanıklık yer alır.
Öz fikir: "tüm saldırıları durdurmak" değil, "saldırıları pahalı, görünür ve geçici kılmak" ve kuralları birçok bağımsız tarafın doğrulayabileceği kadar basit tutmaktır.
Saldırganları beklediğinizde "daha fazla özellik" söylemi pek yardımcı gelmez. Her ekstra seçenek kenar durumlar oluşturur ve kenar durumlar istismarların yaşadığı yerdir. Bitcoin mühendislik ödünlerinden en önemlisi sistemin birçok yerde kasıtlı olarak sıkıcı kalmasıdır. Sıkıcı olanı düşünmek daha kolaydır, test etmek daha kolaydır ve oyunlaştırması daha zordur.
Bitcoin'in kural kontrolleri çoğunlukla basittir: imzalar geçerli mi, coinler çift harcanmamış mı, bloklar net sınırlara uyuyor mu, sonra düğüm yoluna devam eder. Bu sadelik estetik değildir. Saldırganın zorlamaya çalışabileceği tuhaf durumların sayısını azaltır.
Bazı kısıtlar bir uygulama geliştiricisi gibi düşünürseniz kısıtlayıcı görünebilir, ama bunlar amaçlı kısıtlamalardır.
Bitcoin'in script dili genel bir "herhangi bir programı çalıştır" ortamı yerine sınırlıdır; bu şaşırtıcı davranışı azaltır. Bloklar ve diğer kaynaklar sınırlandırılmıştır ki sıradan düğümler ezilmesin. Yükseltmeler yavaş ve temkinli yapılır çünkü yaygın kullanılan bir kuralda küçük bir hata küresel bir sorun olabilir.
Blok boyutu tartışmaları bu zihniyeti gösterir. Daha büyük bloklar daha fazla işlem demektir ama aynı zamanda bir düğüm çalıştırmanın maliyetini yükseltir ve ağı zorlar. Daha az insan düğüm çalıştırabiliyorsa sistem baskı veya ele geçirmek için daha kolay hale gelir. Buradaki sadelik sadece kodla ilgili değildir. Katılımı normal operatörler için gerçekçi tutmakla da ilgilidir.
Yavaş yükseltmeler riski azaltır ama inovasyonu yavaşlatır. Avantajı, değişikliklerin yıllarca inceleme ve şüpheci geri bildirim almasıdır; çoğu zaman insanlar en kötüsünü varsayar.
Küçük sistemler için ilkeyi kopyalayabilirsiniz ama kesin süreci kopyalamak zorunda değilsiniz: kuralları basit tutun, kaynak kullanımını sınırlayın, öngörülemeyen davranış yaratan özelliklerden kaçının ve değişiklikleri bir saldırganın satır satır inceleyeceğini varsayın.
Birçok Bitcoin mühendislik ödünü, aktif saldırganları varsaydığınızda tuhaf görünür. Sistem en hızlı veritabanı olmaya çalışmıyor. Bazı katılımcılar yalan söylediğinde, hile yaptığında ve koordine olduğunda bile çalışmaya devam eden bir veritabanı olmaya çalışıyor.
Merkeziyetsizlik bağımsızlık için hızdan ödün verir. Çünkü herkes katılabilir ve doğrulayabilir, ağ tek bir saate veya tek bir karar verene güvenemez. Onaylar zaman alır çünkü bir işlemi yeniden yazmayı pahalı kılmak için ağın işi altında gömülmesini beklersiniz.
Güvenlik kolaylıktan maliyete ödün verir. Bitcoin saldırıları pahalı hale getirmek için gerçek dünya kaynakları (enerji ve donanım) harcar. Bunu bir savunma bütçesi gibi düşünün: güvenlik bedava gelmez.
Şeffaflık gizlilikten ödün verir ama denetlenebilirlik kazandırır. Açık bir defter yabancıların izinsiz olarak kuralları doğrulamasına izin verir ama aynı zamanda kalıpları ortaya çıkarır. Hafifletmeler mevcut ama kısmi ve genelde kullanıcı davranışına bağlıdır.
Kesinlik esneklikten ödün verir. Geri almalar tasarım gereği zorlaştırılmıştır çünkü onaylanmış geçmişin değiştirilmesinin maliyetli olduğu sözü verilir. Bu dolandırıcılık tersine çevirmeyi zorlaştırır ve dürüst hatalar da acı verici olabilir.
Karşılığında elde ettiğiniz somut şeyler:
Basit bir benzetme: nadir öğelerin takas edildiği bir çevrimiçi oyun hayal edin. Bilinmeyenler arasında takasların güvenilir olmasını istiyorsanız daha yavaş uzlaşma (bekleme süresi), devam eden maliyet (dolandırıcılık önleme kontrolleri veya stake) ve sahiplik için açık bir kayıt kabul edebilirsiniz. Ayrıca tersinmeleri nadir ve sıkı sınırlı yaparsınız çünkü kolay geri alma dolandırıcıları teşvik eder.
Kullanıcıların her zaman dürüst olduğunu varsayırsanız yanlış sistemi savunmakla kalırsınız. Bitcoin'in duruşu nettir: bazıları hile yapacak ve denemeye devam edecek.
Pratik yaklaşım aşağıdadır.
Çalınmaması, sahteleşmemesi veya yeniden yazılmaması gerekenleri açıkça belirtin: hesap bakiyeleri, denetim günlükleri, yönetici işlemleri, ödeme kararları veya paylaşılan bir kaydın bütünlüğü.
Sadece "hackerlar" ile yetinmeyin. İçeriden olanları, rakipleri, spamcıları ve sıkılan vandalları da dahil edin. Onların ne kazandığını yazın: para, nüfuz, veri, intikam veya sadece hizmeti kesintiye uğratma.
Eğer hile kârlıysa, olacaktır. Kötü yola maliyet ekleyin (ücretler, depozitolar, gecikmeli çekimler, sürtünme, daha sıkı izinler) ve normal kullanımı akıcı tutun. Amaç mükemmel güvenlik değil: çoğu saldırıyı kötü bir iş haline getirmek.
Önleme yeterli değil. Alarmlar ve frenler ekleyin: oran limitleri, zaman aşımı, denetimler ve net geri alma süreçleri. Bir kullanıcı aniden bir dakikada 500 yüksek değerli işlem tetikliyorsa durdurup ekstra kontroller isteyin. Dolandırıcılık atlasa ne olacağını planlayın.
Karmaşık kurallar saklanacak yerler yaratır. Kenar durumları deneyin: tekrarlar, ağ gecikmeleri, kısmi hatalar ve "bu mesaj iki kez gelirse ne olur?" gibi senaryolar. Bir kişi saldırgan rolü oynayıp kâr etmeye çalışsın; masaüstü provası yapın.
Küçük bir senaryo: yönlendirme-kredi sistemi kuruyorsunuz. Varlık "adil şekilde verilen krediler"dir. Saldırganlar sahte hesaplar yaratıp kredi hasat edebilir. Kötüye kullanım maliyetini yükseltebilirsiniz (kredilerin açılmasında gecikme, cihaz başına limitler, şüpheli desenler için daha güçlü kontroller), her hibe kaydını tutun ve bir dolandırıcılık dalgası olursa net bir geri alma yolu bırakın.
Küçük bir topluluk pazarı hayal edin. İnsanlar dahili kredilerle hizmet alıp satıyor ve itibar kime güvenileceğini seçmekte yardımcı oluyor. Gönüllü moderatörler var, ayrıca yeni kullanıcı getirenlere kredi veren bir yönlendirme programı var.
Önce aktörleri ve "kazanç"ın neye benzediğini adlandırın. Alıcılar düşük riskle iyi iş ister. Satıcılar istikrarlı siparişler ve hızlı ödemeler ister. Moderatörler daha az anlaşmazlık ister. Bir yönlendirme spamcısı ise en az çabayla kredi istiyor, yeni hesaplar sahte olsa bile.
Sonra dürüst davranışı kolay yol haline getirecek teşvikleri eşleştirin. Satıcılar yalnızca alıcı teslimatı onayladığında ödeme alıyorsa, alıcılar ödemeyi rehin tutabilir. Satıcı anında ödeme alırsa dolandırıcı parayı alıp kaybolabilir. Orta yol küçük bir satıcı depozitosu gerektirip ödemeyi aşamalı serbest bırakmak ve alıcı kısa bir pencere boyunca sessiz kalırsa otomatik serbest bırakma olabilir.
Tehditlerin gerçekleşeceğini varsayın: itibar artırmak için sahte yorumlar, teslimattan sonra "almadım" demeler, ödül hasadı için iş birliği ve yönlendirme kredilerini sömürmek için hesap fabrikasyonu.
Tepkiler sıkıcı ve net olmalı. Yüksek değerli listeler için depozito isteyin ve bunları işlem büyüklüğüyle ölçekleyin. Yönlendirme kredileri için bir bekleme süresi ekleyin ve sadece gerçek aktiviteyle açın (sadece kayıtla değil). Basit zaman kutularıyla bir uyuşmazlık akışı kullanın: alıcı X gün içinde şikayet eder, satıcı Y gün içinde cevap verir, sonra moderatör izin verilen küçük kanıt setine göre karar verir.
Şeffaflık yardımcı olur ama sistemi gözetim çölüne çevirmemelidir. Önemli olayların eklenebilir günlüklerini tutun: ilan oluşturuldu, escrow fonlandı, teslimat onaylandı, uyuşmazlık açıldı, uyuşmazlık çözüldü. Özel mesajları değil, sadece önemli eylemleri kaydedin. Bu geçmişi yeniden yazmayı zorlaştırır ve inceleme halkalarını tespit etmeyi kolaylaştırır.
Bitcoin tarzı ders: mükemmel güvene ihtiyacınız yok. Hileyi pahalı kılan, dürüst kullanımı basit yapan ve biri aktif olarak kırmaya çalışırken bile anlaşılabilir kalan kurallara ihtiyacınız var.
Ekipler genellikle görünür parçaları kopyalayıp Bitcoin mühendislik ödünlerinin özünü kaçırır. Sonuç, "kripto-simli" görünen ama biri kâr için suistimal etmeye kalkınca çöken bir sistem olur.
Bir tuzak token'ı kopyalayıp güvenlik bütçesini kopyalamamaktır. Bitcoin'in koruması ödenir: madenciler gerçek kaynak harcar ve sadece kurallara uyarlarsa ödül alır. Eğer projeniz bir token basıyor ama saldırıyı pahalı kılacak sürekli bir maliyet veya savunma için net bir ödül oluşturamıyorsa, güvenlik gösterişine sahip olursunuz.
Bir diğer hata insanların "topluluk odaklı" davranacağını varsaymaktır. Teşvikler duygulardan daha güçlüdür. Kullanıcılar hile yapmaktan daha çok kazanç sağlıyorsa biri hile yapacaktır.
Karmaşıklık sessiz katildir. Özel durumlar, admin müdahaleleri ve istisna yolları saldırganların saklanacağı yerler yaratır. Birçok sistem dramatik bir şekilde "hack"lenmez; dikkat edilmemiş bir kural etkileşimi yoluyla boşaltılır.
Operasyonel tehditler de göz ardı edilir. Bitcoin bir protokoldür ama gerçek sistemler ağlar, sunucular ve ekipler üzerinde çalışır. Spam maliyetleri yükseltebilir, kullanıcıların farklı "gerçeklikler" gördüğü kısmi arızalar ve kesintiler olabilir, içeriden risk (ele geçirilmiş yönetici hesapları), bağımlılık arızaları (bulut sağlayıcı, DNS, ödeme rayları) ve yavaş olay müdahalesi planlanmalıdır.
Kural değişimi başka bir tetikleyicidir. Kuralları sık değiştirirseniz her geçiş bir saldırı penceresi açar. Saldırganlar göç anlarını sever çünkü kullanıcılar kafası karışıktır, izleme kusurludur ve geri alma planları test edilmemiştir.
Basit bir örnek: puan ve lider tablosu olan bir ödül uygulaması düşünün. Puanlar botlar, kendi kendine yönlendirmeler, betiklenmiş girişler gibi kolay taklit edilebilecek eylemlerle kazanılıyorsa dolandırıcılık için pazar yarattınız demektir. Onu düzinelerce istisna ile düzeltmeye çalışmak genelde daha kötü yapar. Ucuz doğrulayabileceğiniz şeyleri seçmek, maruziyeti sınırlamak ve kuralları stabil tutmak daha iyidir.
Bitcoin mühendislik ödünlerinden ders almak istiyorsanız pratik tutun: neyi koruyacağınızı tanımlayın, birinin kırmaya çalışacağını varsayın ve en ucuz başarılı saldırının hâlâ çok pahalı veya çok gürültülü olduğundan emin olun.
Daha fazla kod yazmadan önce beş şeyi kontrol edin:
Sonra birkaç net soru sorun:
Desteklemeyeceğiniz şeyleri kararlaştırın. Kasıtlı olarak kapsamı küçük tutun. Anında çekimleri savunamıyorsanız gecikmeli çekimler yapın. Sahte yorumları engelleyemiyorsanız doğrulanmış satın almalar isteyin. Her özellik savunulması gereken başka bir yüzeydir.
Bir sayfaya sığacak iki sonraki adım:
Bir sayfalık tehdit modeli yazın: varlıklar, aktörler, güven varsayımları ve ilk beş saldırı.
Bir arkadaş veya ekip arkadaşıyla masaüstü saldırı incelemesi yapın. Bir kişi saldırgan rolünü oynasın, diğeri savunsun. Saldırganın ucuzça kazanabildiği bir yer bulduğunuzda durun.
Hızlı uygulama platformları üzerinde inşa ediyorsanız (örneğin Koder.ai (koder.ai)), saldırgan düşüncesini inşa döngüsünün bir parçası olarak ele almak yardımcı olur. Planlama modu kullanıcı akışlarını ve kenar durumları uygulamadan önce yazmanızı zorlayabilir; anlık görüntüler ve geri alma, ilk kurallarınız yetersiz kaldığında daha güvenli bir kurtarma yolu verir.
Yabancılar için tasarlayın, dostlar için değil. Birinin kurallarınızı suistimal ederek kârlı çıkmaya çalışacağını varsayın (spam, dolandırıcılık, iş birliği, hizmeti engelleme) ve dürüst yolu en ucuz ve en basit yol haline getirin.
Kullanışlı bir tetikleyici: “Eğer birine bu özelliği suistimal etmesi için para verirsem, ilk olarak ne yapar?”
Bir tehdit modeli kısa bir listedir:
Kısa ve somut tutun ki inşa sürecinde gerçekten kullanabilesiniz.
Açık sistemlerde kimlik ucuzdur: bir kişi binlerce hesap oluşturabilir. Etkinlik “kullanıcı sayısına” dayalıysa, saldırganlar sahte kullanıcılarla kazanabilirler.
Bitcoin etkisini proof-of-work ile bağlar: etkisi gerçek dünya maliyetiyle (enerji ve donanım) ilişkilendirilir. Ders şudur: gücü taklit edilmesi pahalı bir şeye dayandırın (maliyet, stake, zaman, doğrulanmış çaba, kıt kaynaklar).
Madenciler, diğer düğümlerin kabul ettiği blokları ürettiklerinde ödeme alır. Kuralları bozarlarsa düğümler bloğu reddeder ve madenci hiçbir şey kazanamaz.
Bu, teşvikleri hizalar: istikrarlı gelir elde etmenin en kolay yolu konsensüs kurallarına uymaktır, onlarla savaşmak değil.
Bir %51 saldırganı tipik olarak şunları yapabilir:
Yine de özel anahtarlar olmadan işlem imzalayamazlar veya havadan para yaratamazlar. Ders: bir saldırganın neyi değiştirebileceğini net tanımlayın ve tasarımınızı bu sınırlara göre yapın.
Her saldırı "kuralları kırmak" olmak zorunda değil; kimi zaman mağdurun gördüğünü veya yapabildiğini kontrol etmeye çalışırlar.
Yaygın örnekler:
Her özellik kenar durumlar yaratır ve kenar durumlar istismarların saklandığı yerlerdir (yeniden oynatma, yarış koşulları, tuhaf durum geçişleri).
Basit kurallar:
Zorunluysa karmaşıklığı sıkı limitlerle ve net sabitlerle kutulandırın.
Üç temel hamleyle başlayın:
Örnek: yönlendirme kredileri sadece kaydolmadan sonra gerçek aktiviteyle açılmalıdır; şüpheli desenler otomatik olarak ödülleri duraklatmalıdır.
Yaygın hatalar şunlardır:
İyi kural: bir kuralı net açıklayamıyorsanız, savunamazsınız.
Bunu bir disiplin aracı olarak kullanın, karmaşıklık eklemek için değil. Pratik bir iş akışı:
Ürün ekipleri için analoji: oran sınırlamaları, kötüye kullanım kısıtlamaları ve kısmi aksamalara göre tasarlama.
Amaç, biri aktif olarak kırmaya çalışırken bile öngörülebilir kalan bir ürün yapmaktır.