Vyper, Solidity และ Scrypto: ภาษาสัญญาอัจฉริยะเปรียบเทียบอย่างไร

ดูภาษาการเขียนโปรแกรมที่แตกต่างกันสามภาษาสำหรับเครือข่ายบล็อคเชนและการเปรียบเทียบ

เครือข่าย Ethereum นำสัญญาอัจฉริยะมาสู่พื้นที่บล็อคเชน ทำให้มีแนวคิดเช่น การเงินแบบกระจายอำนาจ (DeFi) เป็นไปได้ 

สัญญาอัจฉริยะสามารถดำเนินกระบวนการได้โดยอัตโนมัติเมื่อตรงตามเงื่อนไขที่กำหนด พร้อมกับเทคโนโลยีใหม่นี้ ภาษาเขียนโค้ดใหม่ได้รับการพัฒนาที่เรียกว่า Solidity

ในขณะที่อุตสาหกรรมบล็อคเชนเติบโตอย่างต่อเนื่องและเครือข่ายบล็อคเชนใหม่เกิดขึ้น ภาษาโปรแกรมเพิ่มเติมก็ถูกนำเข้ามาในพื้นที่ โดยเฉพาะอย่างยิ่ง Vyper และ Scrypto

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

ความแข็งแกร่งคืออะไร?

Solidity เป็นภาษาการเขียนโปรแกรมเชิงวัตถุและระดับสูงสำหรับการสร้างสัญญาอัจฉริยะบน Ethereum blockchain และเครือข่าย blockchain อื่นๆ เช่น BNB Smart Chain และ Avalanche ภาษาได้รับการพัฒนาในปี 2014 และมีความคล้ายคลึงกับภาษาการเขียนโปรแกรม เช่น JavaScript, C++ และ Python

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

การเป็นภาษาเขียนโค้ดเชิงวัตถุหมายความว่า Solidity หมุนรอบตัวโดยใช้ "วัตถุ" ซึ่งเป็นชิ้นส่วนของโค้ดที่สามารถนำมาใช้ซ้ำเพื่อสร้างโค้ดที่คล้ายกันโดยไม่ต้องเขียนโค้ดเดิมซ้ำทุกครั้ง

Solidity ยังใช้คอมไพเลอร์เพื่อแปลงโค้ดระดับสูงที่มนุษย์สามารถอ่านได้เป็นโค้ดที่เครื่องอ่านได้ซึ่งทำงานบน Ethereum Virtual Machine (EVM)

ไวเปอร์คืออะไร?

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

Vyper ยังตั้งเป้าที่จะทำให้ทุกคนเขียนโค้ดที่ทำให้เข้าใจผิดได้ยากที่สุด ความเรียบง่ายสำหรับผู้อ่าน (เช่น ผู้ตรวจสอบบัญชี) มีความสำคัญมากกว่าความเรียบง่ายสำหรับผู้เขียน (เช่น นักพัฒนา) วิธีนี้จะทำให้ระบุโค้ดที่เป็นอันตรายได้ง่ายขึ้นภายในสัญญาอัจฉริยะหรือแอปพลิเคชันที่กระจายอำนาจ (DApp)

Scrypto คืออะไร?

Scrypto เป็นภาษาสัญญาอัจฉริยะที่เน้นสินทรัพย์ ภาษาได้รับการพัฒนาโดย Radix อิงตาม Rust และคงคุณลักษณะส่วนใหญ่ของ Rust ในขณะที่เพิ่มฟังก์ชันและไวยากรณ์เฉพาะสำหรับ Radix Engine v2 เนื่องจาก Scrypto เป็นแบบเน้นสินทรัพย์ จึงสามารถโต้ตอบกับสินทรัพย์ เช่น โทเค็น ซึ่งเป็นทรัพยากรประเภทหนึ่งภายในภาษา 

ในภาษาการเขียนโปรแกรมเช่น Solidity โทเค็น ERC-20 มีอยู่ในสัญญาอัจฉริยะบน EVM เนื้อหาภายใน Scrypto คือทรัพยากรที่มีอยู่ในคอนเทนเนอร์และห้องนิรภัย พูดง่ายๆ ก็เหมือนมีถัง (ภาชนะ) และเติมด้วยเหรียญ (สินทรัพย์) ที่สามารถเก็บไว้ในกระปุกออมสิน (ห้องนิรภัย)

ล่าสุด: ความต้องการผู้มีความสามารถใน crypto ขึ้นอยู่กับตลาดน้อยลงเมื่ออุตสาหกรรมเติบโตขึ้น

Scrypto ยังเน้นที่การเป็นมิตรกับนักพัฒนาโดยอนุญาตให้พวกเขาเขียนโค้ดที่จำเป็นในขณะที่โต้ตอบกับคอนเทนเนอร์และทรัพยากรเพื่อเปิดใช้งานฟังก์ชันการทำงานภายใน DApp ความปลอดภัยเป็นอีกหลักการหนึ่งที่นักพัฒนาสามารถให้คำแนะนำเฉพาะกับ DApp แทนที่จะให้สิทธิ์แบบครอบคลุม

ภาษาสัญญาอัจฉริยะเปรียบเทียบอย่างไร

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

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

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

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

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

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

Adam Simmons หัวหน้าเจ้าหน้าที่ฝ่ายกลยุทธ์ของ RDX Works นักพัฒนาที่อยู่เบื้องหลัง Radix กล่าวกับ Cointelegraph ว่า "การมีเครื่องมือที่เหมาะสมสำหรับงานนี้ทำให้เกิดความแตกต่างอย่างมาก และตอนนี้นักพัฒนาบล็อกเชนไม่มีเครื่องมือที่เหมาะสม นี่ไม่ใช่แค่การทำให้ภาษาง่ายขึ้นเท่านั้น แต่ยังทำให้เครื่องมือสำหรับนักพัฒนาใช้งานได้ง่ายและปลอดภัย” กล่าวต่อ:

“ที่จุดสูงสุด DeFi เติบโตขึ้นเป็นกว่า 200 แสนล้านดอลลาร์ TVL ในเวลาเพียงสองปี — เห็นได้ชัดว่ามีความต้องการในระดับสูงมาก อย่างไรก็ตาม แม้ว่าการเติบโตของทุน 200x นี้ จำนวนนักพัฒนาเพิ่มขึ้นเพียง 2 เท่า รวมเป็นประมาณ 19,000 (จากนักพัฒนาประมาณ 30 ล้านคนทั่วโลก)”

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

“นักพัฒนาลังเลที่จะทำงานเต็มเวลาใน Web3 เนื่องจากเส้นโค้งการเรียนรู้ของ Solidity ที่สูงชันและความเสี่ยงด้านความปลอดภัยระดับสูง แม้จะมีนักพัฒนาที่มีความสามารถสูงและใช้เงินหลายล้านดอลลาร์ไปกับการตรวจสอบความปลอดภัย DeFi ก็ยังคงทำเงินตกหล่นจากการแฮ็กและการหาประโยชน์ เพียงเท่านี้ก็เพียงพอแล้วที่จะขัดขวางนักพัฒนาจากการเข้าสู่พื้นที่”

“การมีภาษาและเครื่องมือที่เหมาะสมจะช่วยให้นักพัฒนาสามารถเติบโตทั้งอุตสาหกรรมได้รวดเร็วยิ่งขึ้น เช่นเดียวกับเอ็นจิ้นเกมให้เครื่องมือแก่นักพัฒนาในการปฏิวัติการผลิตวิดีโอเกมในยุค 90 ภาษาและเครื่องมือของ Web3 ที่เหมาะสมจะช่วยให้นักพัฒนาสามารถเร่งการเติบโตของ Web3 ได้” ซิมมอนส์กล่าวเสริม

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

ธุรกรรมบน Ethereum มักจะเป็นการเรียกสัญญาอัจฉริยะ (เนื่องจาก DApps และโทเค็นบน Ethereum เป็นสัญญาอัจฉริยะ) ในทางตรงกันข้าม ธุรกรรมบน Scrypto เกี่ยวข้องกับการย้ายสินทรัพย์จากองค์ประกอบหนึ่งไปยังอีกองค์ประกอบหนึ่ง

ตัวอย่างเช่น หากผู้ใช้ A ต้องการส่งโทเค็นที่กำหนดเอง 10 รายการไปยังผู้ใช้ B ธุรกรรมของพวกเขาจะแสดงว่าพวกเขากำลังพยายามถอนโทเค็น 10 รายการออกจากห้องนิรภัยที่มีโทเค็นดังกล่าว การทำธุรกรรมยังแสดงให้เห็นว่าพวกเขาจะส่งโทเค็นเหล่านั้นไปยังวิธีการฝากเงินขององค์ประกอบบัญชีของผู้ใช้ B เนื่องจากทรัพยากร (ในกรณีนี้คือโทเค็น) จะต้องอยู่ที่ใดที่หนึ่ง จึงต้องใช้ที่ฝากข้อมูล (คอนเทนเนอร์) เพื่อโอนโทเค็นจากผู้ใช้ A ไปยังผู้ใช้ B

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

ตัวอย่างเช่น หากการแลกเปลี่ยน DApp (เช่น Uniswap) ถูกเข้ารหัสด้วย Scrypto นักพัฒนาจะต้องเขียนรหัสวิธีการซื้อขายสำหรับการแลกเปลี่ยนเท่านั้น ขั้นแรก DEX จะต้องระบุคอนเทนเนอร์ขาเข้าของผู้ใช้ที่เป็นโทเค็น A จากนั้นจึงคำนวณอัตราแลกเปลี่ยน ถัดไป โทเค็นที่เข้ามาจะถูกฝาก และ DEX จะส่งโทเค็น B จำนวนที่ถูกต้องกลับไปยังผู้ใช้

ภาษาการเขียนโปรแกรมใดที่นักพัฒนา blockchain ควรเลือก?

นักพัฒนาสามารถใช้ภาษาการเขียนโปรแกรมแบบดั้งเดิม (C++, Python, JavaScript) สำหรับการพัฒนาบล็อกเชน รวมถึงโซลูชันที่สร้างขึ้นโดยเฉพาะ เช่น Solidity, Vyper และ Scrypto ภาษาการเขียนโปรแกรมหลายภาษาสามารถเป็นประโยชน์สำหรับพื้นที่บล็อคเชน เนื่องจากช่วยให้นักพัฒนามีเครื่องมือต่างๆ ในการทำงานด้วย 

ตัวอย่างเช่น นักพัฒนาที่คุ้นเคยกับ C++, JavaScript และ Python อาจพบว่า Solidity น่าสนใจ นักพัฒนาที่คุ้นเคยกับ Python อาจสนใจ Vyper ในขณะที่นักพัฒนาที่คุ้นเคยกับ Rust อาจเลือกใช้ภาษา Scrypto

ล่าสุด: โทเค็นทางสังคมจะเป็นกลไกของ Web3 ตั้งแต่ฐานแฟนไปจนถึงการสร้างแรงจูงใจ

Simmons เห็นด้วย โดยบอกกับ Cointelegraph ว่า "ด้วยภาษาต่างๆ ที่เข้ามาใน Web3 มากขึ้น เราน่าจะเห็นช่วงเวลาหนึ่งที่มีแนวทางการแข่งขันค่อนข้างน้อย เนื่องจากภาษาเหล่านี้พบว่าตลาดผลิตภัณฑ์เหมาะสมกับนักพัฒนา และที่สำคัญที่สุดคือช่วยให้นักพัฒนาเหล่านั้นสร้าง DApps ที่ทรงพลัง มีประโยชน์ และปลอดภัย เราจึงมีแนวโน้มว่าอุตสาหกรรมจะมุ่งไปสู่ผู้ที่ให้ผลลัพธ์ที่ดีที่สุด”

ความแข็งแกร่งจะเป็นทางเลือกสำหรับนักพัฒนาที่ต้องการทำงานบน Ethereum และเครือข่ายบล็อคเชนที่คล้ายกัน ในเวลาเดียวกัน Vyper และ Scrypto สามารถดึงดูดนักพัฒนาที่ต้องการความเรียบง่ายและความปลอดภัยเพิ่มเติม Scrypto อาจเป็นที่นิยมสำหรับนักพัฒนาเนื่องจากความเรียบง่ายที่เพิ่มขึ้นและแนวทางที่เน้นสินทรัพย์

ที่มา: https://cointelegraph.com/news/vyper-solidity-and-scrypto-how-the-smart-contract-languages-compare