Smart Contract คืออะไร?
Smart Contract คืออะไร?
หน้าหลักบทความ

Smart Contract คืออะไร?

ระดับกลาง
Published Sep 16, 2019Updated Nov 26, 2020
7m
Nick Szabo อธิบายถึง Smart Contract หรือสัญญาอัจฉริยะเป็นครั้งแรกในช่วงทศวรรษ 1990 ในตอนนั้นเขานิยาม Smart Contract ว่าเป็นเครื่องมือที่ทำให้เครือข่ายคอมพิวเตอร์เป็นมาตรฐานและรักษาความปลอดภัยโดยการผสานโพรโตคอลกับอินเตอร์เฟสของผู้ใช้ Szabo กล่าวถึงการใช้ Smart Contract ในด้านต่างๆ ที่เกี่ยวข้องกับข้อตกลงตามสัญญาเช่นระบบเครดิต การประมวลผลการชำระเงิน และการจัดการสิทธิ์ในเนื้อหา
ในโลกของคริปโทเคอร์เรนซี เราอาจให้นิยาม Smart Contract ว่าเป็นแอปพลิเคชันหรือโปรแกรมที่ทำงานบนบล็อกเชน โดยทั่วไปแล้วจะทำงานเป็นข้อตกลงดิจิทัลที่บังคับใช้โดยชุดกฎเป็นการเฉพาะ กฎเหล่านี้กำหนดไว้ล่วงหน้าโดยโค้ดคอมพิวเตอร์ซึ่งจะก๊อบปี้และดำเนินการโดยโหนดทั้งหมดในเครือข่าย

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

แม้ว่าโพรโทคอล Bitcoin จะรองรับ Smart Contract มาหลายปีแล้ว แต่ Smart Contract ก็มาได้รับความนิยมจากผลงานของ Vitalik Buterin ผู้สร้างและผู้ร่วมก่อตั้ง Ethereum อย่างไรก็ตามเป็นที่น่าสังเกตว่าแต่ละบล็อกเชนอาจนำเสนอวิธีการที่แตกต่างกันในการใช้ Smart Contract 

บทความนี้จะเน้นไปที่ Smart Contract ที่ทำงานบน Ethereum Virtual Machine (EVM) ซึ่งเป็นส่วนสำคัญของบล็อกเชน Ethereum


Smart Contract ทำงานอย่างไร?

พูดง่ายๆ คือ Smart Contract ทำงานเป็นโปรแกรมเชิงกำหนดการ (Deterministic Program) จะถูกดำเนินการเฉพาะเมื่อตรงตามเงื่อนไขบางประการ ด้วยเหตุนี้ระบบ Smart Contract มักจะเป็นไปตามเงื่อนไข "ถ้า… แล้วให้… " แต่แม้จะเป็นศัพท์ที่เป็นที่นิยม แต่ Smart Contract ก็ไม่ใช่สัญญาทางกฎหมายหรือสมาร์ทแต่อย่างใด พวกมันเป็นเพียงส่วนหนึ่งของโค้ดที่ทำงานบนระบบแบบกระจาย (บล็อกเชน)

บนเครือข่าย Ethereum นั้น Smart Contract มีหน้าที่รับผิดชอบในการดำเนินการและจัดการการดำเนินการของบล็อกเชนที่เกิดขึ้นเมื่อผู้ใช้ (ที่อยู่) โต้ตอบกัน ที่อยู่ใดๆ ที่ไม่ใช่ Smart Contract เรียกว่าบัญชีภายนอก (Externally Owned Account, EOA) ดังนั้น Smart Contract จะถูกควบคุมโดยโค้ดคอมพิวเตอร์และ EOA จะถูกควบคุมโดยผู้ใช้

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

การปรับใช้ Smart Contract ใดๆ ทำผ่านธุรกรรมบล็อกเชนและจะเปิดใช้งานได้ก็ต่อเมื่อเรียกโดย EOA (หรือ Smart Contract อื่นๆ) อย่างไรก็ตามทริกเกอร์แรกจะเกิดจาก EOA (ผู้ใช้) เสมอ


คุณลักษณะหลัก

Smart Contract ของ Ethereum มักมีลักษณะดังต่อไปนี้:

กระจาย - Smart Contract จะถูกคัดลอกและแจกจ่ายไปสู่ทุกโหนดของเครือข่าย Ethereum นี่เป็นหนึ่งในความแตกต่างที่สำคัญจากโซลูชันอื่นๆ ที่ใช้เซิร์ฟเวอร์ส่วนกลาง

กำหนดแน่ชัด - Smart Contract จะดำเนินการตามที่ออกแบบมาเพื่อให้เป็นไปตามข้อกำหนดเท่านั้น นอกจากนี้ผลลัพธ์จะเหมือนกันเสมอไม่ว่าใครจะเป็นผู้ดำเนินการก็ตาม

อัตโนมัติ - Smart Contract สามารถทำงานได้ทุกประเภทโดยอัตโนมัติ ทำงานเหมือนโปรแกรมที่ดำเนินการเอง ในกรณีส่วนใหญ่ถ้าสัญญาอัจฉริยะไม่ถูกเรียกใช้สัญญาจะอยู่เฉยๆ และไม่ได้ดำเนินการใดๆ

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

ปรับแต่งได้ - ก่อนการใช้งาน สามารถเขียนโค้ด Smart Contract ได้หลายวิธี ดังนั้นจึงสามารถใช้สร้างแอปพลิเคชันแบบกระจายอำนาจได้หลายประเภท (DApps) สิ่งนี้เกี่ยวข้องกับข้อเท็จจริงที่ว่า Ethereum เป็นบล็อกเชนที่มีคุณสมบัติเป็น Turing complete

ไม่ต้องใช้ความไว้วางใจ - สองฝ่ายขึ้นไปสามารถโต้ตอบโดยใช้ Smart Contract โดยไม่ต้องรู้จักหรือไว้วางใจซึ่งกันและกัน นอกจากนี้ เทคโนโลยีบล็อกเชนช่วยให้มั่นใจได้ว่าข้อมูลมีความถูกต้อง

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


ฉันสามารถเปลี่ยนหรือลบ Smart Contract ได้หรือไม่?

เป็นไปไม่ได้ที่จะเพิ่มฟังก์ชันใหม่ให้กับสัญญาอัจฉริยะของ Ethereum หลังจากใช้งานแล้ว อย่างไรก็ตามหากผู้สร้างใช้ฟังก์ชันที่เรียกว่า SELFDESTRUCT ไว้ล่วงหน้าในโค้ด พวกเขาจะสามารถ "ลบ" Smart Contract นั้นได้ในอนาคต - และแทนที่ด้วยสัญญาใหม่ ในทางตรงกันข้ามถ้าไม่มีฟังก์ชันนั้นอยู่ในโค้ดเป็นการล่วงหน้า พวกเขาจะไม่สามารถลบสัญญาได้

มีสิ่งหนึ่งที่ควรพิจารณา สิ่งที่เรียกว่า Smart Contract แบบอัพเกรดได้ทำให้นักพัฒนามีความยืดหยุ่นมากกว่าสัญญาแบบไม่เปลี่ยนแปลง มีหลายวิธีในการสร้างสัญญาที่อัพเกรดได้โดยมีระดับความซับซ้อนที่แตกต่างกันไป

ยกตัวอย่างง่ายๆ สมมติว่า Smart Contract ถูกแบ่งออกเป็นสัญญาย่อยๆ หลายสัญญา บางส่วนได้รับการออกแบบให้ไม่เปลี่ยนแปลงในขณะที่บางส่วนมีฟังก์ชันลบให้ใช้งานได้ ซึ่งหมายความว่าส่วนหนึ่งของโค้ด (Smart Contract) สามารถลบและแทนที่ได้ในขณะที่ฟังก์ชันอื่นๆ ยังคงอยู่ครบถ้วนไม่มีการเปลี่ยนแปลง


ข้อได้เปรียบและประโยชน์

ในฐานะที่เป็นโค้ดที่ตั้งโปรแกรมได้ Smart Contract สามารถปรับแต่งได้สูงและสามารถออกแบบได้หลายวิธี นำเสนอบริการและโซลูชันได้หลายประเภท

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

Smart Contract มีประโยชน์อย่างยิ่งในสถานการณ์ที่เกี่ยวข้องกับการโอนหรือแลกเปลี่ยนเงินระหว่างสองฝ่ายขึ้นไป

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


ERC-20

โทเค็นที่ออกบนบล็อกเชน Ethereum เป็นไปตามมาตรฐานที่เรียกว่า ERC-20 มาตรฐานนี้อธิบายถึงฟังก์ชันหลักของโทเค็นที่ใช้ Ethereum ทั้งหมด ดังนั้นสินทรัพย์ดิจิทัลเหล่านี้จึงมักเรียกกันว่าโทเค็น ERC-20 และเป็นสกุลคริปโทเคอร์เรนซีที่มีอยู่เป็นส่วนใหญ่
บริษัทบล็อกเชนและสตาร์ทอัพหลายแห่งใช้ Smart Contract เพื่อออกโทเค็นดิจิทัลบนเครือข่าย Ethereum หลังจากการออก บริษัทเหล่านี้ส่วนใหญ่จะแจกจ่ายโทเค็น ERC-20 ของตนผ่านกิจกรรม Initial Coin Offering (ICO) ในกรณีส่วนใหญ่การใช้ Smart Contract ช่วยให้สามารถแลกเปลี่ยนเงินและแจกจ่ายโทเค็นได้ด้วยวิธีที่เชื่อถือได้และมีประสิทธิภาพ


ข้อจำกัด

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

นอกเหนือจากนั้น บางคนโต้แย้งว่าระบบแบบรวมศูนย์สามารถให้โซลูชันและฟังก์ชันการทำงานส่วนใหญ่ที่นำเสนอโดย Smart Contract ข้อแตกต่างที่สำคัญคือ Smart Contract ทำงานบนเครือข่าย P2P แบบกระจายแทนที่จะเป็นเซิร์ฟเวอร์ส่วนกลาง และเนื่องจากระบบเหล่านี้ใช้ระบบบล็อกเชนจึงมีแนวโน้มที่จะไม่เปลี่ยนแปลงหรือเปลี่ยนแปลงได้ยากมาก
การเปลี่ยนแปลงไม่ได้อาจเป็นเรื่องดีในบางสถานการณ์ แต่ในบางสถานการณ์ก็แย่มาก ตัวอย่างเช่นเมื่อ Decentralized Autonomous Organization (DAO) หรือที่เรียกว่า "The DAO" ถูกแฮ็กในปี 2016 อีเธอร์ (ETH) หลายล้านเหรียญถูกขโมยเนื่องจากข้อบกพร่องในโค้ด Smart Contract
เนื่องจาก Smart Contract ของพวกเขาเปลี่ยนแปลงไม่ได้ นักพัฒนาจึงไม่สามารถแก้ไขโค้ดได้ ในที่สุดสิ่งนี้นำไปสู่ Hard Fork ทำให้เกิดบล็อกเชน Ethereum อันที่สอง พูดง่ายๆ บล็อกเชนหนึ่ง "เปลี่ยนกลับไป" เป็นเหมือนก่อนถูกแฮ็กและคืนเงินให้กับเจ้าของที่ถูกต้อง (ส่วนนี้เป็นบล็อกเชน Ethereum ปัจจุบัน) อีกสายหนึ่งตัดสินใจที่จะไม่ยุ่งเกี่ยวกับการแฮ็กโดยบอกว่าสิ่งที่เกิดขึ้นบนบล็อกเชนไม่ควรมีการเปลี่ยนแปลง (ปัจจุบันเรียกว่า Ethereum Classic)

สิ่งสำคัญคือต้องทราบว่าปัญหาไม่ได้มาจากบล็อกเชน Ethereum แต่เกิดจากการใช้งาน Smart Contract ที่ผิดพลาด

ข้อจำกัดอีกประการหนึ่งของ Smart Contract เกี่ยวข้องกับสถานะทางกฎหมายที่ไม่แน่นอน ไม่ใช่เพียงเพราะมันอยู่ในพื้นที่สีเทาในประเทศส่วนใหญ่ แต่ยังเป็นเพราะ Smart Contract ไม่เหมาะกับกรอบกฎหมายในปัจจุบัน

ตัวอย่างเช่นสัญญาจำนวนมากกำหนดให้ทั้งสองฝ่ายต้องระบุตัวตนอย่างถูกต้องและมีอายุ 18 ปีขึ้นไป การใช้นามแฝงที่เทคโนโลยีบล็อกเชนให้มีได้รวมกับการขาดตัวกลางอาจทำให้ปฏิบัติตามข้อกำหนดเหล่านั้นไม่ได้ แม้ว่าจะมีวิธีแก้ไขปัญหานี้ แต่การบังคับใช้ทางกฎหมายของ Smart Contract ถือเป็นความท้าทายโดยแท้ โดยเฉพาะอย่างยิ่งเมื่อเป็นเรื่องของเครือข่ายแบบกระจายอำนาจที่ไร้พรมแดน


ข้อวิจารณ์

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

Smart Contract เป็นเทคโนโลยีที่น่าสนใจอย่างแน่นอน แต่การกระจายอานาจ เป็นกำหนดการแน่นอน โปร่งใส และค่อนข้างเปลี่ยนแปลงได้ยาก ทำให้ Smart Contract น่าสนใจน้อยลงได้ในบางสถานการณ์

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

เมื่อเปรียบเทียบกับสัญญาอัจฉริยะ เซิร์ฟเวอร์แบบรวมศูนย์จะดูแลรักษาง่ายกว่าและถูกกว่า และมีแนวโน้มที่จะมีประสิทธิภาพสูงกว่าในแง่ของความเร็วและการสื่อสารข้ามเครือข่าย (การทำงานร่วมกัน)


ข้อคิดส่งท้าย

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

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