Proof of work คืออะไร



Proof of work คืออะไร

Proof of work หรือ POW (หรือถ้าภาษาไทยเราจะเรียกว่าการพิสูจน์ด้วยการทำงาน) คือชุดกฎคำสั่งหรือ Protocol ที่ถูกตั้งไว้โดยกลุ่มนักพัฒนาของเหรียญนั้นๆ โดยจุดประสงค์หลักๆที่สร้างมันขึ้นมาก็เพื่อป้องกันการโจมตีแบบ DDoS (distributed denial-of-service attack) หรือการโจมตีที่มีเครื่องคอมพิวเตอรืหลายๆเครื่องส่ง request เข้ามาเพื่อโจมตีเซิฟเวอร์เดียวโดยหวังให้เครื่องเซิฟเวอร์นั้นทำงานหนักและล่ม

แนวคิดของ Proof of work เริ่มต้นขึ้นก่อนที่จะมี Bitcoin เสียอีก ทว่า Satoshi Nakamoto ก็ได้นำเอาเทคนิคนี้มาปรับใช้กับ Bitcoin ในภายหลัง

อันที่จริงแล้ว PoW นั้นถูกคิดค้นขึ้นโดย Cynthia Dwork และ Moni Naor ในปี 1993 แต่คนที่ตั้งชื่อให้มันว่า “proof of work” คือนาย Markus Jakobsson และ Ari Juels ในเอกสารที่พวกเขาตีพิมพ์เมื่อปี 1999

ทว่าในปัจจุบันนั้น Proof of work น่าจะเป็นไอเดียที่ถูกนำมาปรับใช้กับ Bitcoin ได้อย่างอัจฉริยะและชาญฉลาดมากที่สุดโดย Satoshi Nakamoto เมื่อปี 2008 เนื่องจากว่ามันมีการให้อนุญาต trustless และ distributed consensus (ระบบแบบไม่ต้องวางใจใครแต่ใช้การตัดสินใจของคนหมู่มากแทน)

Trustless และ Distributed consensus คืออะไร
ระบบ trustless และ distributed consensus นั้นจะสามารถทำให้คุณสามารถส่งเงินหาใครก็ได้แบบไม่จำเป็นต้องพึ่งพาธนาคารหรือบุคคลที่สาม

เวลาคุณจะส่งเงินให้เพื่อคุณระยะไกล และเพื่อนคุณต้องการเดี๋ยวนั้น คุณก็คงต้องพึ่งพาระบบของธนาคาร หรือ Visa, Mastercard และ PayPal โดยพวกเขานั้นนั้นมักจะทำการเก็บข้อมูลประวัติการทำธุรกรรมของลูกค้าไว้ในระบบ account ผู้ใช้งานต่างๆนั้นๆ

ตัวอย่างง่ายๆที่สามารถนำมาอธิบายได้ก็คือถ้านาย ค. ส่งเงินให้นาง ว. เป็นจำนวน 100 บาท ดังนั้นผู้ที่อยู่ตรงกลางหรือ trusted party ก็จะทำการคีย์ข้อมูลในระบบว่าบัญชีธนาคารของนาย ค. นั้นลดลง 100 บาท ในขณะที่บัญชีของนาง ว. นั้นเพิ่มขึ้น 100 บาท ซึ่งนี่คือการทำงานของระบบบุคคลที่สามที่พวกเขาต้องไว้วางใจ

แต่ทว่าใน Bitcoin และเหรียญ cryptocurrency อื่นๆ นั้น ทุกๆคนจะทำการเก็บบัญชีสมุดธนาคารหรือ ledger (Blockchain) ของผู้คนทั้งโลกที่ใช้เหรียญนั้นๆ ดังนั้นจึงไม่ต้องมีใครไว้วางใจบุคคลที่สามอีกต่อไป



Proof of work กับ การขุด
เรามาลงลึกกันไปเรื่อยๆ Proof of work นั้นคือ “หลักเกณฑ์ความต้องการ” ที่ต้องใช้กำลังในการประมวลผลทางด้านคอมพิวเตอร์ หรือจะเรียกว่าการขุดก็ได้เช่นกัน ซึ่งพลังในการคำนวณหรือขุดเหล่านั้นจะต้องถูกนำมาใช้เพื่อสร้างและบันทึกธุรกรรมแบบ trustless (หรือจะเรียกว่าบล็อกก็ได้) ขึ้นมาบนเครือข่ายกระจายศูนย์ (distributed ledger) ที่เรียกว่า Blockchain

เป้าหมายของการขุดนั้นมีอยู่สองข้อ

  1. เพื่อใช้ตรวจสอบธุรกรรมที่เกิดขึ้นใหม่หรือใช้เพื่อป้องกันการขี้โกงจากผู้จ่ายเงินเช่นการ “จ่ายสองครั้ง”
  2. เพื่อสร้างเหรียญดิจิตอลใหม่โดยการให้รางวัลนักขุดที่ทำงาน


เมื่อคุณทำธุรกรรม สิ่งเหล่านี้จะเกิดขึ้น

  1. ธุรกรรมจะถูกนำมามัดรวมกันไว้และเก็บในตัวเก็บข้อมูลที่เรียกว่าบล็อก
  2. นักขุดหลายๆ คนจะทำการตรวจสอบบล็อกนั้นๆ ว่าเป็นของจริงหรือไม่
  3. การที่จะทำเช่นนั้น นักขุดจะต้องแก้ไขสมการทางคณิตศาสตร์ที่เรียกว่าปัญหาของ proof of work
  4. รางวัลนั้นจะถูกมอบให้กับนักขุดคนแรกที่ทำการไขสมการและปิดบล็อกนั้นได้สำเร็จ
  5. บล็อกเก็บธุรกรรมที่ถูกตรวจสอบและปิดแล้วจะถูกเก็บไว้ใน Blockchain


โดยเจ้าสมการทางคณิตศาสตร์ดังกล่าวนี้ ฟีเจอร์ก็คือความไม่สมดุลของมัน หรือหากจะอธิบายง่ายๆก็คือ จะต้องทำให้มันทำให้แก้ไขได้ยาก แต่ก็ยังต้องถูกตรวจสอบได้ง่ายบนเครือข่ายอยู่ ซึ่งแนวคิดดังกล่าวนั้นยังมีชื่ออื่นๆที่เรียกแตกต่างกันไปว่า CPU cost function, client puzzle, computational puzzle หรือ CPU pricing function

นักขุดบนเครือข่ายนั้นจะต้องแข่งกันเพื่อที่จะเป็นที่หนึ่งในการแก้ไขสมการทางคณิตศาสตร์ที่ไม่มีวันที่จะไขได้โดยวิธีอื่นๆนอกจากการ brute force (การสุ่มและคาดเดาไปเรื่อย) ดังนั้นจึงทำให้มันมีความนานและยากพอสมควรในการขุด

เมื่อนักขุดทำการแก้ไขสมการสำเร็จ เขาจะประกาศบนเครือข่ายนักขุดว่าเขานั้นได้ค้นพบรางวัล (cryptocurrency prize) ที่ protocol ทำไว้ให้

หากมองในมมุมมองด้านเทคนิคนั้น การขุดเหรียญคริปโตคือขั้นตอนอย่างหนึ่งในการ inverse hasing โดยมันจะทำการกำหนดตัวเลข (nonce) ขึ้นมาเพื่อให้ระดับข้อมูลของบล็อกนั้นลดน้อยลงกว่าขั้นที่กำหนดไว้

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


ซึ่งขั้นตอนดังกล่าวนี้จะผลักดันให้ต้นทุนต่อการสร้างบล็อกใหม่หรือขุดนั้นสูงขึ้นด้วย เป็นการบังคับให้นักขุดต้องทำการอัพเกรดอุปกรณ์ในการขุดของพวกเขาเพื่อสมดุลของเศรษฐกิจองค์รวม การอัพเดตค่า difficulty นั้นจะเกิดขึ้นโดยเฉลี่ยที่ทุกๆ 14 วัน และการตั้งค่าความยากเพื่อให้สร้างบล็อกใหม่นั้นจะถูกคำนวณไว้ให้เกิดบล็อกใหม่ที่ทุกๆ 10 นาที

Proof of work นั้นยังถูกแบ่งแยกย่อยไปอีกหลายๆแบบ และมีฟังก์ชันที่แตกต่างกัน เนื่องจากมันต้องถูกนำมาปรับใช้กับ Blockchain ของคนละตัว 









CryptomineTH
ที่มา : Siamblockchain

ขับเคลื่อนโดย Blogger.