iExec nesen atklāja jaunus izstrādātāju rīkus, lai risinātu "privātumu uzlabojošā mārketinga" lietošanas gadījumu. Šie rīki ir iExec DataProtector un iExec Web3Mail. Šo izstrādātāju rīku, kas pastāv kā vienkārši lietojamas npm koda paketes, mērķis ir mainīt veidu, kā DApps apstrādā datu privātumu un saziņu. Šajā rakstā tiks apskatītas DataProtector un Web3Mail tehniskās funkcijas.

iExec DataProtector

iExec DataProtector ir rīks, kas paredzēts lietotāju datu aizsardzībai, izmantojot šifrēšanas mehānismu un pārvaldot piekļuves tiesības, izmantojot viedos līgumus. Datu īpašnieki var piešķirt lietojumprogrammām atļauju, ļaujot tām izmantot datus, faktiski neatklājot datus.

Šis rīks ir efektīvs risinājums datu apstrādei; tas apvieno un vienkāršo iExec datu kopas funkcijas, piemēram, datu šifrēšanu un piekļuves tiesību pārvaldību. Turklāt DataProtector atvieglo visu aizsargāto datu izgūšanu, kas saistīti ar konkrētu īpašnieku vai konkrētu datu shēmu (skatiet tālāk datu shēmas piemēru). Tas arī nodrošina lietotājam iespēju atsaukt vienu vai visas piekļuves tiesības datiem. Citiem vārdiem sakot, datu īpašniekiem ir iespēja dinamiski pārvaldīt un kontrolēt piekļuves atļaujas, kas nodrošina stabilu viņu datu drošību un privātumu, izmantojot lietotājam draudzīgu rīku.

iExec ekosistēmā datu kopa ir neaizvietojams marķieris (NFT), ko izmanto kā konfidenciālu datu pārvaldības mehānismu. Vietnē iExec Marketplace datu kopu nodrošinātāji izveido un paraksta “datu glabātājus”, kas norāda datu kopas pārvaldību, piemēram, kuru Dapp var izmantot datu kopu. Programmā DataProtector datu īpašnieki definē augstāka līmeņa piekļuves noteikumus, kas tiek automātiski pārtulkoti datu krātuvēs.

DataProtector var viegli integrēt jebkurā programmatūras projektā (ātrais starts), lai aizsargātie dati būtu nemanāmi pieejami autorizētām konfidenciālās skaitļošanas lietojumprogrammām.

DataProtector paļaujas uz:

1/ DataProtector viedais līgums, kas mijiedarbojas ar DatasetRegistry viedo līgumu, lai izveidotu datu kopu;

2/ DataProtector apakšgrafiks, ārpus ķēdes serveris, kas nepārtraukti novēro notikumus blokķēdē un pēc tam saglabā, indeksē un izgūst datus, ko aizsargā DataProtector, un izmanto šādus iExec protokola komponentus:

  • DatasetRegistry viedais līgums, lai izveidotu/izveidotu atbilstošu datu kopu, kas saistīta ar aizsargātajiem datiem

  • PoCo viedais līgums, lai pārvaldītu piekļuves tiesības

  • iExec Marketplace, lai kopīgotu pasūtījumus

  • Secret Management Service (SMS), lai saglabātu lietotāju noslēpumus

Sešas DataProtector funkcijas

1/ ProtectData šifrē lietotāju datus un reģistrē īpašumtiesības viedā līgumā.

Lai aizsargātu savus datus, lietotājs izsauc ProtectData funkciju, sniedzot datu datus kā ievadi. Pēc izvēles lietotājs var norādīt arī datu nosaukumu, kas būs publiska informācija un paliks nešifrēti. Ja vārds nav norādīts, tas tiek piešķirts kā “Bez nosaukuma”.

Šeit ir datu objekta piemērs:

dati:
{
e-pasts: "example@gmail.com",
SMTP serveris: {
ports: 5000,
smtp_server: 'smtp.gmail.com'
}
}

Šajā piemērā datu objekts sastāv no divām atslēgām: e-pasta un SMTPservera. E-pasta vērtība ir example@gmail.com. SMTPserver vērtība ietver divus citus atslēgu/vērtību pārus: ports ar vērtību 5000 un smtp_server ar vērtību smtp.gmail.com.

Pēc tam funkcija ProtectData izpilda šādas darbības:

  1. Izņemiet datu shēmu, t.i., katras vērtības atšķirīgo atslēgu un veidu. Šeit ir iepriekšējā datu piemēra atbilstošā datu shēma:

datu shēma:
{
"e-pasts": "virkne",
"SMTP serveris": {
"port": "int",
"smtp_server": "virkne"
}
}

2. Izveidojiet datu arhīvu, kas tiek uzskatīts par mapi. Šajā mapē katrai atslēgai tiek izveidots fails. Katra faila veids atbilst atbilstošās atslēgas tipam, un fails satur atbilstošo datos norādīto vērtību. Ir iespējams iegūt apakšdatus, kas atbilst atslēgas apakšatslēgas/vērtības pāriem. Šī atslēga tiek izveidota kā mape, kurā tiek izveidots fails katram apakšatslēgas/vērtības pārim. Globālā mape ir saspiesta arhīvā.

Šeit ir atbilstošs iepriekšējā datu piemēra arhīvs:

Piemērs: iekļaujamā labā daļa

Šī koka struktūra ļauj aizsargāt jebkura veida datus, piemēram, failus, tekstu, attēlus un citus. Turklāt iegūto arhīvu var viegli augšupielādēt jebkurā uzglabāšanas platformā, atvieglojot datu uzglabāšanas un izguves procesus.

3. Ģenerējiet šifrēšanas atslēgu un šifrējiet arhīvu. Šajā šifrēšanā tiek izmantota AES-256-CBC standarta šifrēšanas shēma. Pēc tam šifrētais arhīvs tiek ievietots IPFS publiskajā krātuvē.

4. Nosūtiet DataProtector viedajam līgumam datu shēmu kopā ar klasisko datu kopu izveides argumentiem:

  • DataProtector viedais līgums izsauc DatasetRegistry viedo līgumu, lai izveidotu atbilstošo datu kopu un pārraidītu datu shēmu blokķēdes notikumā.

  • DataProtector apakšgrafs novēro šo notikumu un indeksē aizsargātos datus.

5. Nospiediet šifrēšanas slepeno atslēgu uz SMS.

6. Atgrieziet lietotājam aizsargāto datu un metadatu vērtības.

2/ grantAccess, kas atļauj lietojumprogrammai izmantot lietotāju datus, neatklājot pašus datus.

grantAccess diagram iExec

Datu īpašnieks izmanto grantAccess funkciju, lai autorizētu lietojumprogrammu un pieprasītāju piekļūt saviem aizsargātajiem datiem. Šī funkcija izmanto kā ievades ProtectData, authorisedApp un authorisedUser, kas ir attiecīgi aizsargāto datu, lietojumprogrammas un lietotāja adreses. Pēc tam funkcija grantAccess izpilda šādas darbības:

  1. Izveidojiet datu kopu, lai iestatītu pārvaldības noteikumus, t.i., autorizētās lietojumprogrammas un autorizētā lietotāja piekļuves tiesības, ko parakstījis datu kopas īpašnieks.

  2. Publicējiet datu kopas krātuvi vietnē iExec Marketplace.

  3. Atgriezt lietotājam datu kopas krātuvi.

3/ revokeAllAccessObservable, kas atsauc visām lietojumprogrammām piekļuvi konkrētiem aizsargātiem datiem.

Funkciju revokeAllAccessObservable izsauc datu īpašnieks ar ProtectData vērtību un pēc izvēles AuthorApp filtru un/vai AuthorUser filtru. Pēc tam funkcija revokeAllAccessObservable izpilda šādas darbības:

  1. Pieprasīt datu kopu glabātājus tirgum un, ja tas ir nodrošināts, atbilst filtriem.

  2. Katram datu kopas krātuvei tas atsauc datu kopas krātuvi, izsaucot PoCo viedo līgumu, kas izdod šīs atsaukšanas notikumu. Marketplace API novēro šo notikumu un notīra atbilstošo pasūtījumu.

  3. Katrai atsauktajai piekļuvei tas atgriež datu kopas krātuvi un īpašnieka parakstītu darījumu, kas atsauc šo piekļuvi.

4/ revokeOneAccess, kas atsauc lietojumprogrammas piekļuvi noteiktai aizsargātai datu kopai.

Funkcija revokeOneAccess ir līdzīga funkcijai revokeAllAccessObservable, izņemot to, ka atsaukšana ir paredzēta vienai piekļuvei. Datu īpašnieks izsauc revokeOneAccess kā ievadi, lai sāktu šīs piekļuves atsaukšanu. Piekļuves piešķirto vērtību var iegūt no funkcijas fetchGrantedAccess. Pēc tam revokeOneAccess izpilda šādas darbības:

  1. Pieprasiet PoCo viedā līguma atbilstošā datu kopu iestatītāja atsaukšanu, kas izdod šīs atsaukšanas notikumu. Marketplace API novēro šo notikumu un notīra atbilstošo pasūtījumu.

  2. Atgrieziet datu kopu un īpašnieka parakstītu darījumu, kas atsauc piekļuvi.

5/ fetchProtectedData, kas izgūst šifrētus datus, ko aizsargā DataProtector.

Lietotājs izsauc funkciju fetchProtectedData ar neobligātu īpašnieka filtru (lai iegūtu tikai konkrēta lietotāja šifrētus datus) un/vai datu shēmas filtru (lai izgūtu šifrētos datus ar noteiktu shēmu). Pēc tam funkcija fetchProtectedData apstrādā šādas darbības:

  1. Vaicājiet aizsargātos datus DataProtector apakšgrafikā, pēc izvēles saskaņojot filtrus.

  2. Atgriezt lietotājam pieprasīto aizsargāto datu masīvu, t.i., katra aizsargātā datu nosaukumu, adresi, īpašnieku un shēmu, pēc izvēles atbilstot filtriem.

6/ fetchGrantedAccess, kas nodrošina to piekļuves sarakstu, kas piešķirtas konkrētiem aizsargātiem datiem.

Funkcijai fetchGrantedAccess ir līdzīgs mehānisms kā funkcijai fetchProtectedData, izņemot to, ka pieprasījums attiecas uz piešķirtajām piekļuves tiesībām konkrētiem aizsargātiem datiem. Šis pieprasījums darbojas šādi:

  1. Lietotājs izsauc fetchGrantedAccess, ievadot ProtectData. Pēc izvēles lietotājs var pieprasīt tikai autorizētās lietojumprogrammas un/vai autorizēto pieprasītāju, attiecīgi norādot AuthorApp un AuthorizedUser filtrus.

  2. fetchGrantedAccess vaicā datu kopas krātuvi, kas atbilst filtriem ar Marketplace API, un atgriež visu piešķirto piekļuvi masīvu.

Lietošanas gadījuma piemērs: Web3Mail

Izmantojot DataProtector, Web3Mail ir rīks izstrādātājiem, lai izveidotu lietojumprogrammas, kas ļauj nosūtīt e-pastu Ethereum kontu īpašniekiem, nezinot viņu e-pasta adresi. Izmantojot šo rīku, galalietotāji var novērst prasību koplietot savu e-pasta adresi ar vairākām trešajām pusēm, tādējādi ievērojami samazinot riskus, kas saistīti ar datu pārkāpumiem un surogātpastu.

Web3Mail paļaujas uz DataProtector, lai aizsargātu e-pasta adreses un mijiedarbotos ar iExec protokolu, sendEmail DApp un mailjet pakalpojumu, lai nosūtītu e-pastus.

Vietnē iExec Marketplace lietojumprogrammu nodrošinātāji izveido un paraksta “apporderus”, kas norāda lietojumprogrammas pārvaldību, piemēram, maksa par katru DApp izpildi. Pakalpojumā Web3Mail sendEmail DApp jau ir izvietots, un atbilstošais apordinators ir parakstīts un publicēts iExec Marketplace. SendEmail DApp uztver e-pasta tēmu un saturu kā pieprasītāja noslēpumus un nosūta e-pastu uz aizsargāto e-pasta adresi.

Protokolā iExec pieprasītāja noslēpumi ir parametri, kas pakļauti tikai autorizētām lietojumprogrammām anklāvos un nekad tos neatstāj. Pakalpojumā Web3Mail tikai sendEmail DApp var piekļūt e-pasta tēmai un saturam.

Pirmkārt, Ethereum kontu īpašnieki izmanto DataProtector, lai aizsargātu savas e-pasta adreses un piešķirtu atļauju citiem lietotājiem sūtīt viņiem e-pastus. Ethereum konta īpašnieks var norādīt iepriekš noteiktu ierobežojumu, lai piekļūtu savam aizsargātajam e-pastam. Kad šis ierobežojums ir sasniegts, konta īpašniekam ir jāizsauc DataProtector funkcija grantAccess, lai piešķirtu atļauju turpmāku e-pasta ziņojumu sūtīšanai.

Katram aizsargātajam e-pastam ir izveidota datu kopa un atbilstošā datu kopu krātuve ir parakstīta un publicēta iExec Marketplace un indeksēta ar grafiku.

Web3Mail sastāv no divām funkcijām:

  • fetchMyContacts, kas atgriež sarakstu ar Ethereum kontiem, kuru īpašnieki ir pilnvarojuši tiem nosūtīt e-pasta ziņojumu. Lietotājs izsauc funkciju fetchMyContacts, kas veic šādas darbības:

  1. Nosūtiet pieprasījumu Marketplace API, lai atgūtu to datu kopu sarakstu, kuru īpašnieki ir piešķīruši lietotājam atļauju piekļūt savai aizsargātajai datu kopai un izmantot to.

  2. Pieprasiet diagrammai atbilstošās aizsargātās datu kopas.

  3. Pārbaudiet, vai katrā datu kopā ir e-pasta lauks, pārliecinoties, ka katras aizsargātās datu kopas shēma sakrīt ar “email:string”.

  4. Atgriezt lietotājam derīgo kontaktpersonu sarakstu, tostarp aizsargāto datu kopu un īpašnieku adreses.

  • sendEmail, kas nosūta e-pasta ziņojumu lietotājam, zinot tikai Ethereum kontu

Lietotājs izsauc sendEmail funkciju, lai nosūtītu e-pastu pilnvarotam Ethereum konta īpašniekam, kuru var izgūt, izmantojot funkciju fetchMyContacts. Lietotājs norāda e-pasta tēmu emailSubject, e-pasta saturu emailContent un aizsargāto e-pasta adresi protectedData.

Funkcija sendEmail izveido un paraksta rīkojumu ar nosaukumu “pieprasītājs”, lai pieprasītu sendEmail DApp izpildi. Tāpēc šīs funkcijas process ir līdzīgs uzdevuma pieprasījuma izveidei iExec protokolā.

iExec ekosistēmā uzdevums ir gadījums, kad ir nepieciešama skaitļošanas jauda. Uzdevums ir darījuma izpilde starp datu krātuvi, sastādītāju, pieprasītāju un darbinieku grupas pasūtījumu, norādot, kuri darbinieki ir pieejami kādai uzdevumu kategorijai. Programmā Web3Mail uzdevums ir sendEmail DApp izpilde ar aizsargāto e-pastu kā datu kopu, e-pasta tēmu un e-pasta saturu kā pieprasītāja noslēpumus.

sendEmail apstrādā šādas darbības:

  1. Pieprasiet SMS, lai pārbaudītu krātuves marķiera esamību. Šis marķieris tiek izmantots kā autentifikācijas marķieris, lai darbinieks augšupielādētu uzdevuma rezultātu. Tas nodrošina, ka tikai pilnvarotais darbinieks var iesniegt uzdevuma rezultātu.

  2. Pieprasiet atbilstošo aizsargāto datu kopu diagrammai un pārbaudiet, vai katrā datu kopā ir e-pasta lauks.

  3. Pieprasījums Marketplace API: aizsargātā e-pasta datu kopa ar aizsargāto datu adresi, sendEmail DApp norādītājs, darbinieku kopas pasūtījums

  4. Nosūtiet emailSubject un emailContent kā pieprasītāja noslēpumus (sīkāku informāciju skatiet iExec tehniskajā dokumentācijā).

  5. Izveidojiet un parakstiet pieprasījuma pasūtījumu, lai pieprasītu sendEmail DApp izpildi ar e-pasta subjektu un emailContent kā pieprasītāja noslēpumiem. Pieprasījuma pasūtījumā lietotājs var norādīt cenu, kādu viņš ir gatavs maksāt par uzdevuma izpildi.

  6. Paziņojiet PoCo viedajam līgumam, ka pastāv pasūtījumu atbilstība starp piegādātāju, datu kopu, darbinieku kopas pasūtījumu un pieprasītāja pasūtījumu. Pēc tam PoCo viedais līgums: pārbauda un apstiprina atbilstību, izdod pasūtījumu atbilstību un paziņojumu darbinieku grupas plānotājam, atdod darījumu

  7. Pieprasījums aprēķināt atbilstošo darījuma uzdevumu PoCo viedajam līgumam. Plānotājs, kas jau ir noskatījis pasūtījumu atbilstību un paziņojumu no PoCo viedā līguma, uzsāk uzdevumu, kas aktivizē sendEmail DApp izpildi.

  8. Atgrieziet uzdevumu lietotājam.

Šo rīku ierobežojumi

DataProtector un tā Web3Mail izmanto iExec izstrādāto konfidenciālo skaitļošanu (CC). iExec CC izmantotā SMS ir centralizēta sastāvdaļa, kurā lietotāji nosūta savus noslēpumus, piem. slepenā atslēga datu šifrēšanai. Kad tiek saņemts noslēpums, SMS izveido drošu sesiju CAS (konfigurācijas un atestācijas pakalpojuma) ietvaros, nospiež noslēpumu un piešķir lietojumprogrammai, kas saistīta ar pieprasītāju, tai piekļūt. Tomēr, ņemot vērā SMS centralizēto raksturu, pastāv viens iespējamais kļūmes punkts. Ja CAS vai SMS tiek atjaunināts vai tā nedarbojas, pastāv risks pazaudēt saglabātos noslēpumus. Lai risinātu šīs problēmas, iExec aktīvi strādā pie SMS decentralizācijas, tādējādi mazinot iepriekš minēto problēmu un uzlabojot vispārējo sistēmas noturību.

Ir svarīgi atzīmēt, ka Web3Mail izmanto Mailjet pakalpojumus, izmantojot starpposma e-pasta adresi, lai atvieglotu e-pasta sūtīšanu. Uzticības līmenis Web3Mail ir tieši saistīts ar uzticību gan pakalpojumam mailjet, gan iExec, kas to pārvalda, un tam ir iespēja piekļūt e-pasta adresēm un e-pasta saturam.

Paldies, ka izlasījāt!

💬 Ja vēlaties kaut ko jautāt par šiem rīkiem vai uzzināt finansējuma iespējas, sazinieties ar iExec komandu mūsu oficiālajā Discord serverī.

📚Sāciet darbu ar šiem rīkiem, skatiet iExec dokumentāciju

$RLC #iExec #AI #Web3 #blockchain #Dapps