Ethereum คืออะไร¶
Ethereum คือ Platform ชนิดหนึ่งของ Blockchain ที่ทุกคนสามารถสร้างและใช้งาน Application แบบกระจายศูนย์(Decentralized Applications) ที่ทำงานบนเทคโนโลยี Blockchain เช่นเดียวกับ Bitcoin คือไม่มีใครควบคุมหรือเป็นคนเจ้าของ แต่ Ethereum ไม่เหมือน Bitcoin คือ Ethereum สามารถสร้าง Application บน Blockchain ได้
Ethereum Virtual Machine¶
Ethereum ถ้าพูดสั้นๆคือ ชุด Protocol หนึ่งที่กำหนด Platform สำหรับการใช้งาน Application แบบกระจายศูนย์ โดยหัวใจหลักสำคัญของ Ethereum คือ EVM(Ethereum Virtual Machine) ซึ่ง EVM สามารถดำเนินการโค้ดของอัลกอริทึมที่ซับซ้อนของ Ethereum ได้
Ethereum คือ “Turing Complete” นักพัฒนาสามารถสร้าง Application ที่ทำงานบน EVM โดยใช้ภาษาเขียนโปรแกรมที่เข้าถึงง่าย เช่น Javascript และ Python เป็นต้น
เหมือนใน Blockchain ชนิดอื่นๆ คือ Ethereum ยังมี Protocol Network แบบ peer-to-peer ทำให้ฐานข้อมูลของ Ethereum จะมีการปรับปรุงและ Update โดยหลายๆ Node ที่เชื่อมต่อกันอยู่ใน Network เดียวกัน ซึ่งแต่ละ Node ใน Network เดียวกัน จะใช้ EVM และการเข้าถึงข้อมูลในรูปแบบเดียวกัน
ด้วยเหตุนี้ทำให้ Ethereum เหมาะสมกับผู้ใช้งานที่ต้องการระบบที่มีการตอบโต้แบบอัตโนมัติแบบรวดเร็ว โดยไม่ผ่านคนกลาง ทำให้ไม่ต้องมีการประสานงานผ่านคนกลางให้ซับซ้อน
การทำงานของ Ethereum¶
Ethereum คือ เทคโนโลยีที่ถูกพัฒนาต่อมาจาก Bitcoin เพียงแต่เพิ่มคุณสมบัติและนวัตกรรมบางอย่าง ทำให้ผู้ใช้งาน Bitcoin มาก่อนเข้าใจได้ไม่ยาก
Bitcoin นั่นคือ Blockchain ที่ให้สนใจกับรายการธุรกรรม(Transaction) แต่ Ethereum จะให้ความสนใจกับ Account ร่วมด้วย โดย Ethereum จะตรวจสอบ State ของทุกๆ Account และทุกๆ State ของ Transaction ใน Network เดียวกัน ที่มีการส่งมอบ Value และข้อมูล ระหว่าง Account ซึ่ง Account นั่นแบ่งเป็น 2 ประเภท คือ
- Externally Owned Accounts(EOAs) จะถูกควบคุมโดย Private Keys
- Contract Accounts ถูกควบคุมโดย Smart Contract Code และ Activated โดย EOA เท่านั้น
สำหรับผู้ใช้งานส่วนใหญ่ ความแตกต่างเบื้องต้นระหว่าง 2 Account คือ ผู้ใช้งานเป็นคนควบคุม EOAs เพราะว่าผู้ใช้งานสามารถควบคุมและจัดการ Private Keys และ Contract Accounts หรือที่นิยมพูดกันว่า “Smart Contract Address” คือที่ๆอยู่ของ Smart Contracts
Smart Contract จะสามารถใช้งานเมื่อ Transaction ที่เกิดขึ้น ถูกส่งไปยัง Account นั้นๆ และผู้ใช้งานสามารถสร้าง Smart Contracts ใหม่โดยการ Deploy Smart Contracts ลงใน Blockchain
Contract Accounts สามารถดำเนินการก็ต่อเมื่อได้รับคำสั่งให้ทำจาก EOA ดังนั้นจึงเป็นไปไม่ได้ที่ Contract Accounts จะถูกดำเนินการโดยบุคคลที่ไม่รู้จัก ทั้งหมดนี้เป็นเพราะ Ethereum ต้องการให้ Node ทุกๆ Node สามารถยอมรับและเห็นด้วยกับผลลัพธ์การดำเนินการนั้นๆ
โดยปกติแล้ว Bitcoin ผู้ใช้จะต้องจ่ายค่าธรรมเนียมในการทำธุรกรรม(Transaction)แต่ละครั้งให้กับเครือข่าย ใน Ethereum ก็เหมือนกัน สิ่งนี้จะช่วยป้องกัน Ethereum จาก DDoS attacks หรือ infinite loops
ผู้ส่งธุรกรรมต้องชำระเงินสำหรับแต่ละขั้นตอนของ “โปรแกรม” ที่เปิดใช้งานรวมถึงการคำนวณและการจัดเก็บหน่วยความจำ ค่าธรรมเนียมเหล่านี้ชำระเป็นจำนวนโทเค็นมูลค่าตามตัวอักษรของ Ethereum(Ether)
ค่าธรรมเนียมการทำธุรกรรมเหล่านี้จะถูกเก็บไว้ที่ Node ที่ตรวจสอบความถูกต้องของธุรกรรมในเครือข่าย หรือเรียกว่า Miners โดย Miner จะตรวจสอบและยืนยันข้อมูลใน Transaction หลังจากนั้น Miner จะรวบรวม Transaction ที่ Miner ตรวจสอบบรรจุลง Block และ Block ที่เกิดขึ้นใหม่นั้นก็จะต่อกันไปเรื่อยๆจนเกิดเป็น Chain ทุกๆครั้งที่เกิด Block ใหม่ขึ้น State ของ Account ก็จะถูก Update ด้วย ทั้งนี้ Miner จะได้รับผลตอบแทนในหน่วยของ Ether ทุกครั้งที่มีการตรวจสอบและยืนยันข้อมูล เหตุนี้ทำให้เกิดการแข่งขันกันใน Miner ช่วยกันตรวจสอบและยืนยันข้อมูล
เช่นเดียวกับในเครือข่าย Bitcoin Miner จะได้รับมอบหมายให้แก้ปัญหาทางคณิตศาสตร์ที่ซับซ้อนเพื่อที่จะสร้าง Block ได้สำเร็จ สิ่งนี้เรียกว่า “Proof of Work” แต่หากเจอการแก้สมการที่ยาก และที่ใช้ทรัพยากรที่หนักมาก ใน Ethereum จะกีดกันการใช้อุปกรณ์พิเศษ เช่น ASIC ซึ่งจะแตกต่างกับ Bitcoin ทั้งนี้ทำให้ทุกๆ Miner มีสิทธิ์การยืนยันข้อมูลใกล้เคียงกัน สิทธิ์การตรวจสอบข้อมูลก็จะไม่ได้ไปอยู่ที่คนๆเดียว