BTC
ETH
HTX
SOL
BNB
ดูตลาด
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

เหตุใด "การเข้าสู่ระบบด้วย Ethereum" จึงปฏิวัติ?

ECN以太坊中国
特邀专栏作者
บทความนี้มีประมาณ 2777 คำ การอ่านทั้งหมดใช้เวลาประมาณ 4 นาที
การลงชื่อเข้าใช้ด้วย Ethereum ถูกสร้างขึ้นโดยชุมชนโดยได้รับการสนับสนุนโดยตรงจาก Ethereum Foundation และ ENS
สรุปโดย AI
การลงชื่อเข้าใช้ด้วย Ethereum ถูกสร้างขึ้นโดยชุมชนโดยได้รับการสนับสนุนโดยตรงจาก Ethereum Foundation และ ENS

ชื่อเดิม: "ทำไมการลงชื่อเข้าใช้ด้วย Ethereum จึงเป็นตัวเปลี่ยนเกม - ตอนที่ 1"

การรวบรวมต้นฉบับ: ETH Chinese

การรวบรวมต้นฉบับ: ETH Chinese

การลงชื่อเข้าใช้ด้วย Ethereum (SIWE) ปฏิวัติตัวเลือกของผู้ใช้บนอินเทอร์เน็ต

แทนที่จะต้องประนีประนอมกับคนกลางรายใหญ่ ตอนนี้ผู้ใช้สามารถเข้าสู่ระบบได้โดยตรง (โดยไม่ต้องผ่านคนกลาง) โดยใช้รหัสส่วนตัวเดียวกันกับที่ควบคุมบัญชีบล็อกเชนของพวกเขา ด้วย SIWE เราเปิดอีกเส้นทางหนึ่งที่องค์กรขนาดใหญ่ไม่สามารถกีดกันผู้ใช้ในการเข้าถึงบริการและติดตามพฤติกรรมของพวกเขาได้อีกต่อไป

SIWE เป็นมาตรฐานการรับรองแบบเปิดอย่างสมบูรณ์ ซึ่งบรรลุผลได้จากการหารืออย่างเปิดเผยกับสมาชิกในชุมชน เช่น dapps, แอพ, wallets, บริษัทรักษาความปลอดภัย เป็นต้น คุณสามารถดูรายงานการประชุมและบันทึกย่อทั้งหมดได้ที่เว็บไซต์ login.xyz วิธีการนี้เป็นหนทางไกลจากการพัฒนาระบบข้อมูลประจำตัวที่เป็นกรรมสิทธิ์โดย บริษัท ยักษ์ใหญ่ด้านเทคโนโลยีหรือผู้ขายของรัฐบาล (ประท้วงโดยผู้สนับสนุนความเป็นส่วนตัวและสิทธิดิจิทัล)

ในทางตรงกันข้าม การลงชื่อเข้าใช้ด้วย Ethereum (EIP-4361) กำหนดรูปแบบลายเซ็นของครีเอทีฟคอมมอนส์แบบเปิด (CC) สำหรับบัญชี Ethereum เพื่อตรวจสอบสิทธิ์บริการบนเว็บอย่างปลอดภัย SIWE ถูกสร้างขึ้นโดยชุมชนโดยได้รับการสนับสนุนโดยตรงจาก Ethereum Foundation และ ENS และ Spruce รับผิดชอบโครงการนี้เมื่อปลายปีที่แล้ว ฉันตื่นเต้นที่ได้มาที่นี่เพื่อหารือเกี่ยวกับความหมายของ "การเข้าสู่ระบบด้วย Ethereum" และวิธีที่เหนือกว่า "การเชื่อมต่อกระเป๋าเงิน" สำหรับผู้สร้าง Web3 ทั้งหมด

การเชื่อมต่อกับกระเป๋าเงินกับการเข้าสู่ระบบด้วย Ethereum

ปุ่ม "เชื่อมต่อกระเป๋าเงิน" เป็นหน้าที่หลักของ dapp ในตอนนี้ เมื่อคลิกปุ่มนี้ ผู้ใช้จะเริ่มต้นเส้นทางของการโต้ตอบกับ Web3 และบล็อกเชน

เมื่อเชื่อมต่อกับกระเป๋าเงิน แอปสามารถรู้ได้ว่าคุณกำลังใช้บัญชีใดอยู่ แต่ก็แค่นั้น กระเป๋าเงินของคุณง่ายกว่าที่จะทราบว่าคุณต้องการใช้บัญชีใดเพื่อโต้ตอบกับสัญญาอัจฉริยะ ส่งสกุลเงินดิจิทัล และแม้แต่เซ็นข้อความผ่าน dapps ฟังก์ชั่นการเชื่อมต่อกับกระเป๋าเงินนั้นง่ายมาก - dapp นั้น "ไม่มีความทรงจำ" ของคุณ และเพียงแค่สร้างแพลตฟอร์มสำหรับการโต้ตอบง่ายๆ

เมื่อแอปพลิเคชันต้องการโต้ตอบตามบริบทที่สมบูรณ์ยิ่งขึ้นกับผู้ใช้ เช่น การโหลดค่ากำหนดของผู้ใช้หรือข้อความแชทส่วนตัว ก่อนอื่นเราต้องตรวจสอบให้แน่ใจว่าเรากำลังพูดคุยกับเจ้าของคีย์ส่วนตัวจริงที่อยู่เบื้องหลังบัญชี และไม่ใช่ใครก็ตามที่แสร้งทำเป็นมีอำนาจควบคุม บัญชี. "Connect Wallet" ไม่ได้ให้การรับประกันดังกล่าว แต่ SIWE สามารถทำได้ กล่าวอีกนัยหนึ่ง เราจำเป็นต้องตรวจสอบสิทธิ์ผู้ใช้เพื่อสร้างเซสชันกับพวกเขา จากนั้นจึงอ่านและเขียนข้อมูลของพวกเขาอย่างปลอดภัย เพื่อแสดงให้เห็นความแตกต่างระหว่างทั้งสอง ฉันได้ยกตัวอย่างสองตัวอย่างต่อไปนี้ - คาร์ลที่เชื่อมต่อกับกระเป๋าเงินและแซมที่สร้างเซสชัน:

(หมายเหตุผู้แปล: Session เป็นวิธีการรักษาสถานะระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ แนวคิดคือเมื่อไคลเอนต์เยี่ยมชมเป็นครั้งแรก เซิร์ฟเวอร์จะสร้างรหัสเซสชันและส่งกลับไปยังไคลเอ็นต์ แน่นอนว่าเซิร์ฟเวอร์จะ ยังเก็บ session id ไว้ในหน่วยความจำ หลังจากที่ client ได้รับ session id แล้ว ก็จะส่ง session id กลับไปยังเซิร์ฟเวอร์ในแต่ละคำขอที่ตามมา ดังนั้น เซิร์ฟเวอร์สามารถสอบถามหน่วยความจำของตนเองเพื่อให้ทราบว่าไคลเอนต์ได้เยี่ยมชม .Session สามารถใช้เพื่อดำเนินการรับรองความถูกต้องในการเข้าสู่ระบบของผู้ใช้ หลังจากที่ Session id ที่สร้างโดยเซิร์ฟเวอร์ถูกส่งกลับไปยังไคลเอ็นต์แล้ว ID นั้นมักจะถูกเก็บไว้ในคุกกี้ ดังนั้น การตรวจสอบสิทธิ์ตามเซสชันจึงเรียกอีกอย่างว่าการตรวจสอบสิทธิ์ตามคุกกี้ ที่มา)

คาร์ลใช้ dapps และมีประสบการณ์ที่ยอดเยี่ยม เขาสามารถซื้อขายบน Uniswap ยืมบน Aave หรือแม้แต่ซื้อ NFT บน OpenSea ในการดำเนินการบางอย่างเหล่านี้ เขาเพียงแค่เชื่อมต่อกระเป๋าเงินของเขาเท่านั้น การดำเนินการของคาร์ลดำเนินไปอย่างราบรื่นจนกระทั่งวันหนึ่งเขาพบปัญหาดังกล่าว: เขาต้องการให้ Dapp เหล่านี้จำสถานการณ์บางอย่างของเขาได้ เพื่อที่ว่าเมื่อเขาใช้ Dapp เหล่านี้เป็นครั้งที่สาม สี่ และห้า จะได้มอบประสบการณ์ที่ดีขึ้นแก่เขา

คาร์ลกำลังคิดว่า ถ้า Uniswap สามารถนำเข้าการตั้งค่าการชำระบัญชีของเขาได้โดยอัตโนมัติ Aave สามารถจำตลาดสินเชื่อที่เขาชื่นชอบได้ และแม้แต่ OpenSea ก็สามารถจำชื่อของเขาแทน 0x2Fe1a3... บัญชีแบบนี้ ประสบการณ์ของเขาจะดีขึ้นมาก คาร์ลเริ่มต้นใหม่ทุกครั้งที่เชื่อมต่อกระเป๋าเงินของเขา

แซมจะไม่มีปัญหาดังกล่าว หลังจากที่ Dapp รับรองความถูกต้องและสร้างเซสชัน ข้อมูลที่เกี่ยวข้องจะถูกบันทึกไว้ แม้ว่าแซมจะยกเลิกการเชื่อมต่อและตรวจสอบสิทธิ์อีกครั้ง เซสชันจะดำเนินต่อจากจุดที่เขาค้างไว้ และแอปพลิเคชันยังคงจดจำทุกอย่างเกี่ยวกับเขา ข้อมูลของเขาอาจถูกเก็บไว้ในฐานข้อมูลระยะไกลที่เขาควบคุม

รวม SIWE

มองข้ามภูมิทัศน์ของ Web3 แล้วคุณจะพบบริการที่มีอยู่มากมายที่เสนอรูปแบบบางอย่าง"Sign-In with Ethereum"แต่มีจำนวนไม่มากนัก โดยทั่วไปจะใช้เพื่อสร้างเซสชันที่ใช้คุกกี้กับผู้ใช้ที่จัดการข้อมูลเมตาที่เป็นกรรมสิทธิ์ซึ่งเชื่อมโยงกับบัญชี ตัวอย่างเช่น หากคุณต้องการให้สิทธิ์แก่ผู้ใช้ในการปรับแต่งโปรไฟล์ของตนเองบนไซต์ของคุณ (เช่นเดียวกับที่ OpenSea ทำ) คุณควรตรวจสอบสิทธิ์ผู้ใช้ก่อนที่จะทำการเปลี่ยนแปลงใดๆ เพื่อให้แน่ใจว่ามีเพียงผู้ใช้เท่านั้นที่สามารถแก้ไขโปรไฟล์ของตนเองได้ ขั้นตอนการทำงานมีดังนี้:

ขั้นตอนแรกหลังจากเชื่อมต่อกระเป๋าเงินคือการส่งข้อความที่มนุษย์อ่านได้ให้กับผู้ใช้ เพื่อให้พวกเขาเข้าใจว่าพวกเขากำลังโต้ตอบกับอะไร ในหลายกรณี ผู้ใช้จะเห็น"LOGIN"(เข้าสู่ระบบ) หรือข้อความบางอย่างที่บอกให้คุณเข้าสู่ระบบหรือบางครั้งก็เป็นตัวเลขตามอำเภอใจ (ที่นี่ เซ็นชุดตัวอักษรและตัวเลขแบบสุ่มบ้าๆ นี้) ดังนั้นเราจึงสามารถกำหนดชุดของฟิลด์ที่จำเป็นตามแนวทางปฏิบัติที่มีอยู่ วางมาตรการรักษาความปลอดภัยที่ดีจำนวนมาก และไวยากรณ์ที่เข้มงวดซึ่งสร้างความสมดุลระหว่างความสามารถในการอ่านของมนุษย์กับการทำงานที่ปลอดภัย นอกจากนี้ กระเป๋าเงินไม่จำเป็นต้องเปลี่ยนอินเทอร์เฟซและแนวทางปฏิบัติที่มีอยู่เพื่อให้ข้อมูลประเภทนี้แก่ผู้ใช้ต่อไปเป็นอย่างน้อย

ขั้นแรก เราสามารถนำข้อมูล "SIWE" ที่ยุ่งเหยิงทั้งหมดนี้และส่งคำขอไปยังผู้ใช้ด้วยวิธีทั่วไปที่ยอมรับได้:

แบ่งปันข้อมูล - แบ่งปันส่วนต่อประสาน

หลังจากยอมรับรูปแบบข้อความลายเซ็นแล้ว ขณะนี้แอปพลิเคชันและกระเป๋าเงินสามารถพูดภาษาเดียวกันได้แล้ว เมื่อแอปพลิเคชันส่งคำขอลงนามไปยังผู้ใช้ กระเป๋าเงินสามารถตรวจสอบคำขอนั้น ตรวจสอบว่าตรงกับข้อมูล EIP-4361 (SIWE) และแจ้งให้ผู้ใช้ทราบว่ากำลังเข้าสู่ระบบเว็บไซต์

ณ จุดนี้ กระเป๋าเงินสามารถนำเสนออินเทอร์เฟซที่มีสไตล์ที่เป็นมิตรซึ่งทำให้ผู้ใช้ได้รับประสบการณ์ที่ดีขึ้นและไม่ต้องสงสัยเลยเกี่ยวกับการดำเนินการที่ผู้ใช้กำลังจะทำ แทนที่จะให้บล็อกข้อความตามอำเภอใจแก่ผู้ใช้ในการเซ็นชื่อ ตอนนี้ผู้ใช้เพียงแค่คลิกกล่องโต้ตอบการยืนยันเพื่อ "เข้าสู่ระบบ" เนื่องจากกระเป๋าเงิน "เข้าใจ" คำขอลงนาม เพื่อความโปร่งใสอย่างสมบูรณ์ ข้อมูลและฟิลด์ทั้งหมดที่ระบุในข้อมูลจำเพาะ EIP-4361 ต้องยังคงมีอยู่ในอินเทอร์เฟซย่อยอื่นๆ เช่น มุมมองรายละเอียด

จากข้อมูลของ EIP-4361 เราจะได้รับอินเทอร์เฟซที่ชัดเจนขึ้น:

ข้อมูลจำเพาะยังแนะนำข้อกำหนดด้านความปลอดภัยเพิ่มเติมสำหรับกระเป๋าเงิน เช่น แนะนำการผูกโดเมนเพื่อป้องกันการโจมตีแบบฟิชชิ่ง แนะนำ nonces เพื่อป้องกันการโจมตีซ้ำ และผู้ใช้ได้รับการปกป้องเพิ่มเติมตลอดกระบวนการ ตัวอย่างเช่น หากกระเป๋าเงินพบข้อความ SIWE ที่ถูกต้อง แต่ผู้ใช้ลงชื่อใน example.com (แต่จริง ๆ แล้วอยู่ที่ exampie.com) กระเป๋าเงินสามารถเตือนผู้ใช้ถึงสถานการณ์:

นอกเหนือจากการรับรองความถูกต้อง

ข้อมูล SIWE ยังสามารถเข้าใจได้ว่าเป็นการให้สิทธิ์ในการเข้าถึงทรัพยากรเฉพาะ หรือการมอบหมายคีย์ส่วนตัวของเซสชันเพื่อปรับปรุงฟังก์ชันการทำงานและความง่ายในการใช้งานของ dapp UX ตัวอย่างเช่น ลองนึกภาพโลกที่ผู้ใช้สามารถเพิ่มเซสชันของตนเองด้วยข้อมูลที่เก็บไว้ แทนที่จะให้แอปพลิเคชันบันทึกข้อมูลของผู้ใช้ สำหรับข้อมูลเพิ่มเติม ฉันขอแนะนำให้อ่านบทความนี้:《From Sign-In with Ethereum to Session Keys》

ฉันจะโพสต์ส่วนที่ 2 ของบทความนี้เร็วๆ นี้ โปรดติดตาม! จนกว่าจะถึงเวลานั้น ไปใช้งาน SIWE!

ETH
ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก:
https://t.me/Odaily_News
กลุ่มสนทนา:
https://t.me/Odaily_GoldenApe
บัญชีทางการ:
https://twitter.com/OdailyChina
สารบัญบทความ
คลังบทความของผู้เขียน
ECN以太坊中国
อันดับบทความร้อน
Daily
Weekly
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android