หนึ่งในความท้าทายด้านความปลอดภัยที่สำคัญของอินเทอร์เน็ตในช่วงยี่สิบปีที่ผ่านมาเป็นปัญหาที่ค่อนข้างง่ายในการรักษาความปลอดภัยบัญชีผู้ใช้ ตอนนี้ผู้ใช้มีบัญชีที่มีเว็บไซต์หลายร้อยแห่งและรหัสผ่านหลายสิบรายการที่นำไปสู่ ใหญ่ ตัวเลข ของ การแฮ็ก ในฐานะที่เป็นเว็บไซต์ของแต่ละบุคคลซึ่งมักดำเนินการโดยผู้คนที่ไม่มีทักษะโดยเฉพาะอย่างยิ่งในจุดเข้ารหัสลับและความปลอดภัยทางอินเทอร์เน็ตพบว่าตัวเองถูกเอาเปรียบโดยแฮ็กเกอร์ที่ฉลาดมากขึ้นและผู้ใช้มักจะจัดการกับความซับซ้อนของการจดจำรหัสผ่านหลายร้อยรายการโดยเช่นกัน ทำให้ง่าย หรือ ทำให้พวกเขาเหมือนกันทั้งหมด – มักจะมาก ผลลัพธ์ที่โชคร้าย– เมื่อเวลาผ่านไปการเย็บปะติดปะต่อกันของ Advert-Hoc Options ได้พัฒนาขึ้นอย่างแน่นอนรวมถึงการใช้บัญชีอีเมลเป็นข้อมูลสำรองสากลและซอฟต์แวร์ “Password Supervisor” เช่น LastPass แม้ว่าจะมีค่าใช้จ่ายสูง: โซลูชันดังกล่าวยังคงความซับซ้อนพื้นฐานของการเข้าถึงรหัสผ่าน
มีหลายสาย รับ กำจัด ของ รหัสผ่านแต่คำถามคือเราจะแทนที่ด้วยอะไร? มีความคิดมากมายตั้งแต่ “รหัสผ่านเดียวไปจนถึงการปกครองทั้งหมด” ไปจนถึงการตรวจสอบสมาร์ทโฟนไปจนถึงอุปกรณ์ฮาร์ดแวร์พิเศษและชีวภาพและนโยบาย Multy-factor M-of-N ทุกประเภท แต่สิ่งก่อสร้างที่ซับซ้อนยิ่งขึ้นเหล่านี้มักจะเป็นแอปพลิเคชันเฉพาะ โดยทั่วไปเราจะเห็นว่าปัญหาของวิธีการจัดการการควบคุมการเข้าถึงผู้ใช้ที่ดีที่สุดและลดความสูญเสียที่สำคัญและความเสี่ยงการโจรกรรมนั้นซับซ้อนพอที่จะไม่ได้รับการแก้ไข “ครั้งเดียวและสำหรับทุกคน” และวิธีที่ดีที่สุดในการแก้ปัญหาคือการอนุญาตให้ตลาดเสรีของโซลูชั่นเจริญรุ่งเรือง อย่างไรก็ตามวิธีที่จะทำให้สิ่งนั้นเกิดขึ้นจริงคือ การปลดปล่อย ตลาด “โซลูชั่นการควบคุมการเข้าถึง” จากตลาด “บริการ” กล่าวคือสิ่งที่เราเป็นในระดับใหญ่ ไม่ ทำตอนนี้

อุปกรณ์การเข้าถึงฮาร์ดแวร์ไปยังบัญชีธนาคาร UBS ของฉัน เตือนฉันว่าทำไมฉันไม่สามารถใช้สิ่งนี้เพื่อรักษาความปลอดภัยโดเมนของฉันใน Namecheap ได้
แล้วเราจะทำอย่างไร? ขั้นตอนแรกคือการแนะนำการใช้งานที่ดีที่สุดของสิ่งที่เป็นนามธรรมที่สุด: รหัสทัวริงที่สมบูรณ์ มากกว่าที่ระดับโปรโตคอลช่วยให้ผู้ใช้สามารถระบุรหัสผ่านหรือจัดทำชุดผู้ให้บริการที่เลือกไว้ล่วงหน้าหรือแม้แต่มาตรฐานที่ต้องอาศัยการพูดคุยกับเซิร์ฟเวอร์ของตัวเลือกของผู้ใช้ รหัสสามารถรวมการตรวจสอบลายเซ็นดิจิตอลโดยใช้ ใดๆ อัลกอริทึมการเข้ารหัสลับ (ดังนั้นคุณจะได้เข้ากันได้กับการเข้ารหัสลับควอนตัมที่ปลอดภัยฟรี) อาจรวมถึงคีย์ที่เก็บไว้ในคอมพิวเตอร์ของผู้ใช้คีย์ที่ได้มาโดยตรง จากรหัสผ่านคีย์ที่จัดขึ้นบนอุปกรณ์ฮาร์ดแวร์หรือนโยบายโดยพลการใด ๆ รวมถึงการรวมกันของข้างต้น ด้วยวิธีนี้นวัตกรรมสามารถเกิดขึ้นได้ในกลไกการควบคุมการเข้าถึง ไม่จำเป็น สำหรับเว็บไซต์ (หรือระบบอื่น ๆ ที่ต้องการการรับรองความถูกต้อง) เพื่อทำทุกอย่างเพื่อรองรับการเปลี่ยนแปลงใหม่ นอกจากนี้ระบบอนุญาตอย่างเรียบร้อย องค์กร ในการใช้รูปแบบโดยใช้การควบคุมการเข้าถึงแบบหลายคนทันทีโดยไม่จำเป็นต้องมีการรวมเข้าด้วยกัน
ขั้นตอนต่อไปคือรหัสขึ้นอยู่กับการดำเนินการของทัวริง สำหรับแอปพลิเคชั่นจำนวนมากคุณต้องการความสามารถในการอนุญาตให้ผู้ใช้บางคนดำเนินการบางอย่าง แต่ไม่ใช่คนอื่น ๆ ตัวอย่างเช่นคุณอาจต้องการอนุญาตให้ sysadmin เปลี่ยนที่อยู่ IP ที่ชื่อโดเมนชี้ไปที่ แต่ไม่ขายโดเมนทันที เพื่อรองรับสิ่งนี้สิ่งที่เป็นนามธรรมจำเป็นต้องเปลี่ยน การตั้งค่า “ทัวริง -Full-Code As Signature” อย่างง่ายอาจมีแบบฟอร์มต่อไปนี้:
VM(code, server-provided nonce ++ signature) ?= 1
ที่ไหน VM เป็นเครื่องเสมือนที่รันโค้ดโดยใช้ Nonce ที่ให้บริการเซิร์ฟเวอร์และลายเซ็นเป็นอินพุตและการตรวจสอบการตรวจสอบคือการดูว่าเอาต์พุตเป็น 1 ตัวอย่างง่ายๆของ รหัส ที่สามารถใส่ได้คือตัวตรวจสอบลายเซ็นดิจิตอลเส้นโค้งรูปไข่ เพื่อให้ข้อกำหนดการอนุญาตที่แตกต่างกันขึ้นอยู่กับการดำเนินการคุณต้องการ:
VM(code, server-provided nonce ++ operation_data ++ signature) ?= 1
ลายเซ็นจะต้องได้รับการดำเนินการทุกครั้งที่ผู้ใช้ต้องการดำเนินการ (ซึ่งมีประโยชน์ในการให้การตรวจสอบบุคคลที่สามที่ชัดเจนและสามารถพิสูจน์ได้ว่ามีการอนุญาตให้ดำเนินการ); ข้อมูลการดำเนินการ (ลองนึกภาพชื่อฟังก์ชันและอาร์กิวเมนต์ที่เข้ารหัสในไฟล์ Abi สไตล์ Ethereum) จะถูกเพิ่มเป็นอาร์กิวเมนต์สำหรับเครื่องเสมือนและลายเซ็นจะต้องมีทั้งข้อมูลที่ไม่ได้ใช้และข้อมูลการดำเนินการ
สิ่งนี้ทำให้คุณค่อนข้างไกล แต่ในบางกรณีไม่ไกลพอ ตัวอย่างง่ายๆคือ: จะเกิดอะไรขึ้นถ้าคุณต้องการให้ใครบางคนได้รับอนุญาตให้ถอนเงินจำนวนเล็กน้อย แต่ไม่ใช่จำนวนมากเช่น ขีด จำกัด การถอน? ในกรณีนี้ปัญหาที่คุณต้องเอาชนะนั้นง่าย: จะเกิดอะไรขึ้นถ้ามีคน จำกัด ด้วยหมวกถอนเงิน $ 100 พยายามหลบเลี่ยงโดยเพียงแค่เรียกใช้สคริปต์เพื่อถอน $ 90 ซ้ำแล้วซ้ำอีก? ในการแก้ปัญหานี้คุณต้องมีขีด จำกัด การถอนอย่างชาญฉลาด โดยพื้นฐานแล้วบางอย่างเช่น “สูงสุด $ 100 ต่อวัน” อีกกรณีหนึ่งคือการเพิกถอนคีย์: หากคีย์ถูกแฮ็กหรือหายไปคุณต้องการแทนที่และคุณต้องการให้แน่ใจว่าโลกรู้ว่านโยบายของคุณเปลี่ยนไปเพื่อให้ผู้โจมตีไม่สามารถพยายามปลอมตัวคุณภายใต้นโยบายเก่าของคุณ
เพื่อให้ผ่านโคกครั้งสุดท้ายนี้เราต้องก้าวไปอีกขั้นหนึ่ง: เราต้องขึ้นอยู่กับการทำงานที่สมบูรณ์แบบของทัวริง เป็นรัฐ นโยบาย; กล่าวคือการดำเนินงานควรจะสามารถเปลี่ยนสถานะของนโยบายได้ และนี่คือที่ที่ไม่เพียงแค่การเข้ารหัส แต่โดยเฉพาะบล็อกเชนเข้ามาแน่นอนคุณอาจมีเซิร์ฟเวอร์กลางจัดการทุกสิ่งและหลายคนก็ทำได้ดีอย่างสมบูรณ์แบบด้วยการไว้วางใจเซิร์ฟเวอร์กลาง แต่ blockchains มีค่าพอสมควร ที่นี่เพราะพวกเขาสะดวกกว่าให้เรื่องราวที่น่าเชื่อถือของความเป็นกลางและง่ายต่อการสร้างมาตรฐานรอบ ๆ ในที่สุดมันก็ค่อนข้างเป็นอันตรายสำหรับนวัตกรรมที่จะเลือก “หนึ่ง blockchain หนึ่งเพื่อปกครองพวกเขาทั้งหมด” สิ่งที่เราต้องการมาตรฐานคือกลไกที่ผู้ใช้สามารถดาวน์โหลดโมดูลเพื่อสนับสนุน ใดๆ สารละลาย blockchain หรือส่วนกลางตามที่พวกเขาต้องการ
สำหรับแอพพลิเคชั่นที่ใช้ blockchain การมีนโยบายที่ถูกบังคับใช้ในสถานะที่ถูกต้องบน blockchain ทำให้รู้สึกเป็นธรรมชาติ ไม่จำเป็นต้องมีส่วนร่วมอีกระดับหนึ่งของตัวกลางและผู้คนสามารถเริ่มทำมันได้ในขณะนี้ สิ่งที่เป็นนามธรรมของ “บัญชี” ที่ Ethereum เสนอทำให้ง่ายมากที่จะทำงานกับวิธีการนี้: หากแอปพลิเคชันของคุณทำงานร่วมกับผู้ใช้อย่างง่ายที่ถือกุญแจส่วนตัวมันก็ใช้ได้กับทุกประเภทของบุคคลหลายประเภทที่ขับเคลื่อนด้วยฮาร์ดแวร์เกรดทหารหรือผู้ใช้นโยบายอื่น ๆ ที่จะเกิดขึ้นในอนาคต
สำหรับแอปพลิเคชันอื่น ๆ ผู้ใช้อาจต้องการความเป็นส่วนตัวทั้งในการดำเนินการที่เปลี่ยนแปลงของรัฐที่พวกเขาดำเนินการและแม้กระทั่งในลักษณะของนโยบายของพวกเขาในเวลาใดเวลาหนึ่ง ด้วยเหตุนี้คุณจึงต้องการวิธีแก้ปัญหาเช่น เหยี่ยวในกรณีที่ blockchain ยังคงมั่นใจในความปลอดภัยของกระบวนการ แต่ต้องขอบคุณสิ่งมหัศจรรย์ของเทคโนโลยีการพิสูจน์ความรู้ที่ไม่มีความรู้ ไม่รู้อะไรเกี่ยวกับสิ่งที่ปลอดภัย– ก่อนที่ Hawk จะถูกนำไปใช้รูปแบบการเข้ารหัสที่ง่ายกว่าเช่นลายเซ็นแหวนอาจพอเพียง
แอปพลิเคชันอื่น ๆ
ความปลอดภัยของบัญชีเป็นแอปพลิเคชั่นแรกและพื้นฐานที่สุดสำหรับแนวคิดของรหัสเป็นนโยบายนอกจากนี้ยังมีอื่น ๆ หนึ่งง่าย ๆ คือรีจิสทรีชื่อโดเมน OneName หนึ่งในบริการ “การกระจายอำนาจรีจิสทรี” ยอดนิยมกำลังวางแผนที่จะใช้คุณสมบัติที่โดเมนระดับบนสุดสามารถเลือกนโยบายค่าธรรมเนียมสำหรับโดเมนย่อยตามจำนวนตัวอักษรพยัญชนะและสระ สิ่งนี้มีประโยชน์ แต่แน่นอนว่าน่าเกลียดทางเศรษฐกิจ: มีคุณสมบัติหลายร้อยรายการนอกเหนือจากตัวอักษรพยัญชนะและสระที่มีอิทธิพลต่อราคาชื่อโดเมนและผู้คนอาจต้องการทดลองใช้กลยุทธ์การลงทะเบียนอื่น ๆ เช่น การประมูลประเภทต่างๆ–
อีกครั้งโซลูชันที่ดีกว่าคือการใช้โมดูลง่าย ๆ บางอย่าง: ให้ผู้คนสร้างเนมสเปซของตัวเองในรหัสทัวริงที่สมบูรณ์แบบ หากคุณกำลังทำสิ่งนี้บนแพลตฟอร์มที่มีรหัสที่สมบูรณ์แบบทัวริงที่มีอยู่คุณสามารถอนุญาตให้อยู่ที่อยู่ในการควบคุมโดเมนย่อยจากนั้น Tada คุณสนับสนุนนโยบายย่อยของทัวริงที่สมบูรณ์แบบแล้ว นี่คือสาระสำคัญของการเขียนโปรแกรมเชิงวัตถุ: เปิดเผยอินเทอร์เฟซและอนุญาตให้วัตถุอื่น ๆ ซึ่งอาจมีรหัสภายในที่ซับซ้อนโดยพลการตอบสนองต่ออินเทอร์เฟซนั้น
อีกอันคือการซื้อขายหุ้นส่วนตัว โดยเฉพาะอย่างยิ่งในกรณีของ บริษัท เอกชนการซื้อขายหุ้นไม่ได้และไม่สามารถเป็นอิสระและไม่ จำกัด วิธีการซื้อขาย cryptocurrencies คือ; บริษัท มักต้องการมีข้อ จำกัด เช่น:
- ให้หุ้นของพนักงานและอนุญาตให้พวกเขาขายพวกเขาหลังจากระยะเวลาหนึ่ง
- กำหนดให้ผู้ถือหุ้นรายใหม่ได้รับการอนุมัติจากผู้ถือหุ้นเดิมโดยมีความเป็นไปได้ที่จะได้รับการอนุมัติดังกล่าวมาพร้อมกับจำนวนหุ้นที่ผู้ถือสามารถเป็นเจ้าของได้จำนวนเท่าใด
- ขั้นตอนการบังคับซื้อ
- การ จำกัด อัตราสูงสุดที่หุ้นขาย (เช่นการถอนขีด จำกัด ) หรือต้องรอระยะเวลารอหรือเสนอผู้ถือรายอื่นที่เฉพาะเจาะจงในการปฏิเสธครั้งแรก
แน่นอนว่าคุณสามารถสร้างแพลตฟอร์มการซื้อขายหุ้นส่วนตัวที่ใช้บล็อกเชนสำหรับลูกค้ารายหนึ่งและให้ข้อ จำกัด ที่ลูกค้ารายหนึ่งต้องการ แต่ถ้าลูกค้ารายอื่นต้องการข้อ จำกัด ที่แตกต่างกันล่ะ? คุณอาจหยิกปัญหาในตาอย่างน้อยก็ที่ “เลเยอร์แอปพลิเคชันหลัก” และแก้ปัญหาได้ทันทีโดยทั้งหมด … อนุญาตให้แต่ละหุ้นแต่ละตัวแสดงเป็นสกุลเงินย่อย ข้อ จำกัด ที่แสดง เป็นรหัสทัวริงที่สมบูรณ์
ฟังก์ชั่นนี้สามารถแสดงได้ใน API “โทเค็น” โดยขยายตัวอย่างเช่นดังนี้:
- getMinimumbalance (บัญชี): รับยอดต่ำสุดที่บัญชีสามารถถือได้ในเวลาปัจจุบัน
- getMaximumbalance (บัญชี): รับยอดสูงสุดที่บัญชีสามารถถือได้ในเวลาปัจจุบัน
ในระยะสั้นแอปพลิเคชันไม่มีนโยบาย แอปพลิเคชันโต้ตอบกับ วัตถุ (บัญชีผู้ใช้สกุลเงิน ฯลฯ ) และวัตถุมีนโยบาย หรือสั้นกว่านี้:

คุณกำลังสร้างแอปพลิเคชันอนุพันธ์ทางการเงินที่ใช้ blockchain และมีคนขอให้คุณเพิ่มคุณสมบัติเพื่อให้สามารถลงคะแนนระหว่างผู้ให้บริการฟีดข้อมูลหลายรายแทนที่จะเป็นเพียงหนึ่งเดียวหรือไม่? อย่าคิดเลย เพียงแค่ตั้งค่าที่อยู่ผู้ให้บริการฟีดข้อมูลหนึ่งตัวและอนุญาตให้ผู้ใช้กำหนดนโยบายของตนเอง ข้อดีคือรหัสใดก็ตามที่ใช้หรือเขียนพวกเขาจะสามารถใช้เพื่อให้ฟีดข้อมูลสำหรับอนุญาโตตุลาการ DAPP ได้อย่างปลอดภัยยิ่งขึ้นเช่นกัน คุณกำลังสร้างระบบ DNS และมีคนขอให้คุณแนะนำการสนับสนุนสำหรับประเภทการประมูลเฉพาะสำหรับโดเมนย่อยหรือไม่? อย่าไปที่ระดับราก DNS; อนุญาตให้โดเมนย่อยเป็นที่อยู่และอนุญาตให้ผู้ใช้ประดิษฐ์อัลกอริทึมการประมูลของตนเอง ไม่ว่าพวกเขาจะคิดค้นอัลกอริทึมใด ๆ พวกเขาจะสามารถใช้สำหรับรีจิสทรีของพวกเขาสำหรับชื่อผู้ใช้แชทที่กระจายอำนาจได้เช่นกัน
นี่คือประโยชน์ของสิ่งที่เป็นนามธรรม: การออกแบบนโยบายความปลอดภัยของบัญชีสามารถกลายเป็นสาขาการศึกษาที่มีอยู่ในตัวเองและโซลูชั่นใหม่ ๆ ที่มีอยู่สามารถนำไปใช้ได้ทันทีทุกที่ บางคนต้องการไว้วางใจบุคคลที่สาม คนอื่น ๆ จะต้องการได้รับอนุญาตหลายลายเซ็นระหว่างห้าอุปกรณ์ที่แตกต่างกันของพวกเขาเองและบางคนจะต้องการกุญแจสำหรับตัวเลือกสำหรับตัวเลือกสำหรับเพื่อนสามในห้าคนที่จะมารวมกันเพื่อรีเซ็ตกุญแจเป็นใหม่ บางคนต้องการนโยบายการเข้าถึงซึ่งหากพวกเขาไม่ทำธุรกรรมภายในสิบสองเดือนพวกเขาจะถูกสันนิษฐานว่าตายและทนายความจะได้รับการเข้าถึงเพื่อให้สามารถดำเนินการตามความประสงค์ของพวกเขา ทั้งหมด ของสินทรัพย์ดิจิทัลของพวกเขา และบางคนต้องการนโยบายที่ให้การควบคุมที่สำคัญอย่างหนึ่งสำหรับแอปพลิเคชันที่ประกาศตัวเองมีความปลอดภัยต่ำ แต่สองในสามคีย์สำหรับแอปพลิเคชันที่ประกาศตัวเองมีความปลอดภัยสูง การออกแบบนโยบายการกำหนดราคารีจิสทรีชื่อสามารถกลายเป็นตัวเองได้เช่นกัน-เช่นเดียวกับนโยบายการ จำกัด การเป็นเจ้าของสินทรัพย์ดิจิตอลซึ่งเป็นสาขาที่จะสนใจทุกคนจาก บริษัท ขนาดเล็กและขนาดใหญ่ไปจนถึง DAOS ในชุมชน และนั่นคือพลังของรหัสทัวริงที่สมบูรณ์