Trusted Execution Environment ve Blockchaindeki Kullanım Alanları

0xDogan.eth
6 min readJun 7, 2023

Selamlar herkese, bu ara https://decentralizedthoughts.github.io/ sitesindeki notları okuyor ve anlamaya çalışıyorum. Anladıklarımı sizlere bir yazıyla anlatmamın benim öğrenme sürecime ve bir tık ağır dille yazılmış olan bu siteyi basitleştirmenin sizin öğrenme sürecinize katkısı olacağını düşündüğümden bu yazı serisine başlama kararı aldım. Keyifli okumalar!

Trusted Execution Environment nedir?

TEE için çeşitli teknik tanımlar bulunuyor, teknik tanıma girmeden basit bir şekilde anlatacak olursam; TEE cihazın diğer parçalarından tamamen izole, “sadece” programlandığı şekilde hesaplama (computation) yapan, dışarıdan müdahale edilememesi için dizayn edilmiş, bir kapalı kutudur. Bu kapalı kutu girdileri alır, programladığı şekilde hesaplamayı yapar, çıktısını kullanıcıya verir. Bu kapalı kutunun dışarıdan müdahalelere kapalı olacak şekilde dizayn edilmeye çalışılmasının sebebi, insana duyulan güvenin minimize edilmeye çalışılmasıdır.

(Görsel credit: Investopedia)

TEE öyle çok uzak gelmesin sizlere; TEE telefonlarımızda, bilgisayarlarımızda ve hatta en son sürüm televizyonlarda dahi bulunan bir sistemdir. Çoğunlukla cihazın işletim sisteminden bağımsız, sadece hassas verileri korumak için programlanmış bir hesaplama ortamıdır. Hesaplarınıza ait şifreler, biyometrik verileriniz, kriptografik operasyonlar ve daha fazlası TEE’de yapılıyor. Bunun sebebi paylaşılmış depolamada bulunabilecek kötü niyetli uygulamardan bu verileri koruyabilmektir.

Tabii konu güven olunca blok zincire değinmemek olmaz, zaten asıl konumuz da bu. Blok zincirler güvenin dağıtıldığı, minimize edildiği sistemlerken, TEE insana duyulan güveni minimize etmek için geliştirilen sistemlerdir. Haliyle aralarındaki sinerjiyi fark etmek zor değil. Yaklaşık 3 yıl önce başlayan TEE’nin blok zincirdeki kullanımı, son zamanlarda artarak devam ediyor. Bu yazımızda https://decentralizedthoughts.github.io/2023-04-09-blockchainsplustees-day1-summary/ ve https://decentralizedthoughts.github.io/2023-04-17-blockchainsplustees-day2-summary/ yazılarını basitçe anlatacak ve ilerdeki potansiyel kullanım alanlarını anlatıp TEE’yi ZK proof ve Fraud Proof teknolojileriyle karşılaştıracağız.

TEE’nin Blok Zincirdeki Kullanım Alanları:

TEE;

  • Güvenli ve doğrulanabilir (verifiable) hesaplama (Computational Integrity)
  • Veriyi ifşalamadan güvenli hesaplama yapma (Privacy)
  • Sistemden izole şekilde hassas verileri koruma, ECC operasyonlarını yürütme özelliklerine sahiptir.

Bu özellikler; Avalanche Bridge, Oasis, Secret Network, Flashbots (SUAVE), Clave (Opclave), Konsensus sistemleri ve daha birçok blockchain alanında karşımıza çıkmakta.

1) Gizlilik ve TEE:

Elinizde bir veri olduğunu ve bunu birine güvenmeden hesaplamak istediğinizi düşünelim, bunu ZK proof yada MPC yardımıyla gerçekleştirebileceğiniz gibi TEE de size bu konuda yardımcı olabilir.

A) Kullanıcı, şifrelenmiş veriyi TEE’yi çalıştıran operatöre iletir.

B) Bu operatör veri şifrelenmiş olduğundan veriyi göremez, verinin şifresini çözebilecek anahtar TEE’nin içinde bulunur.

C) Bu veri TEE tarafından çözülür, hesaplama yapılır ve şifrelenmiş çıktı kullanıcıya iletilir.

D) Bu şifrelenmiş çıktının anahtarı da sadece kullanıcıda olduğundan insana güven faktörü araya girmeden bir başka ortamda “gizli bir şekilde” hesaplama yapmak mümkün oluyor.

Burada güven, makinenin bir backdoor’a sahip olmadığı ve açığı olmadığıdır. (ileride daha detaylı tartışacağız)

Görsel credit: Intel Cop.

TEE’nin sağladığı gizlilik, kriptoda çok önemli bir problemi çözmek için kullanılabilir: Private computation.

Ethereum ve birçok açık blok zincirinde işlemlerin bir geçerlilik kuralı vardır. Örneğin Ethereumdaki bir işlemin geçerli olabilmesi için kontrol edilen parametreler aşağıdaki gibidir:

Görsel credit: ben 💁 (henüz yayınlanmamış olan raporumdan)

Bizler verileri tamamen gizli yaptığımızda bu geçerlilik kuralları da gizli olacağından bir kullanıcının gerçekten ödeme yapıp yapamayacağını , bu ödemenin o kullanıcıdan geldiğini ve işlemde çağrılan kontrata ait verileri bilemiyoruz. Bu da Dos atağına sebep verdiğinden gizlilik tabanlı protokoller çeşitli hesaplama metodlarına ihtiyaç duyuyor.

(Not: Türkçe’ye nasıl çevirmeliyim emin olamıyorum, Computational Integrity gibi kavramlarda direkt aklımda canlanan kelimeyi yazıyorum. Asıl kaynağından okumak her zaman daha iyi.)

Oasis ve Secret Intel’in SGX’ini blok zincirde gizli bir şekilde hesaplama yapmak için kullanıyor. Detaylarına girmeyeceğim, detaylar zaten sitede çok güzel anlatılmış.

Görsel credit: Intel Cop.

2) Computational Integrity ve TEE:

Integrity, İngilizcede doğru şeyi yapmak anlamına gelen bir kelimedir. Computational Integrity ise hesaplamanın doğrulanacağını bilerek, doğru hesaplamayı yapmayı ifade etmek için kullanılır. Yani bir hesaplama yapıldığında eğer bunun doğru olduğunu doğrulayabiliyorsan yada doğru olarak hesaplanacağına eminsen o zaman computational integrity’e sahipsin diyebiliriz.

Konu karmaşık hale geliyor farkındayım, teknikten uzak şekilde açıklayacak olursam TEE ile ifade ettiğimiz computational integrity, bir bilgisayar programının hesaplaması süresinde programladığımız şekilde çalışacağına (Dışarıdan müdahale edilemeyeceğine) olan kabulumuzu ifade eder.

Fotoğraf credit: https://www.youtube.com/watch?v=3_LkKX7hBBk&t=991s

TEE’yi computational integrity için kullanan başlıca projeler SUAVE ve Avalanche Bridge’dir. Avalanche Bridge’e girmeyeceğim çünkü beni heyecanlandırmıyor ve yanlış kabulleri bulunuyor. Beni asıl heyecanlandıran iş ise SUAVE:

SUAVE için bilginiz yoksa, yazmış olduğum threadı buraya bırakayım:

SUAVE; kötü MEV’i elemine edip “iyi” MEV’i öne çıkarmaya çalışan, tüm işlemlerin sıralanması ve blok üretimi mekanizmalarını merkeziyetsiz hale getirmeyi amaçlayan bir zincirdir. Bu noktada blok üretimini merkeziyetsizleştiren bir blok zincirinin “blok üretiminin” tekrar MEV’den dolayı merkezi olmasını önleyebilmek (Anladığım kadarıyla bu ama detaylı onaylara ihtiyacım var) ve buradaki güven varsayımlarını minimize etmek için TEE (Intel SGX) kullanmak tercih edilmiş. Ayrıca Flashbots takımının MPC’yi de burada kullanmak için araştırıldığını belirtmiş.

Görsel Credit: Flashbots Team.

2) Eliptic Curve Cryptography ve TEE:

Blok zincirde sahipliğin ispatı için entropiye dayanan bir dizi matematiksel algoritmalara güvenilir. Bu algoritmalar, 12 kelimeyi ezberimizde tutma zorunluluğumuzun asıl sebebidir. Bu 12 kelimeyi (Seed Phrases) paylaşılmış depolama alanında tuttuğumuzda birçok atak yöntemiyle 12 kelimemiz çalınabiliyor. Burada key management için dizayn edilmiş bir TEE bizim seed phrase hatırlamamızı zorunluluk olmaktan çıkarabilir ve kullanıcıların sahipliğini sadece ellerindeki cihazlarıyla ispatlamasını sağlayabilir.

Benim de parçası olduğum Clave cüzdanı TEE’yi key management için kullanan projelerden biri. Apple cihazlarında ve bazı android cihazlarda bulunan Secure Enclave, kullanıcının hassas verilerini koruması için dizayn edilmiş sadece biyometrik verileriyle erişilebilir bir TEE’dir. Bu TEE’de çeşitli fonksiyonları gerçekleştirebildiğiniz gibi, Eliptik Eğri Kriptografi fonksiyonlarını da gerçekleştirebiliyorsunuz.

Yani sadece yüzünüz veya parmak izinizle ulaşabildiğiniz “sahipliğinizin” ispatı olan bir TEE zaten telefonlarınızda bulunuyor! Bunu blok zincirde sahipliği ispatlamak için kullanmak, kriptodaki self custody’i çok ileri aşamaya taşıyacaktır. Bu bakış açısı blok zincire, kripto varlıklarınıza erişebilmenizin sadece biyometrik verilerinize bağlı olduğu tamamen yeni bir “sahiplik” ispatı yöntemi getiriyor.

TEE Riskleri, Nerede Kullanılmamalı:

Şu ana kadar üretilmiş TEE’lerin çoğu kapalı kaynak kodlu. Yani bu demek oluyor ki üreticinin bir backdoor bırakmadığına “güvenmek zorundasınız”. Eğer merkeziyetsiz bir sistemde ,örneğin konsensus algoritmasını geliştirmek için, herkesin erişebileceği şekilde konumlandırmak istiyorsanız TEE riskli bir seçenek olabilir. Özellikle Intel SGX tarihi boyunca defalarca açıkları bulunan ve güvenmek için iyi düşünülmesi gereken bir TEE. Örneğin geçtiğimiz günlerde Secret Network’te kullanılan SGX’te bulunan bir açık, gizli olan tüm işlemleri açığa çıkarabilen bir atağı mümkün kılıyordu.

Avalanche Bridge’inin trustless (herhangi bir ek güvenlik varsayımı olmaması) olarak adlandırılmasını eleştirme sebebim de buydu. Orada çok net bir güvenlik varsayımı var: Intel SGX’indeki açık ve operatörlerin kötü niyetli davranışa kalkışması aynı anda yaşanmayacak.

Her neyse, bu yazıyı yazmamdaki asıl sebep Türkiye’de TEE’yi bilmediklerinden garip garip yorum yapan insanların bilgilenmesi ve bu konuda Türkçe bir kaynak bırakmak istememdi. Sanırsam bunu da yapmış oldum, aşağıda bu yazıyı yazarken kullandığım materyalleri bırakıyorum, detaylı okumanız için öneririm.

Kaynaklar:

--

--

0xDogan.eth

Blokzincir ve kripto paralar hakkındaki yazılarımı burada paylaşıyorum.