20 พ.ค. เวลา 08:00 • การศึกษา

การสร้างสัญญาอัจฉริยะ (Smart Contract) | — รู้จักกับ Ethereum

Blockchain คือ เทคโนโลยีการจัดเก็บข้อมูลแบบ Shared Database หรือที่รู้จักกันในชื่อ Distributed Ledger Technology (DLT) เป็นรูปแบบการเก็บข้อมูลที่มีความปลอดภัยสูงซึ่งใช้วิธีการตรวจสอบข้อมูลโดยการเช็คจากข้อมูลที่ถูกจัดเก็บไปก่อนหน้านั้น ข้อมูลดังกล่าวไม่สามารถที่จะเปลี่ยนแปลงหรือแก้ไขได้ซึ่งผู้ใช้ที่อยู่ในเครือข่ายจะเห็นข้อมูลชุดเดียวกันทั้งหมดเป็นและผู้ตรวจสอบข้อมูลโดยใช้หลักการ Cryptography (การเข้ารหัส)
การประยุกต์ใช้ Blockchain
  • เงินดิจิทัล (Cryptocurrency)
  • สัญญาอัจฉริยะ (Smart Contract)
  • ระบบ/บริการอัตโนมัติ (Decentralized Autonomous Systems/ Services)
  • บริการพิสูจน์ทราบ (Proof of Services)
  • Technology หมายถึง เทคโนโลยี Blockchain
  • Protocol / Coin การนำเอาเทคโนโลยี Blockchain มาใช้งานแต่ละโปรโตคอลจะมีสกุลเงินของตัวเอง ซึ่ง Bitcoin ก็ถือว่าเป็นโปรโตคอลอีกรูปแบบหนึ่ง
  • Token ชุดข้อมูลเสมือนที่ถูกเข้ารหัส ใช้แทนข้อมูลที่ต้องการความปลอดภัยสูงและหลีกเลี่ยงการแลกเปลี่ยนข้อมูลนั้นโดยตรง เช่น เลขบัตรเครดิต เป็นต้น
  • *Bitcoin คือ สกุลเงินดิจิทัลซึ่งมีมูลค่าเหมือนกับธนบัตรในสกุลเงินประเทศต่าง ๆ และถือว่าเป็นโปรโตคอลที่นําเอาเทคโนโลยี Blockchain ที่มีความปลอดภัยสูงต่อการรับส่งข้อมูลมาใช้เป็นระบบแลกเปลี่ยนเงินบนโลกอินเตอร์เน็ต
ข้อจำกัดของ Bitcoin ระบบของ Bitcoin ที่ถูกสร้างขึ้นมานั้น ทำหน้าที่เป็นแค่สกุลเงินดิจิตัล (Cryptocurrency) ซึ่งเน้นการทำธุรกรรมด้านการเงินเพียงอย่างเดียว
ถ้าอยากจะทำระบบอื่นๆขึ้นมาโดยอาศัยเทคโนโลยี Blockchain และมีการทำธุรกรรมทางการเงินด้วยจะต้องทำอย่างไร ? เช่น อยากรันโปรแกรมใน Blockchain ได้
Ethereum คืออะไร
Vitalik Buterin ผู้สร้างและคิดค้นโปรเจกต์ Ethereum
  • Open Source Platform ที่สร้างขึ้นด้วยเทคโนโลยี Blockchain เป็น Platform ที่สามารถนำเอา Source Code มาทำงานได้ ซึ่งแอพพลิเคชั่นที่รันบน Ethereum Platform จะถูกทำงานในระบบ Blockchain หรือเรียกว่า“Decentralized Applications (Dapps) ”
  • รองรับระบบการเงินเหมือน Bitcoin มีความปลอดภัยและไม่ถูกควบคุมจากกลุ่มบุคคลใดบุคคลหนึ่ง
  • มี Network เหมือน Bitcoin ซึ่งภายใน Network ดังกล่าวสามารถรันโปรแกรมได้ด้วย เรียกว่า Smart Contract (สัญญาอัจฉริยะ)
  • มีเหรียญหรือสกุลเงินที่ใช้ใน Network ชื่อว่า Ether Coin (ETH)
คุณสมบัติของ Ethereum Network
  • สามารถรับส่งเหรียญใน Network ได้
  • สามารถเก็บข้อมูล (Data) ได้
  • ทุกๆ Node ใน Network สามารถรันโปรแกรมได้
  • ทุกๆ Node มีข้อมูลเหมือนกัน
Decentralized Applications (Dapps)
Dapps ต่างกับแอพทั่วไป (Traditional Application) คือ การทำธุรกรรมต่างๆ ภายในแอพพลิเคชั่น จะไม่ผ่านคนกลาง (บริษัทต่างๆที่ให้บริการผ่านแอพพลิเคชั่น) ใน Ethereum Platform จะมีส่วนที่เรียกว่า Smart Contract สำหรับนำมาทำเป็น Dapps ซึ่งมีรูปแบบการพัฒนาแอพ ดังนี้
  • แอพพลิเคชั่นสำหรับแลกเปลี่ยนเงินโดยตรง
  • แอพพลิเคชั่นที่เกี่ยวกับการเงิน
  • แอพพลิเคชั่นอื่นๆ เช่น ระบบพินัยกรรม , ระบบโหวต เป็นต้น
รู้จักกับ Smart Contract
Smart Contract หรือ สัญญาอัจฉริยะ เป็นโปรแกรมคอมพิวเตอร์ที่ทำงานใน Ethereum Blockchain โดยจะเก็บเงื่อนไขหรือข้อตกลงของสัญญาต่าง ๆ ไว้ในรูปแบบ Code คอมพิวเตอร์ ซึ่งจะทำงานอัตโนมัติทันทีที่เกิดเหตุการณ์ตามเงื่อนไขในสัญญา โดยไม่ต้องมีคนกลาง เช่น ธนาคาร รัฐบาล เป็นต้น
สามารถแก้ปัญหาความไม่ไว้ การบิดเบือนสัญญา หรือการโกงระหว่างคู่สัญญาได้ เนื่องจากสัญญาดังกล่าวที่ถูกเขียนขึ้นและเก็บใน Blockchain นั้นไม่สามารถแก้ไขได้ในภายหลังและทุกคนในเครือข่ายสามารถเข้าไปตรวจสอบข้อตกลงของสัญญาต่าง ๆได้ ยกตัวอย่าง เช่น การทำระบบสัญญาซื้อ-ขาย,การทำระบบพินัยกรรม เป็นต้น
คุณสมบัติของ Smart Contract
  • เป็นการเก็บ Source Code ไว้ในแต่ละ Block ที่อยู่ใน Blockchain
  • รันโค้ดหรือคำสั่งที่เก็บภายใน Block ได้
  • โค้ดที่ถูกเก็บใน Block ไม่สามารถแก้ไขได้จึงเรียกว่า สัญญาอัจฉริยะ
  • มีกระบวนการตรวจสอบหรือ Mining Block ได้
  • ใช้ภาษา Solidity ในการสร้าง Smart Contract
จุดเด่นของ Smart Contract
  • ความปลอดภัย (Security) เนื่องจาก Smart Contract ที่ถูกพัฒนาโดยใช้เทคโนโลยี Blockchain นั้นจะถูกกระจายไปยังสมาชิกอื่น ๆ ที่อยู่ในเครือข่าย (Node) จึงทำให้มั่นใจได้ว่า Smart Contract ดังกล่าวจะไม่สูญหายหรือถูกเปลี่ยนแปลงเงื่อนไขการทำงานโดยไม่ได้รับอนุญาต
  • ความเป็นอัตโนมัติ (Automation) Smart Contract จะดำเนินการตามข้อตกลงโดยอัตโนมัติทันทีเมื่อเกิดเหตุการณ์ ตามเงื่อนไขในสัญญา ซึ่งได้มีการระบุไว้ล่วงหน้าแล้ว โดยไม่ต้อง มีคนกลางมาเกี่ยวข้อง เช่น การทำสัญญาพินัยกรรม เป็นต้น
  • ความเป็นมาตรฐาน (Standardization) การนำ Smart Contract มาใช้งานในระบบใด ๆ นั้น หมายความว่าระบบนั้นจะต้องทำงานภายใต้เงื่อนไข หรือข้อตกลงต่างที่เป็นมาตรฐานเดียวกันทั้งระบบ ตามที่ได้กำหนดไว้ใน Smart Contract
จุดด้อยของ Smart Contract
  • ความผิดพลาดที่เกิดจากมนุษย์ (Human Error) เนื่องจากการสร้าง Smart Contract คือ การเขียนโปรแกรม หากมีการทดสอบไม่เพียงพอ Smart Contract ที่สร้างขึ้นก็สามารถทำงานผิดพลาดได้ และอาจส่งผลกระทบในวงกว้าง
  • ไม่สามารถแก้ไขย้อนหลังได้ (Immutable) หลังจากที่สร้าง Smart Contract แล้วจะไม่สามารถหรือปรับปรุงโค้ดหรือโปรแกรมดังกล่าวได้ นั่นหมายถึงโปรแกรมที่พัฒนาขึ้นและสร้างเป็น Smart Contract จะมีแค่เวอร์ชั่นเดียว
Ethereum Virtual Machine (EVM)
จากคุณสมบัติของ Smart Contract ที่สามารถรันโค้ดหรือคำสั่งที่เก็บภายใน Block ได้ อะไรทำให้โค้ดรันใน Blockchain ได้ใน Ethereum Blockchain จะมีส่วนที่เรียกว่า Ethereum Virtual Machine (EVM)สำหรับใช้รันโปรแกรมใน Blockchain ซึ่งได้แนวคิดมาจากภาษา Java
แนวคิดของภาษา Java
ภาษา Java มีแนวคิด คือจะมีการเปลี่ยนคำสั่งที่ถูกเขียนทั้งหมดนั้น แปลงเป็น Java Byte Code เมื่อถึงเวลาที่ต้องทำงานจริงในคอมพิวเตอร์ Java Byte Code จะถูกนำไปคอมไพล์อีกครั้งให้เป็นภาษาเครื่องเฉพาะอุปกรณ์ชนิดนั้นๆ โดยการคอมไพล์ในครั้งนี้จะใช้สิ่งที่เรียกว่า Java Virtual Machine (JVM) เพื่อให้โปรแกรมที่ถูกพัฒนาด้วยภาษา Java นั้นสามารถรองรับการทำงานได้ใน Platform นั้นๆได้
ใน Ethereum อยากให้มีโปรแกรมที่สามารถทำงานและรันใน Blockchain Network ได้ (Smart Contract) จึงได้คิดค้น Ethereum Virtual Machine (EVM) ขึ้นมา โดยอาศัยแนวคิดของ ภาษา Java โดยใช้ Java Virtual Machine (JVM) นั่นเอง
รู้จักกับ Gas & Cryptocurrency Wallet
Gas คืออะไร
  • การนำเอา Smart Contract ไปรันบน Ethereum นั้นต้องจ่ายเงินหรือค่าธรรมเนียมที่เรียกว่า “ Gas ”
  • Gas คือ สิ่งที่ทุก Smart Contract ที่ทำงานบน Ethereum ต้องจ่าย เนื่องจากการนำ Smart Contract ขึ้นไปในระบบนั้นต้องมีการตรวจสอบโดย Miner เช่น การตรวจสอบธุรกรรมต่างๆ ซึ่งผลตอบแทนของ Miner ก็คือค่าธรรมเนียมหรือ Gas ที่จ่ายไปนั่นเอง
  • แต่ละ Smart Contract มีการใช้พลังงานในการประมวลผล (Mining)ที่ไม่เท่ากัน ดังนั้นค่าธรรมเนียมหรือ Gas ก็จะไม่เท่ากันด้วย
Gas จะแบ่งออกเป็น 2 รูปแบบ คือ
  • Gas Price เป็นการกำหนดค่าธรรมเนียมหรือ Gas ได้ตามความต้องการ เช่น อยากให้ระบบทำงานเร็วขึ้น ใช้พลังงานเยอะขึ้น ก็จะเสียค่า Gas เยอะขึ้นตามไปด้วย เป็นต้น
  • Gas Limit เป็นการกำหนดขอบเขตค่าธรรมเนียมหรือ Gas ไม่ให้ใช้พลังงานเกินที่กำหนดไว้ ถ้าใช้เกิน ระบบก็จะหยุดทำงานทันที ซึ่งค่าธรรมเนียมที่ต้องจ่ายก็จะคิดตามจริง เช่น กำหนดขอบเขตไว้ 300 แต่ใช้ไปแค่ 200 ก็จะจ่ายแค่เพียง 200 x Gas Price นั่นเอง
Cryptocurrency Wallet (กระเป๋าเก็บเหรียญคริปโต)
การเก็บเงินในระบบแบบเดิม การทำธุรกรรมทางการเงินในปัจจุบัน เช่น ฝากเงิน โอน หรือ ถอนเงิน ต้องดำเนินการผ่านตัวกลาง คือ ธนาคารเป็นผู้ให้บริการ ผ่านแอพพลิเคชั่นด้านการเงิน ซึ่งผู้ใช้บริการ (User) จะมีการยืนยันตัวตนในการเข้าสู่ระบบผ่าน Username / Password โดยใช้เลขที่บัญชีในการดำเนินการธุรกรรมต่างๆภายในแอพพลิเคชั่นดังกล่าว ซึ่งสิทธิในการเข้าถึงข้อมูลนั้นจะอยู่ที่ผู้ใช้บริการทั้งหมด
กระเป๋าเก็บเหรียญคริปโต (Crypto Wallet)
คือ ซอร์ฟแวร์ที่ใช้สำหรับติดต่อกับ Crypto Network สำหรับการโอนหรือ
รับเหรียญคริปโตซึ่งในกระเป๋า (Wallet) มีส่วนประกอบอยู่ 2 ส่วนได้แก่
  • Private Key (Username / Password) เป็นคีย์ที่เจ้าของกระเป๋าจะต้องเก็บไว้เป็นความลับ สำหรับยืนยันตัวตนว่าเป็นเจ้าของกระเป๋าและสำหรับสร้าง public key ห้ามให้คนอื่นรู้ ถ้า private key หายเงินในกระเป๋าก็จะหายไปด้วย
  • Public Key (Address / หมายเลขบัญชี) เป็นคีย์ที่เจ้าของกระเป๋าสามารถบอกคนอื่นได้ เมื่อคนอื่นรู้ Public Address ก็สามารถที่จะโอน
  • เหรียญคริปโตมายังกระเป๋าหรือ Wallet ตาม Address ดังกล่าวได้
ภายใน 1 Wallet สามารถมีได้หลาย Public Address ไม่ว่าจะโอนไปที่ Public Address ใด เงินทั้งหมดที่โอนมาก็จะเข้ามาที่ Wallet เดียวกัน
เนื้อหาที่เกี่ยวข้อง
➤ ติดตามข่าวสารเพิ่มเติมได้ที่ :
โฆษณา