บังคับให้มีพฤติกรรมที่ซื่อสัตย์


9

คุณจะบังคับพรรคให้ซื่อสัตย์ได้อย่างไร (เชื่อฟังกฎระเบียบโปรโตคอล)

ฉันได้เห็นกลไกบางอย่างเช่นภาระผูกพันการพิสูจน์และอื่น ๆ แต่พวกเขาดูเหมือนจะไม่สามารถแก้ปัญหาทั้งหมดได้ สำหรับฉันดูเหมือนว่าโครงสร้างของการออกแบบโปรโตคอลและกลไกดังกล่าวจะต้องทำงาน ไม่มีใครมีการจำแนกที่ดี
แก้ไข
เมื่อออกแบบโปรโตคอลที่ปลอดภัยหากคุณบังคับให้พรรคซื่อสัตย์การออกแบบจะง่ายกว่ามากแม้ว่าการบังคับใช้กฎหมายนี้จะมีผลตอบแทนเป็นของตัวเอง ฉันได้เห็นเมื่อออกแบบโปรโตคอลที่ปลอดภัยผู้ออกแบบถือว่าบางสิ่งบางอย่างที่ดูไม่เหมือนจริงสำหรับฉันตัวอย่างเช่นสมมติว่าทุกฝ่ายมีความซื่อสัตย์ในกรณีที่เลวร้ายที่สุดหรือสมมติว่าความซื่อสัตย์ของเซิร์ฟเวอร์ที่เก็บรักษาข้อมูลผู้ใช้ แต่เมื่อดูที่การออกแบบโปรโตคอลในแบบจำลองที่เข้มงวดคุณไม่ค่อยเห็นสมมติฐานเช่นนี้ (อย่างน้อยฉันก็ไม่เห็นมัน - ฉันมักศึกษาโปรโตคอลมากกว่ากรอบการทำงานของ Canetti UCซึ่งฉันคิดว่ายังไม่เป็นทางการเลย) ฉันสงสัยว่ามีการจำแนกประเภทที่ดีของวิธีที่คุณสามารถบังคับให้ปาร์ตี้ซื่อสัตย์หรือมีคอมไพเลอร์ใด ๆ ที่สามารถแปลงโปรโตคอลการป้อนข้อมูลให้เป็นหนึ่งเดียวกับฝ่ายที่ซื่อสัตย์ได้หรือไม่?
ตอนนี้ฉันจะอธิบายว่าทำไมฉันจึงคิดว่าสิ่งนี้ไม่ได้ทำงาน แต่มันอาจดูไม่เกี่ยวข้อง เมื่อออกแบบโปรโตคอลในกรอบงาน UC ซึ่งได้รับประโยชน์จากกระบวนทัศน์อุดมคติ / จริงการเชื่อมโยงการสื่อสารทุกรูปแบบในอุดมคตินั้นได้รับการรับรองความถูกต้องซึ่งไม่เป็นความจริงในแบบจำลองจริง ดังนั้นผู้ออกแบบโพรโทคอลจึงหาวิธีทางเลือกในการนำช่องสัญญาณนี้ไปใช้ผ่านการสันนิษฐานของ PKI หรือ CRS (สตริงอ้างอิงทั่วไป) แต่เมื่อออกแบบโปรโตคอลการพิสูจน์ตัวตนสมมติว่าแชนเนลที่ผ่านการตรวจสอบแล้วนั้นผิด สมมติว่าเรากำลังออกแบบโพรโทคอลการรับรองความถูกต้องในเฟรมเวิร์ก UC มีการโจมตีที่ปลอมแปลงตัวตนของบุคคล แต่เนื่องจากข้อสันนิษฐานของการเชื่อมโยงการรับรองความถูกต้องในรูปแบบในอุดมคติการโจมตีครั้งนี้ไม่ได้สันนิษฐาน คุณอาจอ้างถึงการสร้างแบบจำลองการโจมตีภายในบนโปรโตคอลแลกเปลี่ยนคีย์กลุ่ม คุณอาจสังเกตเห็นว่า Canetti ในงานน้ำเชื้อของเขาการแลกเปลี่ยนที่สำคัญในระดับสากลของการแลกเปลี่ยนที่สำคัญและช่องทางที่ปลอดภัยกล่าวถึงแนวคิดเรื่องความปลอดภัยก่อนหน้านี้ที่เรียกว่า SK-Security ซึ่งเพียงพอที่จะรับรองความปลอดภัยของโปรโตคอลการรับรองความถูกต้อง เขาก็สารภาพ (โดยระบุว่านี่เป็นเรื่องของด้านเทคนิค) ว่าคำจำกัดความของ UC ในบริบทนี้นั้นเข้มงวดเกินไปและให้ตัวแปรที่ผ่อนคลายที่เรียกว่า oracle ที่ไม่ใช่ข้อมูล (ซึ่งทำให้ฉันสับสน ฉันไม่สามารถจับคู่รูปแบบความปลอดภัยนี้กับรูปแบบความปลอดภัยอื่น ๆ ได้ซึ่งอาจเป็นเพราะฉันไม่รู้: D)

[ในฐานะที่เป็นบันทึกด้านข้างคุณเกือบจะสามารถแปลงโปรโตคอลความปลอดภัยของ Sk ไปเป็นระบบรักษาความปลอดภัย UC ได้โดยไม่คำนึงถึงเวลาของเครื่องมือจำลอง ตัวอย่างเช่นคุณอาจลบการเซ็นชื่อของข้อความและให้เครื่องจำลองทำการจำลองการโต้ตอบทั้งหมดในแบบจำลอง ดูการแลกเปลี่ยนคีย์กลุ่มบริจาคเพื่อช่วยเหลือในระดับสากลสำหรับการพิสูจน์! ทีนี้สมมติว่านี่เป็นโปรโตคอลการแลกเปลี่ยนกุญแจกลุ่มที่มีหลายฝ่ายที่เป็นพหุนาม, ประสิทธิภาพของเครื่องจำลองคืออะไร? นี่คือที่มาของคำถามอื่น ๆ ของฉันในฟอรั่มนี้]

อย่างไรก็ตามเนื่องจากขาดความมุ่งมั่นในรูปแบบธรรมดา (มากกว่า UC) ฉันจึงหาวิธีอื่น ๆ ที่จะทำให้โปรโตคอลปลอดภัยโดยเพียงแค่ข้ามความต้องการสำหรับการพักผ่อนนั้น ความคิดนี้จึงเป็นพื้นฐานมากในใจของฉันและได้มาในใจของฉันโดยเพียงแค่มีการศึกษาโครงการความมุ่งมั่นล่าสุด Canetti ในรูปแบบธรรมดา: การปรับตัวแข็งและ Composable การรักษาความปลอดภัยในรุ่นธรรมดาจากสมมติฐานมาตรฐาน
BTW ฉันไม่ได้แสวงหาการพิสูจน์ความรู้ที่เป็นศูนย์เพราะเหตุผลที่ฉันไม่รู้เมื่อใดก็ตามที่มีคนใช้หนึ่งในพวกเขาในโปรโตคอลที่เกิดขึ้นพร้อมกัน (มากกว่ากรอบ UC) คนอื่น ๆ ได้กล่าวถึงโปรโตคอลว่าไม่มีประสิทธิภาพ (อาจเป็น เนื่องจากการกรอกลับของเครื่องจำลอง)


2
คุณอาจต้องใช้เวลาดูที่นี้: wisdom.weizmann.ac.il/~oded/gmw2.html ในบทความดังกล่าวฝ่ายที่ไม่ซื่อสัตย์ถูกบังคับให้กระทำโดยสุจริตโดยพิสูจน์ (โดยปราศจากความรู้เป็นศูนย์) ว่าพวกเขาทำตามโปรโตคอลในขั้นตอนก่อนหน้า
MS Dousti

4
ฉันคิดว่า "การบังคับใช้พฤติกรรมที่ซื่อสัตย์" เป็นคำจำกัดความที่เป็นไปได้สำหรับการเข้ารหัสสมัยใหม่ (ซึ่งเป็นมากกว่าการซ่อนข้อมูล) ในกรณีดังกล่าวพื้นที่ย่อยทั้งหมดของการเข้ารหัสสามารถถือเป็นแนวทางสำหรับคำถามนั้นได้
Marc

ฉันกำลังจะเขียนสิ่งเดียวกันกับ Marc (โดยวิธีการพิสูจน์แบบโต้ตอบหรือแม้กระทั่งคำจำกัดความของ NP ยังสามารถดูเป็น "บังคับพฤติกรรมที่ซื่อสัตย์" ในสุภาษิตแม้ว่าพวกเขามักจะไม่ถือว่าเป็นโปรโตคอลการเข้ารหัสลับ) คำถามที่กว้างจริงๆและดูเหมือนว่าจะมี ไม่มีวิธีที่เหมาะกับทุกคนในการบังคับใช้พฤติกรรมที่ซื่อสัตย์ในสถานการณ์ต่าง ๆ
Tsuyoshi Ito

1
คุณหมายถึงอะไรอย่างแม่นยำโดย "แต่พวกเขาก็ดูเหมือนจะไม่แก้ปัญหาทั้งหมด?" คุณเจาะจงมากกว่านี้ไหม?
Alon Rosen

@Sadeq: ดูย่อหน้าสุดท้าย! @Marc & Tsuyoshi lto: โปรดดูหัวข้อแก้ไข มันอาจช่วย
Yasser Sobhdel

คำตอบ:


6

อนิจจาคุณไม่สามารถบังคับให้คนทำในสิ่งที่โปรโตคอลบอกว่าควรทำ

แม้แต่คนที่มีเจตนาดีที่ตั้งใจจะปฏิบัติตามโปรโตคอลในบางครั้งก็ทำผิดพลาด

มีวิธีอย่างน้อย 3 วิธี:

  • ทฤษฎี crypto: สมมติตัวแทน "ดี" เสมอตามโปรโตคอลในขณะที่ตัวแทน "อันตราย" พยายามล้มล้างโปรโตคอล ออกแบบโปรโตคอล crypto เพื่อให้ตัวแทนที่ดีได้รับสิ่งที่ต้องการในขณะที่ตัวแทนที่เป็นอันตรายจะไม่ได้อะไรเลย
  • ทฤษฎีเกม: สมมติว่าตัวแทนทุกคนมองเฉพาะผลประโยชน์ส่วนตัวของเขาเท่านั้น ใช้การออกแบบกลไกเพื่อให้เกิดประโยชน์สูงสุดแก่ทุกคน
  • เครือข่ายที่ป้องกันความผิดพลาดแบบกระจาย: สมมติว่าทุกเอเจนต์ทำผิดพลาดเป็นครั้งคราวและตัวแทนบอทไม่กี่คนที่ส่งข้อความที่ออกแบบมาเพื่อประสงค์ร้ายออกมาจำนวนมาก ตรวจจับและแยกโหนดบอท 'จนกว่าพวกเขาจะได้รับการแก้ไข; ใช้การตรวจจับข้อผิดพลาดและการแก้ไข (EDAC) เพื่อแก้ไขข้อผิดพลาดเป็นครั้งคราว; ใช้โพรโทคอลคอนเวอร์เจนต์ที่เข้าสู่สถานะที่มีประโยชน์ในที่สุดไม่ว่าข้อมูลผิดพลาดเริ่มต้นจะถูกเก็บไว้ในตารางเส้นทาง

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

บางส่วนของกระบวนการดังกล่าวที่แข็งแกร่งที่สุดได้รับการออกแบบให้เป็นแรงจูงใจที่เข้ากันได้

โดยทั่วไปแล้วทฤษฎีเกมจะทำให้สมมติฐานง่ายขึ้นว่าเอเจนต์ที่เกี่ยวข้องทั้งหมดคือ "เหตุผล" ในทฤษฎีเกม "เหตุผล" หมายความว่าตัวแทนชอบผลลัพธ์บางอย่างกับผลลัพธ์อื่น ๆ มีความเต็มใจและสามารถเปลี่ยนการกระทำของเขาในแบบที่เขาคาดหวัง (ให้ข้อมูลที่มีให้กับเขา) จะส่งผลให้ผลลัพธ์ที่ต้องการมากขึ้น (ของเขาเอง แคบตนเองสนใจ) และเขาก็ฉลาดพอที่จะรู้ว่าตัวแทนเหตุผลอื่น ๆ จะทำหน้าที่คล้ายกันเพื่อพยายามที่จะได้รับผลลัพธ์ที่เป็นที่ต้องการมากที่สุดจากผลลัพธ์ที่เป็นไปได้ทั้งหมดที่อาจเป็นผลมาจากการกระทำที่เลือก

ผู้ออกแบบอาจทำให้สมมติฐานง่ายขึ้นว่าคนทุกคนทำตามผลประโยชน์ของตนเองที่แคบเท่านั้น สมมติฐานดังกล่าวทำให้การออกแบบสถานการณ์ง่ายขึ้นโดยใช้ทฤษฎีการนำไปปฏิบัติ อย่างไรก็ตามหลังจากการออกแบบเสร็จสิ้นก็ไม่สำคัญว่าผู้คนจะทำตามผลประโยชน์ของตนเองที่แคบ (" Homo economicus ") หรือว่าพวกเขาเห็นแก่ผู้อื่นและต้องการเพิ่มผลประโยชน์สุทธิให้กับทุกคน - สถานการณ์ที่ได้รับการออกแบบอย่างเหมาะสมผู้คนทั้งสองประเภทต่างก็มีตัวเลือกเดียวกันและผลลัพธ์สุดท้ายนั้นให้ประโยชน์สูงสุดแก่ทุกคน

โปรโตคอลคอนเวอร์เจนซ์

เมื่อออกแบบโปรโตคอลการเราต์แต่ละโหนดในเครือข่ายจะส่งข้อความไปยังเพื่อนบ้านโดยส่งผ่านข้อมูลเกี่ยวกับโหนดอื่นที่สามารถเข้าถึงได้จากโหนดนั้น

อนิจจาบางครั้งข้อความเหล่านี้มีข้อผิดพลาด ที่แย่กว่านั้นคือบางครั้งโหนดนั้นมีการกำหนดค่าผิดพลาดและทำให้เกิดการเข้าใจผิดจำนวนมากและอาจเป็นข้อความที่ออกแบบมาเพื่อประสงค์ร้าย

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

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

วิธีการรวมกัน

การออกแบบกลไกอัลกอริทึม ดูเหมือนจะพยายามรวมวิธีการเครือข่ายที่ทนต่อความผิดพลาดและวิธีการกลไกของทฤษฎีเกม

@Yoichi Hirai และ Aaron ขอบคุณที่ชี้ให้เห็นถึงความพยายามที่น่าสนใจในการรวมทฤษฎีเกมและการเข้ารหัสเข้าด้วยกัน


4

Joe Halpern มีสไลด์ในหัวข้อนั้น http://games2009.dimi.uniud.it/Halpern.pdf

นี่คือการให้สิ่งจูงใจแก่บุคคลเพื่อให้พวกเขาปฏิบัติตามโปรโตคอล กลไกเหล่านั้นจำเป็นต้องมีเหตุผลของฝ่ายและข้อโต้แย้งจะขึ้นอยู่กับทฤษฎีเกม


1
นี่คือบทความที่เกี่ยวข้องกับสไลด์: theor.stanford.edu/~vteague/STOC04.pdf - วิธีนี้ไม่ได้บังคับให้คนทำตามโปรโตคอล แต่พยายามออกแบบโปรโตคอลเพื่อจูงใจบุคคลที่ต้องการ ทำเช่นนั้น แน่นอนว่าการทำเช่นนี้คุณจะต้องทำให้สมมติฐานบางอย่างเกี่ยวกับสิ่งที่ว่าคนที่ติดตามโปรโตคอลต้องการที่จะทำ ...
แอรอน Roth

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

@blackkettle: ผู้เล่นที่มีเหตุผลให้เกิดประโยชน์สูงสุด (ความคาดหวังของ) ฟังก์ชั่นยูทิลิตี้ สำหรับเหตุผลที่คุณชี้ให้เห็นก็คือการดิ้นรนเพื่อสร้างสัจพจน์ที่ถูกต้องที่สาธารณูปโภคต้องการเพื่อสนองความต้องการ แต่เราพยายามหาสัจพจน์น้อยที่สุดเสมอ หนังสือเศรษฐศาสตร์จุลภาคที่ดีเล่มใดจะมีรายละเอียดเกี่ยวกับปัญหานี้
Sasho Nikolov

@blackkettle: เกี่ยวกับกระดาษ Halpern: เขาสันนิษฐานว่าบุคคลในโปรโตคอล (การแบ่งปันความลับ) ต้องการทราบความลับที่ไม่รู้จักและชอบน้อยกว่าอีกฝ่ายมากกว่าที่รู้ถึงความลับ แนวคิดของความสมดุลที่เขาใช้คือสมดุลของแนชกับกลยุทธ์ที่ยังไม่ได้ใช้ (เช่นผู้เล่นจะไม่เล่นกลยุทธ์หากผู้เล่นคนอื่นมักจะดีอย่างน้อยเสมอเช่นกันตราบใดที่ผู้เล่นคนอื่นไม่เปลี่ยนกลยุทธ์และกลยุทธ์ปัจจุบันของเธอ ยิ่งกว่าสิ่งอื่นใดเธอก็ไม่ยอมเปลี่ยนแปลงเลย)
Sasho Nikolov
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.