Miliki TEE bersama Polkadot

Integritee Indonesia
5 min readJan 7, 2022

Halo dari tim SubstraTEE di Supercomputing Systems AG! Dalam postingan ini kami ingin memperkenalkan konsep kunci komputasi off-chain yang tepercaya. Kami akan menunjukkan apa yang dapat Anda lakukan dengan alat kami, SubstraTEE, hari ini dan apa visi kami untuk aplikasi masa depan.

SubstraTEE adalah kerangka kerja atau biasa orang menyebutnya framework yang mengintegrasikan lingkungan eksekusi tepercaya atau trusted execution environments (TEEs) dengan blockchain yang dibuat oleh Substrate, dengan kata lain, rantai yang dibangun menggunakan native build tool Polkadot dan yang termudah untuk terhubung dengan jaringan Polkadot. SubstraTEE bertujuan untuk meningkatkan privasi, skalabilitas, dan interoperabilitas blockchain dengan memuat pembaruan status ke TEE.

Apa itu TEE?

Kami telah terbiasa dengan kenyataan bahwa kita harus mempercayai pihak administrator TI kami. Meskipun administrator ini dulunya adalah karyawan internal di perusahaan kami, saat ini kami sering bekerja di rented cloud platform.

Administrator ini dapat membaca dan memodifikasi semua data yang diproses pada mesin apa pun yang mereka kelola. Sayangnya, kemampuan ini tidak hanya meluas ke administrator terkenal yang kami percayai, tetapi juga peretas atau hacker yang dapat memperoleh hak administrator. Tidak ada perusahaan, tidak peduli seberapa berkualitasnya, yang kebal terhadap serangan semacam itu.

Masukkan TEEs.

Anda mungkin membayangkan TEE sebagai co-prosesor yang mengelola kunci kriptografinya sendiri dan hanya menjalankan program yang hash, atau sidik jarinya, sesuai dengan kode aslinya. Pabrikan prosesor menjamin, dengan desain perangkat keras mereka, bahwa tidak seorang pun memiliki akses ke kunci internal TEE atau dapat membaca memorinya. Selain itu, pabrikan dapat mengotentikasi setiap TEE dan memberikan pengesahan jarak jauh kepada pengguna untuk mengonfirmasi bahwa programnya yang tidak dirusak benar-benar berjalan pada TEE asli, bahkan jika mesin secara fisik terletak di pusat data di luar lokasi.

Singkatnya, TEE menjanjikan integritas dan kerahasiaan komputasi (jarak jauh). Namun, Anda harus waspada terhadap kemungkinan ancaman keamanan.

Dengan asumsi kami mempercayai integritas dan kompetensi desain pabrikan TEE, TEE memungkinkan kami untuk menjalankan pembaruan status apapun tanpa membagikan data kami dengan validator blockchain atau pengguna lain. Transfer token pribadi, kontrak pintar pribadi (private smart contract), dan private state channels menjadi mungkin dan relatif murah.

Mencapai Privasi di Blockchains

Blockchains pada dasarnya transparan. Mereka harus memastikan desentralisasi. Anda dapat memperoleh nama samaran dengan mudah, tetapi banyak kasus penggunaan memerlukan kerahasiaan. Perusahaan tidak ingin membocorkan rahasia dagang, dan mereka harus mematuhi undang-undang privasi data Eropa atau General Data Protection Regulation (GDPR). Yang terakhir berarti tidak ada data pribadi yang boleh menyentuh blockchain yang tidak memiliki izin. Memvalidasi integritas komputasi sementara tidak dapat membaca data yang diproses merupakan tantangan lain. Di sini TEE menawarkan solusi sempurna: integritas dan kerahasiaan komputasi.

TEE vs Zero-Knowledge Proofs

Zero Knowledge Proofs (ZKP) memungkinkan ZCash mencapai transfer token pribadi. Meskipun ZKP menjamin privasi tanpa memercayai produsen perangkat keras, ZKP hadir dengan komputasi yang berat dan ukuran transaksi yang besar. Selain itu, ZKP adalah bidang penelitian mutakhir dan memahaminya membutuhkan keahlian khusus.

TEE di sisi lain, telah memasuki arus utama dan memberikan kemudahan penggunaan yang wajar. Puritan mungkin mengeluh bahwa produsen hari ini tidak membagikan desain mereka kepada publik, sehingga menghindari tinjauan sejawat ilmiah. Keyston telah meluncurkan proyek TEE open-source yang dapat menghasilkan TEE yang diaudit dengan baik suatu hari nanti. Namun, kami masih perlu memercayai produsen ASIC Keystone, yang harus memberikan pengesahan jarak jauh.‍

Transaksi Pribadi dengan SubstraTEE

Supercomputing Systems telah bekerja keras untuk menyelesaikan bukti kerja konsep SubstraTEE produk mereka. Transaksi token pribadi menjadi inti dari kasus penggunaan pertama.

Mari kita telusuri contoh bagaimana transaksi token pribadi akan bekerja. Alice ingin mentransfer 100 token ke Bob tanpa diketahui siapa pun kecuali Bob tentang detail transfer ini. Dia membuat transaksi SubstraTEE terlindung:

let call = TrustedCall::balance_transfer(alice_incognito.public(), bob_incognito.public(), 100);

Alice mengenkripsi panggilan ini dengan kunci pelindung pekerja SubstraTEE dan dikirim ke modul runtime SubstraTeeRegistry sebagai ekstrinsik Substrate normal. Karena payload dienkripsi, tidak seorang pun kecuali TEE pekerja SubstraTEE yang dapat mendekripsi dan melihat detail panggilan ini. SubstraTeeRegistry bertindak sebagai proxy dan mengirimkan peristiwa termasuk muatan buram.‍

Pekerja SubstraTEE mendengarkan event pemanggilan tersebut dan meneruskan payload ke TEE-nya. TEE kemudian mendekripsi payload dan mengambil panggilan asli, yang diproses oleh fungsi transisi status atau state transition function (STF). Untuk demo ini, STF adalah kode yang persis sama dengan modul runtime saldo Substrat.

STF beroperasi pada status off-chain terenkripsi dan melakukan pembaruan status. Dalam hal ini, ia mentransfer 100 token dari akun alice_incognito ke bob_incognito. Status yang dihasilkan dienkripsi dan disimpan dalam IPFS. Pekerja kemudian mengirimkan konfirmasi ekstrinsik ke rantai, termasuk hash panggilan dan hash status yang diperbarui.

Alice sekarang dapat meyakinkan Bob bahwa transfer itu terjadi dengan mengiriminya panggilan mentah melalui saluran komunikasi pribadi apa pun. Bob sekarang dapat memindai konfirmasi on-chain untuk hash panggilan itu. Bob juga dapat melihat saldo terbarunya dengan menanyakan pekerja secara langsung melalui antarmuka websocket.

Anda dapat menonton demo SubstraTEE langsung ini di YouTube.

Pengesahan Jarak Jauh

Bagaimana Alice dan Bob dapat yakin bahwa SubstraTEE-worker memang menjalankan kode yang diharapkan pada TEE asli?

Pengesahan jarak jauh adalah proses meminta produsen TEE untuk mengotentikasi TEE dan menandatangani laporan yang mengonfirmasi keaslian TEE serta hash biner yang dijalankan TEE. Laporan semacam itu juga menyertakan kunci penandatanganan publik TEE, sehingga kami dapat yakin bahwa kami benar-benar berbicara dengan TEE yang tepat dengan memverifikasi tanda tangannya.

SubstraTEE menyederhanakan proses ini untuk penggunanya dengan menyimpan pengesahan jarak jauh secara on-chain di SubstraTeeRegistry. Dengan cara ini kami menghindari kebutuhan pengguna untuk mendaftar ke layanan pengesahan produsen.

Redudansi

Apa yang terjadi jika pekerja SubstraTEE offline? Jika hanya ada satu pekerja, seluruh negara bagian mungkin akan tersesat selamanya. Untuk mencapai redundansi, kita membutuhkan beberapa pekerja untuk beroperasi pada keadaan yang sama. Mereka semua perlu mengetahui kunci enkripsi negara.

Kami merancang SubstraTEE menjadi tanpa izin dan memungkinkan siapa pun untuk bergabung dengan kumpulan pekerja dengan secara teratur memasok pengesahan jarak jauh ke SubstraTeeRegistry kami. Seorang pekerja yang baru bergabung akan meminta pekerja yang sudah mapan sebagai kunci. Kedua pekerja akan melakukan pengesahan jarak jauh bersama dan kunci akan disediakan. Pekerja baru akan mengambil status terbaru dari IPFS dan segera mulai memproses permintaan secara paralel ke semua pekerja lainnya. Sekarang kita bisa membunuh semua kecuali satu pekerja dan jaringan tetap hidup dan reaktif.‍

Pandangan

Kami telah menunjukkan bagaimana SubstraTEE meningkatkan privasi. Berikutnya adalah akses tanpa kepercayaan ke status rantai. Kami sedang bekerja untuk menyediakan komputasi pribadi generik dengan ink! contract dan membangun chain bridges.

Segera kami mungkin menerapkan pemanggilan langsung, meningkatkan skalabilitas. Sementara solusi kami saat ini membutuhkan 1+N transaksi on-chain per permintaan (N adalah jumlah pekerja), pemanggilan langsung berarti bahwa permintaan langsung dikirim ke pekerja dan dikonfirmasi di chain dalam batch, memungkinkan 1000-an permintaan per detik. Permintaan langsung datang dengan manfaat lain terkait GDPR: hak untuk menghapus. Karena tidak ada data pribadi yang pernah menyentuh blockchain, hak untuk menghapus dapat diimplementasikan sebagai fungsi STF.

Pekerjaan ini telah didukung oleh beberapa hibah dari Yayasan Web3 dan Perbendaharaan Polkadot.

Artikel ini pertama kali diterbitkan pada Polkadot pada 3 Desember 2019.

Artikel ini diterjemahkan oleh Miki Keyy

--

--

Integritee Indonesia
Integritee Indonesia

Written by Integritee Indonesia

Solusi blockchain publik yang dapat diskalakan untuk memproses data bisnis dan pribadi yang sensitif dengan aman.

No responses yet