This article has been translated from English to Thai.

Ethereum รู้จักกันว่าเป็น “แพลตฟอร์มสมาร์ทคอนแทรค

คำว่า แพลตฟอร์ม (หรือแพลตฟอร์มการประมวลผล) คือสภาพแวดล้อมในการทำงานที่ซอฟต์แวร์ เช่น โปรแกรมหรือแอปพลิเคชัน สามารถทำงาน (หรือ “ประมวลผล”) ได้

แต่เจ้า สมาร์ทคอนแทรค มันคืออะไรกันแน่ ทำไมถึงเรียกว่าสมาร์ท?

สมาร์ทคอนแทรคคืออะไร?

สมาร์ทคอนแทรคคือโปรแกรมคอมพิวเตอร์อัตโนมัติที่ถูกโฮสต์และประมวลผลบนบล็อกเชน

Smart Contract Code

ถึงชื่อจะบอกว่า “สมาร์ทคอนแทรค” แต่จริงๆแล้วมันไม่ค่อยฉลาดหรือมีผลทางกฎหมายเท่าไหร่

ถ้าเรียก “อัตโนมัติ” แทนที่จะเป็น “สมาร์ท” และ “โปรแกรม” แทนที่จะเป็น “คอนแทรค” จะดีกว่า แต่ฉันไม่ใช่คนฉลาดที่คิดค้นคำนี้ขึ้นมาหรอกนะ!

Nick Szabo ผู้ที่สร้างคำนี้ในช่วงปลายยุค 90 เปรียบเทียบสมาร์ทคอนแทรคกับเครื่องขายของอัตโนมัติ

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

การโต้ตอบนี้ต้องการความเชื่อถือเพียงเล็กน้อย: เครื่องขายไม่มีทางเลือกอื่นนอกจากส่งสินค้าหลังจากได้รับเงิน

Smart Contract Example

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

นั่นแหละคือสิ่งที่สมาร์ทคอนแทรคทำ

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

ในเชิงเทคนิคเล็กน้อย สมาร์ทคอนแทรคคือการรวมกันของ โค้ดและข้อมูล ที่อาศัยอยู่ที่ที่อยู่เฉพาะบนบล็อกเชนของ Ethereum

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

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

เงื่อนไขที่กำหนดไว้ล่วงหน้าเหล่านี้ ถูกเขียนลงใน โค้ดบรรทัด เสมือนว่าเป็น “เงื่อนไขข้อตกลง” ในสัญญาทั่วไป

ตอนนี้ที่คุณรู้ว่าสมาร์ทคอนแทรคคืออะไรแล้ว มาทำความรู้จักกับเหตุผลที่ทำให้ Ethereum เป็นแพลตฟอร์มสมาร์ทคอนแทรค

EVM คืออะไร?

EVM

ไม่ใช่เพลงอิเล็กทรอนิกส์แบบใหม่หรอกนะ

ถ้าสมาร์ทคอนแทรคคือคำสั่งที่เขียนเป็นโค้ด, มันคือ Ethereum Virtual Machine (EVM) ที่ทำการประมวลผลคำสั่งเหล่านั้นบนบล็อกเชน Ethereum

เครื่องเสมือน” คือซอฟต์แวร์ที่ทำหน้าที่เหมือนคอมพิวเตอร์จริงที่สามารถรันโปรแกรมและปรับใช้แอปได้

มันเป็นโปรแกรมซอฟต์แวร์บนคอมพิวเตอร์จริงที่ทำงานเหมือนคอมพิวเตอร์แยกต่างหากภายในคอมพิวเตอร์หลัก

ทำไมถึงต้องการ “คอมพิวเตอร์แยกต่างหาก” เพื่อประมวลผลสมาร์ทคอนแทรค (ซึ่งก็แค่โปรแกรมคอมพิวเตอร์)?

เพราะว่าไม่ใช่ทุกโหนดของ Ethereum (ที่ก็คือคอมพิวเตอร์) ส่วนใช้ฮาร์ดแวร์ ระบบปฏิบัติการ (OS) และการตั้งค่าอื่นๆ เดียวกัน, คุณจำเป็นต้องมีวิธี “แยก” สิ่งเหล่านี้ออก เพื่อให้โค้ดของสมาร์ทคอนแทรคทำงานได้โดยไม่ต้องจัดการกับการตั้งค่าคอมพิวเตอร์ที่หลากหลายกับความต้องการเฉพาะของแต่ละประเภทคอมพิวเตอร์

ไม่เช่นนั้น คุณต้องเขียนสมาร์ทคอนแทรคในเวอร์ชันที่ต่างกันสำหรับการตั้งค่าคอมพิวเตอร์แต่ละประเภท! 👎

สมาร์ทคอนแทรคไม่อยากเจอปัญหากวนใจแบบนี้! มันต้องการเป็นอิสระจากอุปกรณ์และระบบปฏิบัติการ

นี่คือที่ที่ EVM เข้ามาเปลี่ยนเกม 💪

มันให้ สภาพแวดล้อมการประมวลผล สำหรับสมาร์ทคอนแทรค หมายความว่าสมาร์ทคอนแทรคสามารถประมวลผล (“รัน”) ใน สภาพแวดล้อมใดก็ได้ (“คอมพิวเตอร์หรือระบบปฏิบัติการใดก็ได้”)

นักพัฒนาสามารถเขียนสมาร์ทคอนแทรคและมั่นใจได้ว่ามันจะทำตามมาตรฐานอุตสาหกรรมซอฟต์แวร์ของ “Write once, run anywhere” (WORA) หรือที่รู้จักกันในชื่อ “Write once, run everywhere” (WORE)

พื้นฐานแล้ว สมาร์ทคอนแทรคจะรันบนคอมพิวเตอร์ใดๆ ที่มี EVM, เจ๋งใช่ไหม?

แต่ไม่ได้มีความเจ๋งแค่นั้นนะ

เพราะว่า EVM มีวัตถุประสงค์เพื่อเป็นเครื่องการคำนวณที่ฝังอยู่ในโหนดเต็มของ Ethereum ทั้งหมด มันจึงมีความสามารถTuring-complete

ในภาษาคอมพิวเตอร์, คำว่า “Turing-complete” หมายความว่า EVM สามารถคำนวณอะไรก็ได้ที่คุณสามารถคิดคำนวณได้

ดังนั้นในทางทฤษฎี, การประยุกต์ใช้คอมพิวเตอร์ใดๆ ก็สามารถเขียนโปรแกรมและรันบนแพลตฟอร์ม Ethereum ได้!

สมาร์ทคอนแทรคถูกเขียนในโค้ดโดยใช้ภาษาการเขียนโปรแกรมระดับสูงเช่น Solidity, Vyper, หรือ Serpent

โค้ดนี้จะถูกคอมไพล์เป็นสิ่งที่เรียกว่า “bytecode” โดย EVM ซึ่งจะถูกนำเข้าสู่บล็อกเชน Ethereum

ขอบคุณ EVM, บล็อกเชนของ Ethereum สามารถทำได้มากกว่าแค่สมาร์ทคอนแทรคและสามารถใช้สร้างแอปพลิเคชันกระจายศูนย์ (dApps) ได้

ในบทเรียนถัดไป เราจะได้เรียนรู้เพิ่มเติมเกี่ยวกับแอปพลิเคชันกระจายศูนย์ (dApps)