ธุรกรรม Solana การเดินทางการส่งมอบจากผู้ใช้ไปยังการรวมบล็อกอาจเป็นเรื่องที่ลำบาก แม้ว่าธุรกรรมจะได้รับการยอมรับจากผู้นำปัจจุบันแล้ว แต่ก็ต้องแข่งขันกับธุรกรรมอื่นๆ เพื่อใส่ในพื้นที่บล็อกที่จำกัด การรวมธุรกรรมในลักษณะแรกเข้าแรกออกส่งเสริมสแปมและอาจบล็อกการทำธุรกรรมมูลค่าสูงจากผู้ใช้ทั่วไป ในการแก้ปัญหานี้เราต้องการกลไกค่าธรรมเนียม
ค่าธรรมเนียมล้ำความสำคัญแก้ปัญหานี้ใช่ไหม? น่าเสียดายที่ไม่ใช่สำหรับผู้ใช้ส่วนใหญ่
ลองนึกภาพสถานการณ์นี้ คุณต้องการไปที่โรงภาพยนตร์ 100 ที่นั่งในเมืองของคุณ แต่โรงภาพยนตร์มีระบบตั๋วที่ผิดปกติ: พวกเขาไม่ได้เผยแพร่ราคาตั๋ว คุณต้องบอกพวกเขาว่าคุณยินดีจ่ายเท่าไหร่ (สมมติว่าเป็น $ 50) หากความต้องการสูงและคนอื่น ๆ อย่างน้อย 100 คนส่งราคาที่สูงขึ้นโชคยาก หากความต้องการต่ําคุณก็เข้ามา! จับ: คุณกําลังจ่าย $ 50 แม้ว่าโรงละครจะว่างเปล่า แต่ประสบการณ์การออกตั๋วไม่ได้จบเพียงแค่นั้น ระบบนี้มีความแปลกประหลาดอีกประการหนึ่ง: คุณต้องบอกโรงละครว่าคุณเต็มใจที่จะจ่ายก่อนที่คุณจะออกจากบ้าน เห็นได้ชัดว่าการรับตั๋วโรงละครในระบบนี้เป็นประสบการณ์ที่อาจเต็มไปด้วยบุคคลทั่วไป ในทางกลับกันบุคคลที่ร่ํารวยและมีความซับซ้อนสามารถประเมินราคาตั๋วได้อย่างแม่นยํา พวกเขาสามารถติดตั้งกล้องถัดจากโรงภาพยนตร์เพื่อตรวจสอบการจราจรแบบเรียลไทม์ พวกเขาสามารถใช้ทราฟฟิกนี้และรวบรวมข้อมูลในอดีตเพื่อประเมินความต้องการในวันที่กําหนด และพวกเขายังสามารถซื้อเฮลิคอปเตอร์เพื่อเดินทางไปยังโรงละครได้เร็วขึ้นหลังจากบอกโรงละครว่าพวกเขาเต็มใจที่จะจ่าย แม้ว่าจะเป็นไปได้ที่จะใช้ระบบตั๋วนี้อย่างมีประสิทธิภาพ แต่ประสบการณ์นั้นน่ากลัวสําหรับคนส่วนใหญ่ที่ต้องการไปที่โรงละคร เมื่อโรงละครแออัดคนเหล่านี้หลายคนอาจไม่สนใจที่จะพยายามไปเลย
อย่างไรก็ตามค่าธรรมจริย์ที่จำเป็นสำหรับค่าธรรมเนียมการทำธุรกรรมใน Solana ยากต่อการประเมินมันเปลี่ยนแปลงบ่อยมากในช่วงเวลาที่มีการแข่งขันสูง กระเป๋าเงินที่ใช้ค่าเฉลี่ยล่าสุดจะมีโอกาสประมาณค่าธรรมเนียมที่จำเป็นมากเกินไป ทำให้ผู้ใช้จ่ายมากเกินไปสำหรับการรวมธุรกรรม (และแม้ว่ามีค่าธรรมเนียมลำดับความสำคัญสูง ธุรกรรมอาจยังไม่ได้รวมอยู่เนื่องจากลักษณะของการผลิตบล็อกแบบหลายเธรดต่อเนื่อง) ทฤษฎีบอกว่าค่าธรรมเนียมลำดับควรจะจัดสรรพื้นที่บล็อกได้อย่างมีประสิทธิภาพ ในทางปฏิบัติแล้ว พวกเขาล้มเหลวอย่างสิ้นเชิง โชคดีที่ยังมีวิธีในการแก้ไขปัญหาเหล่านี้ซึ่งสุดท้ายก็ทำให้ธุรกรรมถูกกว่าพร้อมกับโอกาสที่ดีขึ้นสำหรับผู้ใช้ส่วนใหญ่ ก่อนที่จะลึกลงไปในการแก้ไขปัญหา ให้เราศึกษาคุณสมบัติบางประการของทรัพยากรที่เราพยายามจะจัดสรร: พื้นที่บล็อก
การทำธุรกรรมบน Solana ได้รับการตรวจสอบและดำเนินการโดยเครือข่ายการตรวจสอบที่มีลักษณะแยกตัวและทำงานบนพื้นที่ที่กระจายอย่างเด็กเล็ก ด้วยเหตุนี้ มีจำกัดของทรัพยากรคำนวณที่สามารถใช้ได้ต่อบล็อก ซึ่งถูกวัดในหน่วยคำนวณ (CUs) ที่สามารถใช้ได้ต่อบล็อก ขณะที่ความต้องการสำหรับพื้นที่บล็อกเพิ่มขึ้นเหนือกว่าทรัพยากรที่จำกัด ทรัพยากรนี้จะต้องถูกจัดสรรให้กับธุรกรรมที่แข่งขันกัน
ในบางทาง ตลาดสามารถจัดการกับการจัดส่วนพื้นที่บล็อกผ่านการกำหนดราคา; ธุรกรรมที่มีประโยชน์มากขึ้นสำหรับผู้ส่งตั้งใจจะพร้อมจ่ายราคาที่สูงกว่า อย่างไรก็ตาม กลไกนี้ไม่ทำงานเมื่อผู้ใช้ไม่ทราบราคาสำหรับพื้นที่บล็อก! ตามที่ได้รับการอภิปรายข้างต้น ค่าธรรมเนียมลำดับความสำคัญเพียงอย่างเดียวนำไปสู่ราคาธุรกรรมที่ยากต่อการประเมินสำหรับผู้ใช้ส่วนใหญ่และมีความมั่นใจในการรวมธุรกรรมที่ไม่ดี บล็อกเชนอื่น ๆ ได้แก้ปัญหานี้โดยการนำเข้ากลไกค่าธรรมเนียมการทำธุรกรรม (เช่นEIP-1559 in Ethereum, และค่าธรรมเนียมหลายมิติใน AvalancheและPenumbraกลไกค่าธรรมเนียมเหล่านี้นำมาใช้งานฐานรากที่ง่ายต่อการประมาณค่าธรรมเนียมที่ให้ความคาดเดาได้ “ค่าธรรมเนียมเข้า” สำหรับเครือข่าย; ค่าฐานเหล่านี้เป็นค่าธรรมเนียมที่ใกล้เคียงกับราคาจริงสำหรับการรวมธุรกรรม
ปัจจุบัน Solana ใช้กลไกค่าธรรมเนียมสองแบบ: ค่าธรรมเนียมพื้นฐานและค่าธรรมเนียมลําดับความสําคัญ เราสามารถคิดว่าค่าธรรมเนียมพื้นฐานเป็น "ค่าธรรมเนียมแรกเข้า" สําหรับการใช้เครือข่ายและค่าธรรมเนียมลําดับความสําคัญเป็นเคล็ดลับพิเศษเพื่อจูงใจให้ผู้ตรวจสอบความถูกต้องรวมธุรกรรมหนึ่งไว้เหนืออีกธุรกรรมหนึ่ง ค่าธรรมเนียมพื้นฐาน Solana คือ 5000 lamports คงที่ต่อลายเซ็น (โดยปกติหนึ่งรายการต่อธุรกรรม) ด้วยเหตุนี้ผู้ใช้ที่ส่งการโอนเงินอย่างง่ายจึงจ่ายค่าธรรมเนียมพื้นฐานเช่นเดียวกับผู้ใช้ที่เล่นเกมแบบ on-chain ที่มีการประมวลผลจํานวนมากและเป็นผู้ค้นหาที่พยายามคว้าโอกาส MEV ที่ซับซ้อน ดังนั้นค่าธรรมเนียมพื้นฐานปัจจุบันที่เรียกเก็บจึงไม่สามารถจับภาพการใช้ทรัพยากรของธุรกรรมได้อย่างถูกต้อง (และ "ภายนอก" ในทางเศรษฐศาสตร์) ส่งผลให้อาจเป็นไปได้ ใช้ไม่ดี blockspace.
ในตัวอย่างโรงละครของเรา ค่าฐานที่คงที่คล้ายกันจะเรียกราคาเดียวกันสำหรับผู้ชมซื้อที่นั่ง 1 ที่นั่งและซื้อที่นั่งทั้งหมด 100 ที่นั่ง
ค่าฐานควรเป็นฟังก์ชันของทรัพยากรที่ใช้ การบริโภคนี้ถูกวัดในหน่วยคำนวณ (CUs) แต่อาจรวมทรัพยากรอื่นๆ เช่นการเข้าถึงบัญชี เราต้องการผู้ใช้มีค่าใช้จ่ายที่เป็นนัยที่มีความคาดเดาได้มากขึ้น ที่ให้ด้วยค่าฐานที่เปลี่ยนไป ค่าธรรมเนียมเหล่านี้ยากต่อการตั้งค่าอย่างถูกต้อง (มีงานวิจัยทางวิชาการมากมายรวมถึงของเราเอง, การพยายามจะมีการแก้ปัญหานี้!) อย่างไรก็ตาม ผู้ใดที่เคยประสบกับธุรกรรมที่ล้มเหลวเนื่องจากการแอบแฝงของเครือข่ายจะทราบว่าค่าธรรมเนียมก็สำคัญเช่นกันเพื่อให้เครือข่ายเติบโต
ในที่สุดผู้ใช้จํานวนมากที่ต้องการส่งธุรกรรมไม่แน่ใจว่าจะจ่ายค่าธรรมเนียมลําดับความสําคัญอย่างไร ประเมินค่าสูงไปค่าธรรมเนียมเหล่านี้และพวกเขาจ่ายมากเกินไป ประเมินค่าธรรมเนียมเหล่านี้ต่ําเกินไปและไม่รวมธุรกรรม สําหรับค่าธรรมเนียมพื้นฐานในทางกลับกันผู้ใช้จ่ายค่าธรรมเนียมที่เผยแพร่ในปัจจุบัน เราต้องการค่าธรรมเนียมพื้นฐานเพื่อบันทึกต้นทุนที่แท้จริงของการรวมสําหรับธุรกรรมอย่างถูกต้อง ที่นี่เราถือว่าธุรกรรมทั้งหมดถึงตัวกําหนดเวลา แต่แข่งขันกันเพื่อบล็อกสเปซที่ จํากัด รวมถึงการประมวลผลและการเข้าถึงบัญชี ในช่วงที่มีความต้องการสูงไม่สามารถรวมธุรกรรมทั้งหมดได้ ในโพสต์นี้เราร่างขั้นตอนสู่กลไกค่าธรรมเนียมพื้นฐานแบบไดนามิกที่สามารถช่วยคลายการล็อกเครือข่ายและให้การรวมธุรกรรมที่คาดการณ์ได้มากขึ้น
ค่าธรรมเนียมลำดับความสำคัญอาจมองเป็นการชำระเงินสำหรับโอกาสที่เฉพาะเจาะจงที่ถูกจำกัดโดยบางสิ่งที่ไม่ใช่การบริโภคทรัพยากร ตัวอย่างเช่น ถ้าสองผู้ค้นหายื่นข้อมูลการทำธุรกรรมเพื่อทำลายหนี้เฉพาะ ก็มีโอกาสที่ทำได้เพียงหนึ่งข้อมูลการทำธุรกรรมนั้นสามารถดำเนินการได้เรียบร้อย ข้อมูลการทำธุรกรรมแรกในบล็อคที่ทำได้เรียบร้อยเท่านั้นที่ทำลายหนี้เฉพาะได้เรียบร้อย ดังนั้น ค่าธรรมเนียมลำดับความสำคัญ โดยปกติจะชำระเงินสำหรับการเรียงลำดับข้อมูลการทำธุรกรรมมากกว่าการรวมอย่างเดียว การใช้ค่าธรรมเนียมลำดับความสำคัญเพื่อจับโอกาส MEV นั้นอาจมีความแตกต่างจากโพสต์นี้—ดูMEV บน Solanaสำหรับการสนทนาเพิ่มเติม ในโพสต์นี้ เราเน้นที่ค่าธรรมเนียมหลักและการรวมธุรกรรม
ก่อนที่จะพูดถึงวิธีกําหนดค่าธรรมเนียมพื้นฐานเราจะพิจารณากลไกสมมติสําหรับการรวมบล็อก: นักออกแบบเครือข่ายรอบด้านเลือกธุรกรรมสําหรับแต่ละบล็อกที่เพิ่มสวัสดิการของผู้ใช้ (ยูทิลิตี้ทั้งหมดหรือ 'ความสุข' จากธุรกรรมที่รวมอยู่) ลบด้วยต้นทุนการใช้ทรัพยากรของเครือข่ายภายใต้ข้อ จํากัด การทําธุรกรรม (เช่นข้อ จํากัด ของสัญญาอัจฉริยะ ขีด จํากัด การคํานวณ ฯลฯ ) แน่นอนว่าสวัสดิการของผู้ใช้ไม่เป็นที่รู้จักและไม่สามารถวัดได้โดยนักออกแบบเครือข่ายในทางปฏิบัติและนักออกแบบเครือข่ายไม่ได้สร้างบล็อก อย่างไรก็ตามเราสามารถใช้ปัญหานี้เป็นเกณฑ์มาตรฐานทางจิตสําหรับบล็อก "ที่ดีที่สุด" ที่สร้างขึ้นจากธุรกรรมที่ไปถึงตัวกําหนดเวลา เป้าหมายของเราคือการออกแบบกลไกค่าธรรมเนียมที่ใกล้เคียงกับเกณฑ์มาตรฐานนี้
หากแม้ว่ากลไกการสร้างบล็อกที่ไม่มีอยู่จริงแล้วจะเป็นไปไม่ได้ แต่การพิจารณากลไกที่เทียบเท่าที่สามารถใช้ได้ในการปฏิบัติ เป็นไปได้ กลไกเทียบเท่านี้มุ่งหาทรัพยากรราคาที่ลดขยายระหว่างความเป็นอยู่ของเครือข่ายและผู้ใช้ของมัน การตั้งราคาทรัพยากรอย่างถูกต้องจะช่วยให้แรงจูงใจจัดเรียงให้ค่าใช้จ่ายของทรัพยากรในเครือข่ายสมดุลไปกับประโยชน์ที่ได้รับจากผู้ใช้และผู้ตรวจสอบ แม้ว่าเครือข่ายจะไม่ทราบว่าประโยชน์นี้คืออะไรและผู้ใช้ไม่ระบุมันอย่างชัดเจน ราคาเหล่านี้จึงทำให้บล็อกเป็น “ที่ดีที่สุด”เฉลี่ย ดังนั้น เราสามารถมุ่งเน้นเฉพาะการตั้งราคาเหล่านี้ได้อย่างเดียว (สำหรับรายละเอียดทางเทคนิคเพิ่มเติม ดูที่เอกสารนี้.)
แล้วเราจะกําหนดราคาเพื่อจูงใจบล็อกที่เหมาะสมที่สุดตามที่กล่าวไว้ข้างต้นได้อย่างไร? วิธีแรกอาจเป็นการเรียกเก็บเงินจํานวนคงที่ต่อหน่วยคํานวณที่ใช้โดยธุรกรรม น่าเสียดายที่วิธีนี้ใช้ไม่ได้ผล หากความต้องการต่ําราคาคงที่ต่อ CU นี้จะทําให้ผู้ใช้ไม่ส่งธุรกรรมและบล็อกอาจใกล้จะว่างเปล่า หากความต้องการสูงราคาคงที่นี้อาจต่ําเกินไปและจะไม่ทําอะไรเพื่อลดความแออัดของเครือข่ายหรือประมาณต้นทุนที่แท้จริงของการรวมธุรกรรม (เป้าหมายเดิมของเรา!) ดังนั้นเราจําเป็นต้องมีวิธีเพิ่มและลดค่าธรรมเนียมพื้นฐานตามความต้องการของเครือข่ายและวิธีประมาณการความต้องการนี้
ขั้นตอนถัดไปคือการเพิ่มคอนโทรลเลอร์ที่ปรับค่าธรรมเนียมต่อหน่วยคำนวณตามการใช้งานในอดีต ตัวอย่างเช่น หากมีเป้าหมายการใช้งานต่อบล็อก (เช่น การใช้งานที่เป็นไปได้สำหรับเชน) เราสามารถเพิ่มหรือลดค่าธรรมเนียมหลักตามการใช้งานหรือความต่างจากเป้าหมายนี้ มีกลไกมากมาย รวมถึงEIP-1559, ดำเนินการตามไอเดียนี้ เราอาจจะถูกกระตุ้นให้ปรับปรุงค่าธรรมเนียมฐานได้ในระดับบล็อกเดียวกันโดยใช้ความต้องการแบบเรียลไทม์ หรือเพื่อส่งเสริมให้แต่ละผู้นำเลือกมีกติกาในการปรับปรุงค่าธรรมเนียมของตนเอง อย่างไรก็ตามการเปลี่ยนแปลงเหล่านี้จะลดความคาดเดาได้ของค่าธรรมเนียมฐานซึ่งก็ถือเป็นการล้มเหลวของวัตถุประสงค์เดิมของกลไกค่าธรรมเนียมนี้ เลือกกลไกสุดท้ายก็จะกำหนดประสบการณ์ของผู้ใช้ในที่สุด
โชคดีที่ Solana มีเวลาบล็อกอย่างรวดเร็ว ทำให้สามารถใช้อัลกอริทึมที่โดดเด่นในการตั้งค่าค่าฐานได้อย่างมั่นใจ เช่น เราสามารถเพิ่มราคาอย่างรวดเร็วในช่วงเวลาที่มีความต้องการสูง (เช่น ทวีคราสอย่างสมบูรณ์ลดราคาสองเท่าสำหรับแต่ละบล็อกเต็ม) และจากนั้นลดราคาอย่างช้าๆเมื่อความต้องการลดลง ราคาก็ยังลดลงอย่างเหมาะสมอย่างรวดเร็วเนื่องจากเวลาบล็อกของ Solana สั้น ๆ วิธีการคิดอย่างอัจฉริยะ คือเมื่อทรัพยากรที่เฉพาะเจาะจงถูกใช้ให้ “เต็ม” ระบบก็เสียเรื่องอย่างมีน้ำหนักอย่างมากและได้รับข้อมูลน้อยกว่าเกี่ยวกับราคาที่เหมาะสม ประเภทอัลกอริทึมที่คล้ายกันถูกใช้ในการปฏิบัติในTCP การควบคุมการแอบอ่าน, ชั้นข้อมูลเชื่อมต่อของระบบสื่อสารไร้สาย, และ การปรับปรุงตลาด.
การสนทนาก่อนหน้านี้พิจารณาทรัพยากรร่วมที่ใช้ร่วมกันโดยธรรมดาโดยการใช้หน่วยคำนวณ (โกลบอล) อย่างไรก็ตามการเข้าถึงสถานะใน Solana มีผลต่อการใช้ทรัพยากรการทำธุรกรรมอย่างมากด้วย หากมีการเข้าถึงสถานะเดียวกันโดยการทำธุรกรรมมากมาย พวกเขาจะไม่สามารถทำงานขนานกันและดังนั้นจะลดประสิทธิภาพของเครือข่าย โดยธรรมชาติเราต้องการให้ธุรกรรมเหล่านี้จ่ายค่าธรรมเนียมฐานสูงขึ้นเพื่อกระตุ้นตลาดค่าธรรมเนียมต่อบัญชี (โลคัล) (คำถามเรื่องใครจะได้รับค่าธรรมเนียมเหล่านี้อยู่นอกขอบเขตของโพสต์นี้ จะพูดถึงมากขึ้นในอนาคต)
เป็นตัวอย่างที่แน่นอน ให้พิจารณาการ NFT drop ที่นิยม หากไม่มีตลาดค่าธรรมเนียมต่อบัญชี การ NFT drop นี้จะเพิ่มค่าธรรมเนียมหลักอย่างมีนัยสำคัญสำหรับธุรกรรมทั้งหมดที่เหลือ ด้วยค่าธรรมเนียมต่อบัญชี ค่าใช้จ่ายในการส่งธุรกรรมเพื่อเรียกร้อง NFT (และเข้าถึงส่วนนั้นของสถานะ) สามารถเพิ่มขึ้นในขณะที่ค่าธรรมเนียมสำหรับธุรกรรมอื่น ๆ (เช่นการเติมเงินประกันในสัญญากู้ยืม) ยังคงเป็นไปตามเดิม การออกแบบตลาดค่าธรรมเนียมต่อบัญชีแบบนี้กำลังได้รับการพิจารณาใน เอกสารดราฟการปรับปรุง Solana.
ค่าธรรมเนียมหลากมิติเหล่านี้ยังสามารถคำนึงถึงความสัมพันธ์ระหว่างสัญญาได้อีกด้วย เช่น หากการแลกเปลี่ยน cNFT สองแห่งซื้อขายคอลเล็กชันเดียวกันมากมาย สัญญาของพวกเขาต้องการเข้าถึงบัญชีเดียวกันมากมาย หากปริมาณการซื้อขายเพิ่มขึ้นอย่างมากสำหรับคอลเล็กชันที่เฉพาะเจาะจงบนหนึ่งในสลับนี้ ค่าธรรมเนียมฐานจะเพิ่มขึ้นสำหรับคอลเล็กชันนั้นบนสลับอีกอันหนึ่ง เนื่องจากค่าธรรมเนียมสำหรับบัญชีรากได้เพิ่มขึ้นสำหรับทั้งสอง ด้วยวิธีนี้ ค่าธรรมเนียมต่อบัญชี 'ท้องถิ่น' จะสัมพันธ์อย่างถูกต้องในทาง 'โลก' และค่าธรรมเนียมหลากมิติจะป้องกันการเล่นระบบโดยการปล่อยสัญญาหลายๆ สำหรับแอปพลิเคชันเดียวกัน
ในทางกลับกันหากสถานะของแอปพลิเคชันขนานกันค่าธรรมเนียมจะลดลง คุณสมบัตินี้เป็นที่ต้องการ การขนานจะเพิ่มปริมาณงานเนื่องจากช่วยให้ธุรกรรมต่างๆ ที่เข้าถึงแอปพลิเคชันเดียวกันสามารถวางบนเธรดที่แตกต่างกันได้เมื่อบัญชีอ้างอิงไม่ทับซ้อนกัน (ดู ไดอะแกรมของธุรกรรม Solanaไม่สามารถแปลข้อความ
ควบคุมราคาสำหรับตลาดค่าธรรมเนียมรายบัญชีท้องถิ่นเหล่านี้อาจแตกต่างจากที่ใช้สำหรับหน่วยคำนวณ บางทีเราอาจจะไม่เรียกเก็บค่าธรรมเนียมสำหรับบัญชีเลยจนกระทั่งสถานะถูกโต้แย้งอย่างมีนัย ณ จุดนั้นค่าธรรมเนียมจะเพิ่มขึ้นอย่างรวดเร็ว การวิเคราะห์ช่วงเวลาที่แออัดเกิดขึ้นในอดีตสามารถช่วยกำหนดให้เราตัดสินใจออกแบบเหล่านี้ได้
ตัวเลือกที่ถูกพูดถึงข้างต้นไม่ใช่วิธีเดียวที่ใช้ในการตั้งค่าค่าธรรมเนียม กลไกค่าธรรมเนียมฐานส่วนใหญ่จะปฏิบัติตามขั้นตอนที่เป็นการทำซ้ำๆ โดยประมาณทุกบล็อก...
ในตัวอย่างที่ได้กล่าวถึงข้างต้นเราใช้ตัวเลือกที่แตกต่างกันสำหรับทรัพยากรในขั้นตอนที่ 1 และกลไกการอัปเดตในขั้นตอนที่ 2 และ 3 วิธีการที่ใช้ให้การใช้ทรัพยากรกลายเป็นกฎการอัปเดตค่าบริการที่แน่นอนถูกพูดถึงในเอกสารนี้.
ในขณะที่งานวิชาการของเราส่วนใหญ่เป็นทฤษฎีตัวอย่างของเล่นง่ายๆแสดงให้เห็นว่าทรัพยากรการกําหนดราคาเช่นบัญชีแยกต่างหากสามารถเพิ่มประสิทธิภาพเครือข่ายและทําให้เครือข่ายแข็งแกร่งขึ้นสําหรับการโจมตี DoS หรือการเปลี่ยนแปลงประเภทของธุรกรรมที่ส่ง ในส่วนนี้เราเน้นความแตกต่างระหว่างกลไกค่าธรรมเนียมมิติเดียวและหลายมิติอย่างง่าย (ดูส่วนที่ 4 ของ เอกสารของเราสำหรับรายละเอียด)
เราจะจำลองพฤติกรรมในสถานะที่มั่นคงของกลไกค่าธรรมเนียมหลายมิติด้วยธุรกรรมที่ต้องใช้ทรัพยากร 1 และทรัพยากร 2 อย่างใกล้เคียงกัน ภายใต้พฤติกรรมที่มั่นคง การกำหนดราคาแบบเดียวกันทำให้การเบี่ยงเบนจากเป้าหมายการใช้ทรัพยากรมากขึ้น (ซ้าย) การใช้ทรัพยากรที่ไม่มีประสิทธิภาพน้อยลงทำให้ประสิทธิภาพในการทำงานลดลง (ขวา)
เรายังทดสอบพฤติกรรมของกลไกภายใต้การเปลี่ยนแปลงในการกระจาย: เราเพิ่ม 150 ธุรกรรมในบล็อกที่ 10 ซึ่งต้องการปริมาณทรัพยากรมาก 2 กรณีนี้อาจเกิดขึ้นในการสร้าง NFT ตัวอย่าง Multidimensional pricing ทำให้ประสิทธิภาพสูงขึ้นอย่างมีนัยยะเมื่อการกระจายเปลี่ยนไปโดยการปรับราคาทรัพยากรไปตามราคาทรัพยากร (ขวา)
เมื่อมองไปที่การใช้งานทรัพยากรของแต่ละรายการ เราพบว่าการกำหนดราคาแบบหลายมิติ (ด้านซ้าย) ช่วยให้มีความสามารถในการระบายพลังงานชั่วระยะ ในขณะที่การกำหนดราคาแบบเดียวกัน (ด้านขวา) ไม่ทำให้เกิดเหตุการณ์ดังกล่าว
บล็อกเชนมีทรัพยากรคำนวณจำนวนจำกัด ในกรณีที่ความต้องการของผู้ใช้สูง จะต้องการจัดสรรทรัพยากรจำนวนจำกัดเหล่านี้ในการแข่งขันกับธุรกรรมของผู้ใช้โดยที่เป็นไปได้ การจัดสรรนี้ควรทำโดยอัตโนมัติผ่านค่าธรรมเนียมฐานของธุรกรรมที่เปลี่ยนไป
เราขอเสนอกลไกที่มีพื้นฐานทฤษฎีในการกำหนดค่าธรรมเนียมนี้ ซึ่งไม่เพียงสามารถเพิ่มประสิทธิภาพของเครือข่ายในช่วงเวลาที่มีความต้องการสูงเท่านั้น แต่ยังสามารถเพิ่มประสบการณ์ของผู้ใช้โดยการแยกการทำธุรกรรมที่ไม่เกี่ยวข้องและให้ค่าใช้จ่ายที่คงที่สำหรับการรวมธุรกรรม สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับกลไก โปรดตรวจสอบที่การพูดของ Tarun ที่ Breakpoint และ กระดาษของเรา!
บทความนี้ถูกพิมพ์ใหม่จาก [umbraresearchนำต้นฉบับของชื่อเรื่อง 'ไปสู่ค่าธรรมจริยา Solana มิติหลากหลาย' ของเรื่องลิขสิทธิ์ทั้งหมดเป็นของผู้เขียนต้นฉบับ@theo_diamandis、@tarunchitra、@0xShitTrader]. If there are objections to this reprint, please contact the Gate Learnทีม และพวกเขาจะดำเนินการโดยเร็ว
คำปฏิเสธความรับผิด: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นเพียงของผู้เขียนเท่านั้น และไม่เป็นที่ปรึกษาด้านการลงทุนใดๆ
การแปลบทความเป็นภาษาอื่นๆ ได้รับการดำเนินการโดยทีม Gate Learn หากไม่ได้กล่าวถึง การคัดลอก การกระจาย หรือการลอกเลียนบทความที่ถูกแปลนั้นถูกห้าม
ธุรกรรม Solana การเดินทางการส่งมอบจากผู้ใช้ไปยังการรวมบล็อกอาจเป็นเรื่องที่ลำบาก แม้ว่าธุรกรรมจะได้รับการยอมรับจากผู้นำปัจจุบันแล้ว แต่ก็ต้องแข่งขันกับธุรกรรมอื่นๆ เพื่อใส่ในพื้นที่บล็อกที่จำกัด การรวมธุรกรรมในลักษณะแรกเข้าแรกออกส่งเสริมสแปมและอาจบล็อกการทำธุรกรรมมูลค่าสูงจากผู้ใช้ทั่วไป ในการแก้ปัญหานี้เราต้องการกลไกค่าธรรมเนียม
ค่าธรรมเนียมล้ำความสำคัญแก้ปัญหานี้ใช่ไหม? น่าเสียดายที่ไม่ใช่สำหรับผู้ใช้ส่วนใหญ่
ลองนึกภาพสถานการณ์นี้ คุณต้องการไปที่โรงภาพยนตร์ 100 ที่นั่งในเมืองของคุณ แต่โรงภาพยนตร์มีระบบตั๋วที่ผิดปกติ: พวกเขาไม่ได้เผยแพร่ราคาตั๋ว คุณต้องบอกพวกเขาว่าคุณยินดีจ่ายเท่าไหร่ (สมมติว่าเป็น $ 50) หากความต้องการสูงและคนอื่น ๆ อย่างน้อย 100 คนส่งราคาที่สูงขึ้นโชคยาก หากความต้องการต่ําคุณก็เข้ามา! จับ: คุณกําลังจ่าย $ 50 แม้ว่าโรงละครจะว่างเปล่า แต่ประสบการณ์การออกตั๋วไม่ได้จบเพียงแค่นั้น ระบบนี้มีความแปลกประหลาดอีกประการหนึ่ง: คุณต้องบอกโรงละครว่าคุณเต็มใจที่จะจ่ายก่อนที่คุณจะออกจากบ้าน เห็นได้ชัดว่าการรับตั๋วโรงละครในระบบนี้เป็นประสบการณ์ที่อาจเต็มไปด้วยบุคคลทั่วไป ในทางกลับกันบุคคลที่ร่ํารวยและมีความซับซ้อนสามารถประเมินราคาตั๋วได้อย่างแม่นยํา พวกเขาสามารถติดตั้งกล้องถัดจากโรงภาพยนตร์เพื่อตรวจสอบการจราจรแบบเรียลไทม์ พวกเขาสามารถใช้ทราฟฟิกนี้และรวบรวมข้อมูลในอดีตเพื่อประเมินความต้องการในวันที่กําหนด และพวกเขายังสามารถซื้อเฮลิคอปเตอร์เพื่อเดินทางไปยังโรงละครได้เร็วขึ้นหลังจากบอกโรงละครว่าพวกเขาเต็มใจที่จะจ่าย แม้ว่าจะเป็นไปได้ที่จะใช้ระบบตั๋วนี้อย่างมีประสิทธิภาพ แต่ประสบการณ์นั้นน่ากลัวสําหรับคนส่วนใหญ่ที่ต้องการไปที่โรงละคร เมื่อโรงละครแออัดคนเหล่านี้หลายคนอาจไม่สนใจที่จะพยายามไปเลย
อย่างไรก็ตามค่าธรรมจริย์ที่จำเป็นสำหรับค่าธรรมเนียมการทำธุรกรรมใน Solana ยากต่อการประเมินมันเปลี่ยนแปลงบ่อยมากในช่วงเวลาที่มีการแข่งขันสูง กระเป๋าเงินที่ใช้ค่าเฉลี่ยล่าสุดจะมีโอกาสประมาณค่าธรรมเนียมที่จำเป็นมากเกินไป ทำให้ผู้ใช้จ่ายมากเกินไปสำหรับการรวมธุรกรรม (และแม้ว่ามีค่าธรรมเนียมลำดับความสำคัญสูง ธุรกรรมอาจยังไม่ได้รวมอยู่เนื่องจากลักษณะของการผลิตบล็อกแบบหลายเธรดต่อเนื่อง) ทฤษฎีบอกว่าค่าธรรมเนียมลำดับควรจะจัดสรรพื้นที่บล็อกได้อย่างมีประสิทธิภาพ ในทางปฏิบัติแล้ว พวกเขาล้มเหลวอย่างสิ้นเชิง โชคดีที่ยังมีวิธีในการแก้ไขปัญหาเหล่านี้ซึ่งสุดท้ายก็ทำให้ธุรกรรมถูกกว่าพร้อมกับโอกาสที่ดีขึ้นสำหรับผู้ใช้ส่วนใหญ่ ก่อนที่จะลึกลงไปในการแก้ไขปัญหา ให้เราศึกษาคุณสมบัติบางประการของทรัพยากรที่เราพยายามจะจัดสรร: พื้นที่บล็อก
การทำธุรกรรมบน Solana ได้รับการตรวจสอบและดำเนินการโดยเครือข่ายการตรวจสอบที่มีลักษณะแยกตัวและทำงานบนพื้นที่ที่กระจายอย่างเด็กเล็ก ด้วยเหตุนี้ มีจำกัดของทรัพยากรคำนวณที่สามารถใช้ได้ต่อบล็อก ซึ่งถูกวัดในหน่วยคำนวณ (CUs) ที่สามารถใช้ได้ต่อบล็อก ขณะที่ความต้องการสำหรับพื้นที่บล็อกเพิ่มขึ้นเหนือกว่าทรัพยากรที่จำกัด ทรัพยากรนี้จะต้องถูกจัดสรรให้กับธุรกรรมที่แข่งขันกัน
ในบางทาง ตลาดสามารถจัดการกับการจัดส่วนพื้นที่บล็อกผ่านการกำหนดราคา; ธุรกรรมที่มีประโยชน์มากขึ้นสำหรับผู้ส่งตั้งใจจะพร้อมจ่ายราคาที่สูงกว่า อย่างไรก็ตาม กลไกนี้ไม่ทำงานเมื่อผู้ใช้ไม่ทราบราคาสำหรับพื้นที่บล็อก! ตามที่ได้รับการอภิปรายข้างต้น ค่าธรรมเนียมลำดับความสำคัญเพียงอย่างเดียวนำไปสู่ราคาธุรกรรมที่ยากต่อการประเมินสำหรับผู้ใช้ส่วนใหญ่และมีความมั่นใจในการรวมธุรกรรมที่ไม่ดี บล็อกเชนอื่น ๆ ได้แก้ปัญหานี้โดยการนำเข้ากลไกค่าธรรมเนียมการทำธุรกรรม (เช่นEIP-1559 in Ethereum, และค่าธรรมเนียมหลายมิติใน AvalancheและPenumbraกลไกค่าธรรมเนียมเหล่านี้นำมาใช้งานฐานรากที่ง่ายต่อการประมาณค่าธรรมเนียมที่ให้ความคาดเดาได้ “ค่าธรรมเนียมเข้า” สำหรับเครือข่าย; ค่าฐานเหล่านี้เป็นค่าธรรมเนียมที่ใกล้เคียงกับราคาจริงสำหรับการรวมธุรกรรม
ปัจจุบัน Solana ใช้กลไกค่าธรรมเนียมสองแบบ: ค่าธรรมเนียมพื้นฐานและค่าธรรมเนียมลําดับความสําคัญ เราสามารถคิดว่าค่าธรรมเนียมพื้นฐานเป็น "ค่าธรรมเนียมแรกเข้า" สําหรับการใช้เครือข่ายและค่าธรรมเนียมลําดับความสําคัญเป็นเคล็ดลับพิเศษเพื่อจูงใจให้ผู้ตรวจสอบความถูกต้องรวมธุรกรรมหนึ่งไว้เหนืออีกธุรกรรมหนึ่ง ค่าธรรมเนียมพื้นฐาน Solana คือ 5000 lamports คงที่ต่อลายเซ็น (โดยปกติหนึ่งรายการต่อธุรกรรม) ด้วยเหตุนี้ผู้ใช้ที่ส่งการโอนเงินอย่างง่ายจึงจ่ายค่าธรรมเนียมพื้นฐานเช่นเดียวกับผู้ใช้ที่เล่นเกมแบบ on-chain ที่มีการประมวลผลจํานวนมากและเป็นผู้ค้นหาที่พยายามคว้าโอกาส MEV ที่ซับซ้อน ดังนั้นค่าธรรมเนียมพื้นฐานปัจจุบันที่เรียกเก็บจึงไม่สามารถจับภาพการใช้ทรัพยากรของธุรกรรมได้อย่างถูกต้อง (และ "ภายนอก" ในทางเศรษฐศาสตร์) ส่งผลให้อาจเป็นไปได้ ใช้ไม่ดี blockspace.
ในตัวอย่างโรงละครของเรา ค่าฐานที่คงที่คล้ายกันจะเรียกราคาเดียวกันสำหรับผู้ชมซื้อที่นั่ง 1 ที่นั่งและซื้อที่นั่งทั้งหมด 100 ที่นั่ง
ค่าฐานควรเป็นฟังก์ชันของทรัพยากรที่ใช้ การบริโภคนี้ถูกวัดในหน่วยคำนวณ (CUs) แต่อาจรวมทรัพยากรอื่นๆ เช่นการเข้าถึงบัญชี เราต้องการผู้ใช้มีค่าใช้จ่ายที่เป็นนัยที่มีความคาดเดาได้มากขึ้น ที่ให้ด้วยค่าฐานที่เปลี่ยนไป ค่าธรรมเนียมเหล่านี้ยากต่อการตั้งค่าอย่างถูกต้อง (มีงานวิจัยทางวิชาการมากมายรวมถึงของเราเอง, การพยายามจะมีการแก้ปัญหานี้!) อย่างไรก็ตาม ผู้ใดที่เคยประสบกับธุรกรรมที่ล้มเหลวเนื่องจากการแอบแฝงของเครือข่ายจะทราบว่าค่าธรรมเนียมก็สำคัญเช่นกันเพื่อให้เครือข่ายเติบโต
ในที่สุดผู้ใช้จํานวนมากที่ต้องการส่งธุรกรรมไม่แน่ใจว่าจะจ่ายค่าธรรมเนียมลําดับความสําคัญอย่างไร ประเมินค่าสูงไปค่าธรรมเนียมเหล่านี้และพวกเขาจ่ายมากเกินไป ประเมินค่าธรรมเนียมเหล่านี้ต่ําเกินไปและไม่รวมธุรกรรม สําหรับค่าธรรมเนียมพื้นฐานในทางกลับกันผู้ใช้จ่ายค่าธรรมเนียมที่เผยแพร่ในปัจจุบัน เราต้องการค่าธรรมเนียมพื้นฐานเพื่อบันทึกต้นทุนที่แท้จริงของการรวมสําหรับธุรกรรมอย่างถูกต้อง ที่นี่เราถือว่าธุรกรรมทั้งหมดถึงตัวกําหนดเวลา แต่แข่งขันกันเพื่อบล็อกสเปซที่ จํากัด รวมถึงการประมวลผลและการเข้าถึงบัญชี ในช่วงที่มีความต้องการสูงไม่สามารถรวมธุรกรรมทั้งหมดได้ ในโพสต์นี้เราร่างขั้นตอนสู่กลไกค่าธรรมเนียมพื้นฐานแบบไดนามิกที่สามารถช่วยคลายการล็อกเครือข่ายและให้การรวมธุรกรรมที่คาดการณ์ได้มากขึ้น
ค่าธรรมเนียมลำดับความสำคัญอาจมองเป็นการชำระเงินสำหรับโอกาสที่เฉพาะเจาะจงที่ถูกจำกัดโดยบางสิ่งที่ไม่ใช่การบริโภคทรัพยากร ตัวอย่างเช่น ถ้าสองผู้ค้นหายื่นข้อมูลการทำธุรกรรมเพื่อทำลายหนี้เฉพาะ ก็มีโอกาสที่ทำได้เพียงหนึ่งข้อมูลการทำธุรกรรมนั้นสามารถดำเนินการได้เรียบร้อย ข้อมูลการทำธุรกรรมแรกในบล็อคที่ทำได้เรียบร้อยเท่านั้นที่ทำลายหนี้เฉพาะได้เรียบร้อย ดังนั้น ค่าธรรมเนียมลำดับความสำคัญ โดยปกติจะชำระเงินสำหรับการเรียงลำดับข้อมูลการทำธุรกรรมมากกว่าการรวมอย่างเดียว การใช้ค่าธรรมเนียมลำดับความสำคัญเพื่อจับโอกาส MEV นั้นอาจมีความแตกต่างจากโพสต์นี้—ดูMEV บน Solanaสำหรับการสนทนาเพิ่มเติม ในโพสต์นี้ เราเน้นที่ค่าธรรมเนียมหลักและการรวมธุรกรรม
ก่อนที่จะพูดถึงวิธีกําหนดค่าธรรมเนียมพื้นฐานเราจะพิจารณากลไกสมมติสําหรับการรวมบล็อก: นักออกแบบเครือข่ายรอบด้านเลือกธุรกรรมสําหรับแต่ละบล็อกที่เพิ่มสวัสดิการของผู้ใช้ (ยูทิลิตี้ทั้งหมดหรือ 'ความสุข' จากธุรกรรมที่รวมอยู่) ลบด้วยต้นทุนการใช้ทรัพยากรของเครือข่ายภายใต้ข้อ จํากัด การทําธุรกรรม (เช่นข้อ จํากัด ของสัญญาอัจฉริยะ ขีด จํากัด การคํานวณ ฯลฯ ) แน่นอนว่าสวัสดิการของผู้ใช้ไม่เป็นที่รู้จักและไม่สามารถวัดได้โดยนักออกแบบเครือข่ายในทางปฏิบัติและนักออกแบบเครือข่ายไม่ได้สร้างบล็อก อย่างไรก็ตามเราสามารถใช้ปัญหานี้เป็นเกณฑ์มาตรฐานทางจิตสําหรับบล็อก "ที่ดีที่สุด" ที่สร้างขึ้นจากธุรกรรมที่ไปถึงตัวกําหนดเวลา เป้าหมายของเราคือการออกแบบกลไกค่าธรรมเนียมที่ใกล้เคียงกับเกณฑ์มาตรฐานนี้
หากแม้ว่ากลไกการสร้างบล็อกที่ไม่มีอยู่จริงแล้วจะเป็นไปไม่ได้ แต่การพิจารณากลไกที่เทียบเท่าที่สามารถใช้ได้ในการปฏิบัติ เป็นไปได้ กลไกเทียบเท่านี้มุ่งหาทรัพยากรราคาที่ลดขยายระหว่างความเป็นอยู่ของเครือข่ายและผู้ใช้ของมัน การตั้งราคาทรัพยากรอย่างถูกต้องจะช่วยให้แรงจูงใจจัดเรียงให้ค่าใช้จ่ายของทรัพยากรในเครือข่ายสมดุลไปกับประโยชน์ที่ได้รับจากผู้ใช้และผู้ตรวจสอบ แม้ว่าเครือข่ายจะไม่ทราบว่าประโยชน์นี้คืออะไรและผู้ใช้ไม่ระบุมันอย่างชัดเจน ราคาเหล่านี้จึงทำให้บล็อกเป็น “ที่ดีที่สุด”เฉลี่ย ดังนั้น เราสามารถมุ่งเน้นเฉพาะการตั้งราคาเหล่านี้ได้อย่างเดียว (สำหรับรายละเอียดทางเทคนิคเพิ่มเติม ดูที่เอกสารนี้.)
แล้วเราจะกําหนดราคาเพื่อจูงใจบล็อกที่เหมาะสมที่สุดตามที่กล่าวไว้ข้างต้นได้อย่างไร? วิธีแรกอาจเป็นการเรียกเก็บเงินจํานวนคงที่ต่อหน่วยคํานวณที่ใช้โดยธุรกรรม น่าเสียดายที่วิธีนี้ใช้ไม่ได้ผล หากความต้องการต่ําราคาคงที่ต่อ CU นี้จะทําให้ผู้ใช้ไม่ส่งธุรกรรมและบล็อกอาจใกล้จะว่างเปล่า หากความต้องการสูงราคาคงที่นี้อาจต่ําเกินไปและจะไม่ทําอะไรเพื่อลดความแออัดของเครือข่ายหรือประมาณต้นทุนที่แท้จริงของการรวมธุรกรรม (เป้าหมายเดิมของเรา!) ดังนั้นเราจําเป็นต้องมีวิธีเพิ่มและลดค่าธรรมเนียมพื้นฐานตามความต้องการของเครือข่ายและวิธีประมาณการความต้องการนี้
ขั้นตอนถัดไปคือการเพิ่มคอนโทรลเลอร์ที่ปรับค่าธรรมเนียมต่อหน่วยคำนวณตามการใช้งานในอดีต ตัวอย่างเช่น หากมีเป้าหมายการใช้งานต่อบล็อก (เช่น การใช้งานที่เป็นไปได้สำหรับเชน) เราสามารถเพิ่มหรือลดค่าธรรมเนียมหลักตามการใช้งานหรือความต่างจากเป้าหมายนี้ มีกลไกมากมาย รวมถึงEIP-1559, ดำเนินการตามไอเดียนี้ เราอาจจะถูกกระตุ้นให้ปรับปรุงค่าธรรมเนียมฐานได้ในระดับบล็อกเดียวกันโดยใช้ความต้องการแบบเรียลไทม์ หรือเพื่อส่งเสริมให้แต่ละผู้นำเลือกมีกติกาในการปรับปรุงค่าธรรมเนียมของตนเอง อย่างไรก็ตามการเปลี่ยนแปลงเหล่านี้จะลดความคาดเดาได้ของค่าธรรมเนียมฐานซึ่งก็ถือเป็นการล้มเหลวของวัตถุประสงค์เดิมของกลไกค่าธรรมเนียมนี้ เลือกกลไกสุดท้ายก็จะกำหนดประสบการณ์ของผู้ใช้ในที่สุด
โชคดีที่ Solana มีเวลาบล็อกอย่างรวดเร็ว ทำให้สามารถใช้อัลกอริทึมที่โดดเด่นในการตั้งค่าค่าฐานได้อย่างมั่นใจ เช่น เราสามารถเพิ่มราคาอย่างรวดเร็วในช่วงเวลาที่มีความต้องการสูง (เช่น ทวีคราสอย่างสมบูรณ์ลดราคาสองเท่าสำหรับแต่ละบล็อกเต็ม) และจากนั้นลดราคาอย่างช้าๆเมื่อความต้องการลดลง ราคาก็ยังลดลงอย่างเหมาะสมอย่างรวดเร็วเนื่องจากเวลาบล็อกของ Solana สั้น ๆ วิธีการคิดอย่างอัจฉริยะ คือเมื่อทรัพยากรที่เฉพาะเจาะจงถูกใช้ให้ “เต็ม” ระบบก็เสียเรื่องอย่างมีน้ำหนักอย่างมากและได้รับข้อมูลน้อยกว่าเกี่ยวกับราคาที่เหมาะสม ประเภทอัลกอริทึมที่คล้ายกันถูกใช้ในการปฏิบัติในTCP การควบคุมการแอบอ่าน, ชั้นข้อมูลเชื่อมต่อของระบบสื่อสารไร้สาย, และ การปรับปรุงตลาด.
การสนทนาก่อนหน้านี้พิจารณาทรัพยากรร่วมที่ใช้ร่วมกันโดยธรรมดาโดยการใช้หน่วยคำนวณ (โกลบอล) อย่างไรก็ตามการเข้าถึงสถานะใน Solana มีผลต่อการใช้ทรัพยากรการทำธุรกรรมอย่างมากด้วย หากมีการเข้าถึงสถานะเดียวกันโดยการทำธุรกรรมมากมาย พวกเขาจะไม่สามารถทำงานขนานกันและดังนั้นจะลดประสิทธิภาพของเครือข่าย โดยธรรมชาติเราต้องการให้ธุรกรรมเหล่านี้จ่ายค่าธรรมเนียมฐานสูงขึ้นเพื่อกระตุ้นตลาดค่าธรรมเนียมต่อบัญชี (โลคัล) (คำถามเรื่องใครจะได้รับค่าธรรมเนียมเหล่านี้อยู่นอกขอบเขตของโพสต์นี้ จะพูดถึงมากขึ้นในอนาคต)
เป็นตัวอย่างที่แน่นอน ให้พิจารณาการ NFT drop ที่นิยม หากไม่มีตลาดค่าธรรมเนียมต่อบัญชี การ NFT drop นี้จะเพิ่มค่าธรรมเนียมหลักอย่างมีนัยสำคัญสำหรับธุรกรรมทั้งหมดที่เหลือ ด้วยค่าธรรมเนียมต่อบัญชี ค่าใช้จ่ายในการส่งธุรกรรมเพื่อเรียกร้อง NFT (และเข้าถึงส่วนนั้นของสถานะ) สามารถเพิ่มขึ้นในขณะที่ค่าธรรมเนียมสำหรับธุรกรรมอื่น ๆ (เช่นการเติมเงินประกันในสัญญากู้ยืม) ยังคงเป็นไปตามเดิม การออกแบบตลาดค่าธรรมเนียมต่อบัญชีแบบนี้กำลังได้รับการพิจารณาใน เอกสารดราฟการปรับปรุง Solana.
ค่าธรรมเนียมหลากมิติเหล่านี้ยังสามารถคำนึงถึงความสัมพันธ์ระหว่างสัญญาได้อีกด้วย เช่น หากการแลกเปลี่ยน cNFT สองแห่งซื้อขายคอลเล็กชันเดียวกันมากมาย สัญญาของพวกเขาต้องการเข้าถึงบัญชีเดียวกันมากมาย หากปริมาณการซื้อขายเพิ่มขึ้นอย่างมากสำหรับคอลเล็กชันที่เฉพาะเจาะจงบนหนึ่งในสลับนี้ ค่าธรรมเนียมฐานจะเพิ่มขึ้นสำหรับคอลเล็กชันนั้นบนสลับอีกอันหนึ่ง เนื่องจากค่าธรรมเนียมสำหรับบัญชีรากได้เพิ่มขึ้นสำหรับทั้งสอง ด้วยวิธีนี้ ค่าธรรมเนียมต่อบัญชี 'ท้องถิ่น' จะสัมพันธ์อย่างถูกต้องในทาง 'โลก' และค่าธรรมเนียมหลากมิติจะป้องกันการเล่นระบบโดยการปล่อยสัญญาหลายๆ สำหรับแอปพลิเคชันเดียวกัน
ในทางกลับกันหากสถานะของแอปพลิเคชันขนานกันค่าธรรมเนียมจะลดลง คุณสมบัตินี้เป็นที่ต้องการ การขนานจะเพิ่มปริมาณงานเนื่องจากช่วยให้ธุรกรรมต่างๆ ที่เข้าถึงแอปพลิเคชันเดียวกันสามารถวางบนเธรดที่แตกต่างกันได้เมื่อบัญชีอ้างอิงไม่ทับซ้อนกัน (ดู ไดอะแกรมของธุรกรรม Solanaไม่สามารถแปลข้อความ
ควบคุมราคาสำหรับตลาดค่าธรรมเนียมรายบัญชีท้องถิ่นเหล่านี้อาจแตกต่างจากที่ใช้สำหรับหน่วยคำนวณ บางทีเราอาจจะไม่เรียกเก็บค่าธรรมเนียมสำหรับบัญชีเลยจนกระทั่งสถานะถูกโต้แย้งอย่างมีนัย ณ จุดนั้นค่าธรรมเนียมจะเพิ่มขึ้นอย่างรวดเร็ว การวิเคราะห์ช่วงเวลาที่แออัดเกิดขึ้นในอดีตสามารถช่วยกำหนดให้เราตัดสินใจออกแบบเหล่านี้ได้
ตัวเลือกที่ถูกพูดถึงข้างต้นไม่ใช่วิธีเดียวที่ใช้ในการตั้งค่าค่าธรรมเนียม กลไกค่าธรรมเนียมฐานส่วนใหญ่จะปฏิบัติตามขั้นตอนที่เป็นการทำซ้ำๆ โดยประมาณทุกบล็อก...
ในตัวอย่างที่ได้กล่าวถึงข้างต้นเราใช้ตัวเลือกที่แตกต่างกันสำหรับทรัพยากรในขั้นตอนที่ 1 และกลไกการอัปเดตในขั้นตอนที่ 2 และ 3 วิธีการที่ใช้ให้การใช้ทรัพยากรกลายเป็นกฎการอัปเดตค่าบริการที่แน่นอนถูกพูดถึงในเอกสารนี้.
ในขณะที่งานวิชาการของเราส่วนใหญ่เป็นทฤษฎีตัวอย่างของเล่นง่ายๆแสดงให้เห็นว่าทรัพยากรการกําหนดราคาเช่นบัญชีแยกต่างหากสามารถเพิ่มประสิทธิภาพเครือข่ายและทําให้เครือข่ายแข็งแกร่งขึ้นสําหรับการโจมตี DoS หรือการเปลี่ยนแปลงประเภทของธุรกรรมที่ส่ง ในส่วนนี้เราเน้นความแตกต่างระหว่างกลไกค่าธรรมเนียมมิติเดียวและหลายมิติอย่างง่าย (ดูส่วนที่ 4 ของ เอกสารของเราสำหรับรายละเอียด)
เราจะจำลองพฤติกรรมในสถานะที่มั่นคงของกลไกค่าธรรมเนียมหลายมิติด้วยธุรกรรมที่ต้องใช้ทรัพยากร 1 และทรัพยากร 2 อย่างใกล้เคียงกัน ภายใต้พฤติกรรมที่มั่นคง การกำหนดราคาแบบเดียวกันทำให้การเบี่ยงเบนจากเป้าหมายการใช้ทรัพยากรมากขึ้น (ซ้าย) การใช้ทรัพยากรที่ไม่มีประสิทธิภาพน้อยลงทำให้ประสิทธิภาพในการทำงานลดลง (ขวา)
เรายังทดสอบพฤติกรรมของกลไกภายใต้การเปลี่ยนแปลงในการกระจาย: เราเพิ่ม 150 ธุรกรรมในบล็อกที่ 10 ซึ่งต้องการปริมาณทรัพยากรมาก 2 กรณีนี้อาจเกิดขึ้นในการสร้าง NFT ตัวอย่าง Multidimensional pricing ทำให้ประสิทธิภาพสูงขึ้นอย่างมีนัยยะเมื่อการกระจายเปลี่ยนไปโดยการปรับราคาทรัพยากรไปตามราคาทรัพยากร (ขวา)
เมื่อมองไปที่การใช้งานทรัพยากรของแต่ละรายการ เราพบว่าการกำหนดราคาแบบหลายมิติ (ด้านซ้าย) ช่วยให้มีความสามารถในการระบายพลังงานชั่วระยะ ในขณะที่การกำหนดราคาแบบเดียวกัน (ด้านขวา) ไม่ทำให้เกิดเหตุการณ์ดังกล่าว
บล็อกเชนมีทรัพยากรคำนวณจำนวนจำกัด ในกรณีที่ความต้องการของผู้ใช้สูง จะต้องการจัดสรรทรัพยากรจำนวนจำกัดเหล่านี้ในการแข่งขันกับธุรกรรมของผู้ใช้โดยที่เป็นไปได้ การจัดสรรนี้ควรทำโดยอัตโนมัติผ่านค่าธรรมเนียมฐานของธุรกรรมที่เปลี่ยนไป
เราขอเสนอกลไกที่มีพื้นฐานทฤษฎีในการกำหนดค่าธรรมเนียมนี้ ซึ่งไม่เพียงสามารถเพิ่มประสิทธิภาพของเครือข่ายในช่วงเวลาที่มีความต้องการสูงเท่านั้น แต่ยังสามารถเพิ่มประสบการณ์ของผู้ใช้โดยการแยกการทำธุรกรรมที่ไม่เกี่ยวข้องและให้ค่าใช้จ่ายที่คงที่สำหรับการรวมธุรกรรม สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับกลไก โปรดตรวจสอบที่การพูดของ Tarun ที่ Breakpoint และ กระดาษของเรา!
บทความนี้ถูกพิมพ์ใหม่จาก [umbraresearchนำต้นฉบับของชื่อเรื่อง 'ไปสู่ค่าธรรมจริยา Solana มิติหลากหลาย' ของเรื่องลิขสิทธิ์ทั้งหมดเป็นของผู้เขียนต้นฉบับ@theo_diamandis、@tarunchitra、@0xShitTrader]. If there are objections to this reprint, please contact the Gate Learnทีม และพวกเขาจะดำเนินการโดยเร็ว
คำปฏิเสธความรับผิด: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นเพียงของผู้เขียนเท่านั้น และไม่เป็นที่ปรึกษาด้านการลงทุนใดๆ
การแปลบทความเป็นภาษาอื่นๆ ได้รับการดำเนินการโดยทีม Gate Learn หากไม่ได้กล่าวถึง การคัดลอก การกระจาย หรือการลอกเลียนบทความที่ถูกแปลนั้นถูกห้าม