ปกบทความ Hashcash กับต้นกำเนิด Proof of Work

Hashcash กับต้นกำเนิด Proof of Work เครื่องมือกันสแปมที่กลายเป็นหัวใจของ Bitcoin

Proof of Work ไม่ได้เกิดพร้อม Bitcoin ต้นทางคืองานวิจัยปี 1992 ที่แก้ปัญหาอีเมลขยะ และเครื่องมือที่ Satoshi หยิบไปใช้จริงคือ hashcash ของ Adam Back ปี 1997 บทความนี้ไล่จากเอกสารต้นทางทุกชิ้น พร้อมตัวเลขว่างานต่อหนึ่งบล็อกวันนี้หนักกว่าแสตมป์ปี 1997 แค่ไหน

Proof of Work ไม่ได้เกิดพร้อม Bitcoin และไม่ได้ถูกคิดขึ้นมาเพื่อเงินด้วยซ้ำ ต้นทางของมันคืองานวิจัยปี 1992 ที่พยายามแก้ปัญหาอีเมลขยะ และเครื่องมือที่ Satoshi หยิบไปใช้จริงคือ hashcash ของ Adam Back ซึ่งประกาศบนเมลลิงลิสต์เมื่อวันที่ 28 มีนาคม 1997 บทความนี้ไล่ตั้งแต่เปเปอร์ต้นทาง ไปจนถึงอีเมลในเดือนสิงหาคม 2008 ที่ทำให้ Bitcoin Whitepaper มีรายการอ้างอิงอย่างที่เราเห็นทุกวันนี้ พร้อมตัวเลขว่างานที่เครือข่ายต้องทำต่อหนึ่งบล็อกวันนี้หนักกว่าแสตมป์อีเมลของปี 1997 แค่ไหน

เริ่มจากปัญหาที่ไม่เกี่ยวกับเงินเลย

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

Cynthia Dwork และ Moni Naor สองนักวิจัยจาก IBM Almaden Research Center เสนอทางแก้ในงานประชุม CRYPTO ปี 1992 ด้วยเปเปอร์ชื่อ Pricing via Processing or Combatting Junk Mail แนวคิดของพวกเขาเรียบง่ายมาก ถ้าการส่งอีเมลฟรีเกินไป ก็ทำให้มันไม่ฟรี แต่แทนที่จะคิดเป็นเงิน ให้คิดเป็นงานคำนวณ

หน้าแรกของเปเปอร์ Pricing via Processing or Combatting Junk Mail

ภาพ: หน้าแรกของเปเปอร์ที่ Cynthia Dwork และ Moni Naor เสนอในงานประชุม CRYPTO ปี 1992 บทคัดย่อระบุแนวคิดไว้ตรงตัวว่าให้ผู้ใช้ต้องคำนวณฟังก์ชันที่ยากพอควร แต่ไม่ถึงกับทำไม่ได้ ก่อนจะได้สิทธิ์ใช้ทรัพยากร ที่มา: เอกสารเผยแพร่ของเปเปอร์ต้นฉบับ

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

นี่คือแนวคิดหลักของสิ่งที่ภายหลังถูกเรียกว่า proof of work ทั้งหมด คือการเปลี่ยนสิทธิ์ในการใช้ทรัพยากรร่วม ให้เป็นของที่ต้องจ่ายด้วยงานคำนวณจริง ไม่ใช่ด้วยคำสัญญาหรือตัวตนที่ปลอมได้

ข้อสังเกตที่หลายคนมองข้ามคือเปเปอร์ของ Dwork และ Naor ไม่ได้อยู่ในรายการอ้างอิงของ Bitcoin Whitepaper สิ่งที่ Satoshi อ้างคือ hashcash ซึ่งเป็นงานที่มาทีหลังห้าปี

28 มีนาคม 1997 อีเมลฉบับหนึ่งบนเมลลิงลิสต์ cypherpunks

ห้าปีต่อมา Adam Back นักวิจัยหลังปริญญาเอกที่ University of Exeter ส่งอีเมลหัวข้อ [ANNOUNCE] hash cash postage implementation เข้าไปในเมลลิงลิสต์ cypherpunks ซึ่งเป็นที่รวมตัวของนักเข้ารหัสที่สนใจเรื่องความเป็นส่วนตัวและเงินอิเล็กทรอนิกส์ หัวจดหมายระบุเวลาไว้ว่า Fri, 28 Mar 1997 16:52:26 GMT

หัวจดหมายและย่อหน้าแรกของโพสต์ประกาศ hashcash ปี 1997

ภาพ: โพสต์ที่ Adam Back ส่งเข้าเมลลิงลิสต์ cypherpunks หัวจดหมายระบุวันเวลาไว้ว่า Fri, 28 Mar 1997 16:52:26 GMT และย่อหน้าแรกอธิบายแนวคิดของแสตมป์ที่คิดราคา เป็นการชนกันบางส่วนของค่าแฮช ที่มา: สำเนาที่ Adam Back เก็บไว้บน hashcash.org

สิ่งที่ Back ทำต่างจากเปเปอร์ปี 1992 คือเขาไม่ได้เสนอทฤษฎี เขาแนบโค้ดที่คอมไพล์แล้วรันได้จริงมาด้วย และเลือกใช้ฟังก์ชันที่ง่ายกว่าฟังก์ชันคณิตศาสตร์หนักๆ ในเปเปอร์เดิม นั่นคือการหาการชนกันบางส่วนของค่าแฮช หรือ partial hash collision

The idea of using partial hashes is that they can be made arbitrarily expensive to compute (by choosing the desired number of bits of collision), and yet can be verified instantly.

แปลได้ว่าจุดเด่นของการใช้แฮชบางส่วนคือมันถูกทำให้แพงเท่าไรก็ได้ตามต้องการ โดยเลือกจำนวนบิตที่อยากให้ตรงกัน แต่กลับตรวจสอบได้ทันที ที่มา: โพสต์ประกาศ hashcash วันที่ 28 มีนาคม 1997 ซึ่ง Adam Back เก็บสำเนาไว้บน hashcash.org เอง

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

hashcash ทำงานอย่างไร ดูจากตัวอย่างในโพสต์ต้นฉบับ

วิธีนับงานของ hashcash คือนับว่าค่าแฮชที่ได้มีบิตศูนย์นำหน้ากี่บิต ยิ่งต้องการบิตมาก ยิ่งต้องลองสุ่มมากขึ้นแบบทวีคูณ ในโพสต์ปี 1997 Back สาธิตด้วยเครื่องของเขาเองไว้เป็นขั้นตอน

  • ความเร็วเครื่อง คำสั่งทดสอบรายงานว่าทำได้ราว 7,274 ครั้งของการแฮชต่อวินาที ซึ่งเป็นเครื่องพีซีทั่วไปของยุคนั้น
  • ขอ 17 บิต โปรแกรมประเมินว่าใช้เวลาราว 9 วินาที และรอบที่สาธิตใช้การลองไป 57,450 ครั้งจึงเจอคำตอบ
  • คำตอบที่ได้ คือสตริง 09948flame356018443 ซึ่งเมื่อนำไปแฮชแล้วบิตนำหน้าตรงกับค่าอ้างอิงถึง 20 บิต มากกว่าที่ขอไว้สามบิตเพราะโชคดี
  • การตรวจสอบ ใครก็ตามที่ได้รับสตริงนี้ แค่รันคำสั่งแฮชหนึ่งครั้งก็รู้ทันทีว่างานถูกทำมาจริงหรือไม่

ตัวอย่างการใช้งาน hashcash ในโพสต์ประกาศปี 1997

ภาพ: ตัวอย่างที่ Back สาธิตในโพสต์เดียวกัน เครื่องของเขาทำได้ 7,274 ครั้งของการแฮช ต่อวินาที และใช้การลอง 57,450 ครั้งจึงได้คำตอบ บรรทัดล่างสุดคือค่าแฮช SHA-1 สองค่า ที่บิตนำหน้าตรงกันยี่สิบบิต ซึ่งตรวจได้ด้วยตาเปล่า ที่มา: hashcash.org

ตัวเลขที่ Back ยกในโพสต์เดียวกันอธิบายว่าทำไมมันถึงกันสแปมได้ ถ้ากำหนดให้ทุกฉบับต้องมีแสตมป์ 20 บิต คนส่งอีเมลปกติวันละไม่กี่ฉบับจะรอไม่กี่นาที แต่คนที่จะยิงหนึ่งล้านฉบับต้องใช้กำลังคำนวณระดับที่เขาเขียนไว้ในโพสต์ว่าเท่ากับ 100 MIP years ซึ่งในปี 1997 คือกำแพงที่สแปมเมอร์ทั่วไปข้ามไม่ได้

บนเครื่องที่ทำได้ 7,274 ครั้งต่อวินาที การหาแสตมป์ 20 บิตหนึ่งใบต้องลองเฉลี่ยราว 1,048,576 ครั้ง คิดเป็นเวลาราว 144 วินาที หรือสองนาทีครึ่ง นี่คือขนาดของหนึ่งหน่วยงาน ที่โลกยุคนั้นมองว่าหนักพอจะใช้เป็นแสตมป์

สิ่งที่ hashcash ทำไม่ได้ และเป็นช่องที่ยังเปิดอยู่

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

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

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

สรุปเป็นประโยคเดียวคือ hashcash แก้ปัญหาการสร้างของที่มีต้นทุนจริงได้แล้ว แต่ไม่ได้แก้ปัญหาการตกลงร่วมกันว่าใครเป็นเจ้าของอะไร ซึ่งเป็นคนละโจทย์กันโดยสิ้นเชิง กลไกของ Proof of Work ในเชิงเทคนิคเต็มรูปแบบอ่านต่อได้ที่บทความ Proof of Work คืออะไร

2004 Hal Finney พยายามทำให้แสตมป์ใช้ซ้ำได้

วันที่ 15 สิงหาคม 2004 Hal Finney โพสต์เข้าเมลลิงลิสต์เดียวกันเพื่อเชิญให้คนลองใช้เซิร์ฟเวอร์ใหม่ของเขาชื่อ rpow.net ชื่อเต็มของระบบคือ Reusable Proofs of Work หรือ RPOW ซึ่งชื่อบอกโจทย์ไว้ตรงตัวว่าเขาพยายามแก้ข้อจำกัดข้อไหนของ hashcash

Each RPOW or POW token can only be used once but since it gives birth to a new one, it is as though the same token can be handed from person to person.

แปลได้ว่าโทเคน RPOW หรือ POW แต่ละใบใช้ได้ครั้งเดียว แต่เพราะมันให้กำเนิดใบใหม่ทุกครั้ง จึงเหมือนกับว่าโทเคนใบเดิมถูกส่งต่อจากคนหนึ่งไปอีกคนหนึ่งได้ ที่มา: โพสต์ประกาศ RPOW ของ Hal Finney วันที่ 15 สิงหาคม 2004

หน้าเว็บ rpow.net ของ Hal Finney สำเนาเดือนสิงหาคม 2004

ภาพ: หน้าเว็บของ RPOW ซึ่ง Hal Finney เปิดให้คนทดลองใช้ในเดือนสิงหาคม 2004 ระบบนี้รับแสตมป์ hashcash เข้ามาแลกเป็นโทเคนที่ส่งต่อกันได้ ที่มา: Internet Archive สำเนาวันที่ 20 สิงหาคม 2004

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

คำถามที่ตามมาทันทีคือแล้วจะเชื่อเซิร์ฟเวอร์ได้อย่างไร คำตอบของ Finney คือสิ่งที่ทำให้ RPOW แตกต่างจากระบบอื่นในยุคเดียวกัน เขารันเซิร์ฟเวอร์บนการ์ดประมวลผลความปลอดภัยสูงรุ่น IBM 4758 ที่ผ่านมาตรฐาน FIPS-140 ระดับ 4 ซึ่งสามารถส่งใบรับรองที่เซ็นแล้วออกมาบอกได้ว่าซอฟต์แวร์ที่รันอยู่บนการ์ดคือตัวไหน ใครก็ตามที่สนใจพอจะไปเทียบกับซอร์สโค้ดที่เผยแพร่ไว้ได้เอง

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

สิงหาคม 2008 อีเมลที่เปลี่ยนรายการอ้างอิงของ Whitepaper

สี่ปีต่อมา ในเดือนสิงหาคม 2008 ซึ่งเป็นสองเดือนก่อน Bitcoin Whitepaper จะถูกเผยแพร่ Satoshi Nakamoto ติดต่อ Adam Back เพื่อถามเรื่องวิธีอ้างอิง hashcash ให้ถูกต้อง เอกสารชุดนี้ถูกยื่นเข้าเป็นหลักฐานในคดีที่ศาลอังกฤษเมื่อเดือนกุมภาพันธ์ 2024 และรายงานตรงกันว่าประกอบด้วยอีเมลห้าฉบับ โดย Back ตอบกลับพร้อมแนะนำให้ไปดูข้อเสนอชื่อ b-money ของ Wei Dai

ฝั่งที่ยืนยันคำต่อคำได้จากเอกสารที่ Wei Dai เผยแพร่เองคืออีเมลฉบับวันที่ 22 สิงหาคม 2008 ซึ่ง Satoshi เขียนถึง Wei Dai โดยตรง

I was very interested to read your b-money page. I'm getting ready to release a paper that expands on your ideas into a complete working system. Adam Back (hashcash.org) noticed the similarities and pointed me to your site.

แปลได้ว่าเขาสนใจหน้า b-money มาก กำลังจะปล่อยเปเปอร์ที่ขยายแนวคิดนั้นให้เป็นระบบที่ทำงานได้จริง และ Adam Back เจ้าของ hashcash.org เป็นคนสังเกตเห็นความคล้ายแล้วชี้ทางมาให้ ที่มา: อีเมลลงวันที่ 22 สิงหาคม 2008 ที่ Wei Dai เผยแพร่เอง

ประโยคนี้สำคัญเพราะมันบอกลำดับที่ชัดเจน คือตอนที่ Satoshi เขียนโค้ดไปมากแล้ว เขายังไม่เคยอ่าน b-money และคนที่พาเขาไปเจอคือ Adam Back จากคำถามเรื่องการอ้างอิง hashcash นั่นเอง

หน้ารายการอ้างอิงท้าย Bitcoin Whitepaper

ภาพ: รายการอ้างอิงทั้งแปดรายการท้าย Whitepaper รายการที่หนึ่งคือ b-money ของ Wei Dai และรายการที่หกคือ hashcash ของ Adam Back ส่วนเปเปอร์ของ Dwork และ Naor ไม่ปรากฏในรายการ ที่มา: bitcoin.org

ผลลัพธ์อยู่ในหน้าสุดท้ายของ Whitepaper รายการอ้างอิงแปดรายการมี b-money ของ Wei Dai เป็นรายการที่หนึ่ง และ hashcash ของ Adam Back เป็นรายการที่หก ส่วนเปเปอร์ของ Dwork และ Naor ที่เป็นต้นทางของแนวคิดทั้งหมดกลับไม่มีอยู่ในรายการ

Satoshi เอา hashcash ไปใช้กับโจทย์คนละข้อ

จุดที่คนมักเข้าใจผิดคือคิดว่า Bitcoin เอา hashcash มาใช้เป็นเงินโดยตรง ความจริงคือ Satoshi เอาเครื่องมือเดิมไปใช้แก้ปัญหาที่ hashcash ไม่ได้ตั้งใจแก้

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

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

วันนี้หนึ่งบล็อกหนักกว่าแสตมป์ปี 1997 เท่าไร

เพราะ hashcash วัดงานเป็นจำนวนบิต และงานของ Bitcoin ก็แปลงกลับมาเป็นหน่วยเดียวกันได้ เราจึงเทียบสองอย่างนี้ตรงๆ ได้ สูตรคือจำนวนบิตเท่ากับลอการิทึมฐานสองของค่าความยาก บวกด้วยสามสิบสอง

งานที่เครือข่าย Bitcoin ต้องทำต่อหนึ่งบล็อก วัดเป็นจำนวนบิต
2009
บล็อกแรก
32 บิต
2026
ปัจจุบัน
79.10 บิต
200920132017202120252026
ที่มา: คำนวณจากค่าความยาก (difficulty) รายวันของ blockchain.com โดยใช้สูตร จำนวนบิต เท่ากับ ลอการิทึมฐานสองของค่าความยาก บวกสามสิบสอง หน่วยเดียวกับที่ hashcash ใช้นับบิตศูนย์นำหน้ามาตั้งแต่ปี 1997

เส้นกราฟเริ่มที่ 32 บิตในวันที่บล็อกแรกถูกขุดเมื่อเดือนมกราคม 2009 ซึ่งตอนนั้นค่าความยากเท่ากับหนึ่ง และไต่ขึ้นมาเรื่อยๆ จนถึงราว 79 บิตในปัจจุบัน ตัวเลขชุดนี้แปลเป็นภาษาคนได้ดังนี้ โดยข้อมูลค่าความยากเป็นของวันที่ 21 กันยายน 2569

  • แสตมป์ hashcash ปี 1997 ต้องการงาน 20 บิต ใช้เวลาราวสองนาทีครึ่งบนเครื่องพีซียุคนั้น
  • บล็อกแรกของ Bitcoin ปี 2009 ต้องการงาน 32 บิต หรือราวสี่พันล้านครั้งของการแฮชต่อหนึ่งบล็อก
  • หนึ่งบล็อกวันนี้ ต้องการงานราว 78.9 บิต คิดเป็นการแฮชเฉลี่ยราว 5.7 ตามด้วยเลขศูนย์ยี่สิบสามตัวครั้งต่อหนึ่งบล็อก
  • ถ้าใช้เครื่องของ Adam Back ปี 1997 เครื่องเดียว ขุดหนึ่งบล็อกวันนี้ต้องใช้เวลาราว 2.5 ล้านล้านปี ซึ่งยาวกว่าอายุจักรวาลหลายร้อยเท่า

ตัวเลขนี้ตรวจไขว้ได้ด้วย เพราะถ้าเอางานต่อบล็อกหารด้วยสิบนาทีที่เป็นจังหวะเฉลี่ย จะได้กำลังขุดรวมราว 950 EH/s ขณะที่ blockchain.com รายงานกำลังขุดจริงไว้ที่ราว 937 EH/s ต่างกันราว 1.4 เปอร์เซ็นต์ ซึ่งเป็นช่วงที่คาดได้จากความผันผวนของจังหวะบล็อก

ลองนับศูนย์ด้วยตาตัวเอง

ข้อดีของหน่วยวัดแบบ hashcash คือมันไม่ใช่นามธรรม ใครก็เปิดเว็บสำรวจบล็อกแล้วนับเองได้ ตอนที่เขียนบทความนี้ บล็อกล่าสุดของ Bitcoin คือบล็อกที่ 967,955 และค่าแฮชของมันคือ 0000000000000000000125a5261bc3c4b19cf6c0bd097cbfc46ab22d1706b091

ลองนับเลขศูนย์ที่อยู่หน้าสุดจะได้ 19 ตัว ค่าแฮชเขียนในระบบเลขฐานสิบหก ซึ่งหนึ่งหลักแทนสี่บิต ศูนย์ 19 หลักจึงเท่ากับศูนย์ 76 บิต และหลักถัดมาคือเลข 1 ซึ่งในระบบเลขฐานสองคือ 0001 จึงมีศูนย์นำหน้าอีกสามบิต รวมเป็นศูนย์นำหน้า 79 บิตพอดี ตรงกับค่าที่กราฟข้างบนบอกไว้

หน้ารายละเอียดบล็อกที่ 967,955 บนเว็บสำรวจบล็อกของ blockchain.com

ภาพ: หน้าข้อมูลบล็อกจริงบนเว็บสำรวจบล็อก ช่อง Difficulty แสดงค่า 132,757,073,449,487.52 ซึ่งเป็นตัวเลขชุดเดียวกับที่ใช้คำนวณกราฟและตัวเลขทั้งหมด ในบทความนี้ ส่วนช่อง Nonce คือเลขที่นักขุดสุ่มเปลี่ยนไปเรื่อยๆ จนกว่าค่าแฮช จะมีศูนย์นำหน้าครบตามที่กติกากำหนด ที่มา: blockchain.com

สิ่งที่ Adam Back ให้คนนับด้วยตาเปล่าในปี 1997 กับสิ่งที่เครือข่ายมูลค่าหลายแสนล้านดอลลาร์ใช้ตัดสินกันทุกสิบนาทีในวันนี้ จึงเป็นการนับแบบเดียวกันเป๊ะ ต่างกันแค่จำนวนบิตที่กติกาบังคับ

hashcash วันนี้ยังอยู่ไหม

ยังอยู่ และเว็บ hashcash.org ก็ยังเปิดอยู่ในหน้าตาเดิมของยุคต้นปี 2000 หน้าแรกของเว็บเขียนเองอย่างตรงไปตรงมาว่าตอนนี้ hashcash ถูกใช้งานหนักที่สุดในฐานะฟังก์ชันขุดของ Bitcoin

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

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

หน้าแรกของ hashcash.org

ภาพ: หน้าแรกของ hashcash.org ที่ยังใช้งานอยู่ ข้อความบรรทัดที่สามเขียนเองว่า ปัจจุบัน hashcash ถูกใช้งานมากที่สุดในฐานะฟังก์ชันขุดของ Bitcoin ที่มา: hashcash.org (ครอบตัดแบนเนอร์โฆษณาด้านบนออก)

เรื่องนี้เกี่ยวกับคนไทยอย่างไร

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

อีกประเด็นที่ควรแยกให้ชัดในบริบทไทยคือการขุดกับการซื้อขายเป็นคนละเรื่องในทางกฎหมาย พระราชกำหนดการประกอบธุรกิจสินทรัพย์ดิจิทัล พ.ศ. 2561 กำกับผู้ประกอบธุรกิจอย่างศูนย์ซื้อขาย นายหน้า และผู้ค้าสินทรัพย์ดิจิทัล ซึ่งเป็นการกำกับที่ตัวกลาง ไม่ใช่การกำกับกิจกรรมการคำนวณของเครื่องขุด ผู้ที่จะขุดในไทยจึงต้องดูกฎหมายด้านอื่นเป็นหลัก เช่น เรื่องไฟฟ้า ภาษี และการนำเข้าอุปกรณ์ ข้อมูลนี้เพื่อประกอบการทำความเข้าใจ ไม่ใช่คำแนะนำทางกฎหมายที่ผ่านทนายความ

คำถามที่พบบ่อย

ใครเป็นคนคิด Proof of Work กันแน่

แนวคิดมาจาก Cynthia Dwork และ Moni Naor ในปี 1992 ส่วนการทำให้แนวคิดนั้นกลายเป็นโปรแกรมที่ใช้งานได้จริงบนอินเทอร์เน็ตคือผลงานของ Adam Back กับ hashcash ในปี 1997 ส่วน Satoshi เป็นคนแรกที่เอามันไปใช้แก้ปัญหาการตกลงร่วมกันของเครือข่าย ซึ่งไม่มีใครในสองกลุ่มแรกตั้งใจจะแก้

Adam Back คือ Satoshi หรือเปล่า

ไม่มีหลักฐานที่ชี้แบบนั้น และตัว Back เองปฏิเสธมาตลอด สิ่งที่หลักฐานบอกได้คือเขาเป็นคนที่ Satoshi ติดต่อไปถามเรื่องการอ้างอิงในเดือนสิงหาคม 2008 และเป็นคนชี้ให้ไปดู b-money อ่านเรื่องตัวตนของผู้สร้างต่อได้ที่บทความ Satoshi Nakamoto คือใคร

ทำไม Bitcoin ต้องเปลืองพลังงาน ใช้แค่ hashcash เฉยๆ ไม่ได้เหรอ

เพราะงานที่ทำใน Bitcoin ไม่ได้เป็นแค่ค่าผ่านทาง แต่เป็นสิ่งที่ทำให้การย้อนแก้ประวัติศาสตร์แพงเกินคุ้ม ถ้าลดงานลง ต้นทุนในการโจมตีก็ลดลงตามทันที ส่วน hashcash ไม่มีสายโซ่และไม่มีรางวัล จึงไม่มีอะไรให้ปกป้องตั้งแต่แรก

ทำไม Whitepaper ไม่อ้างเปเปอร์ของ Dwork และ Naor

ไม่มีคำอธิบายจากตัว Satoshi เอง สิ่งที่ยืนยันได้คือรายการอ้างอิงแปดรายการท้าย Whitepaper มี hashcash อยู่ในลำดับที่หก แต่ไม่มีเปเปอร์ปี 1992 และจากลำดับเหตุการณ์เรื่อง b-money ก็เห็นได้ว่ารายการอ้างอิงถูกเติมระหว่างทาง ไม่ได้วางไว้ครบตั้งแต่ต้น

แต่สายอ้างอิงไม่ได้ขาด เพราะเปเปอร์ hashcash ปี 2002 ที่ Whitepaper อ้างถึงนั้น อ้างเปเปอร์ของ Dwork และ Naor ไว้เป็นรายการที่สองของตัวเอง คนที่ตามอ่านต่อหนึ่งชั้นจะเจอต้นทางเสมอ

รายการอ้างอิงในเปเปอร์ hashcash ปี 2002 ของ Adam Back

ภาพ: รายการอ้างอิงของเปเปอร์ hashcash เอง รายการที่สองคือเปเปอร์ Pricing via processing or combatting junk mail ของ Cynthia Dwork และ Moni Naor ปี 1992 ที่มา: hashcash.org

ตกลง hashcash เกิดเดือนมีนาคมหรือพฤษภาคม 1997

เอกสารสองชิ้นของ Adam Back เองระบุไม่ตรงกัน หัวจดหมายของโพสต์ประกาศระบุชัดว่า Fri, 28 Mar 1997 ส่วนบทคัดย่อและรายการอ้างอิงในเปเปอร์ปี 2002 เขียนว่าเดือนพฤษภาคม 1997 หลักฐานที่มีวันเวลากำกับแน่นอนกว่าคือหัวจดหมาย บทความนี้จึงยึดวันที่ 28 มีนาคม 1997 เป็นวันประกาศ และบันทึกความไม่ตรงกันนี้ไว้ให้ผู้อ่านเห็นแทนที่จะเลือกข้างเงียบๆ

RPOW ยังใช้ได้อยู่ไหม

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

สรุป

เส้นทางของ Proof of Work เดินมาสามช่วง ช่วงแรกคือแนวคิดว่าจะเก็บค่าผ่านทางเป็นงานคำนวณ ซึ่งเกิดในงานวิจัยปี 1992 ช่วงที่สองคือ hashcash ปี 1997 ที่ทำให้แนวคิดนั้นเป็นโค้ดที่รันได้และวัดงานเป็นจำนวนบิต ช่วงที่สามคือ Bitcoin ที่เอาเครื่องมือเดิมไปใช้ตอบคำถามใหม่ว่าใครจะเป็นคนตัดสินว่าอะไรเกิดขึ้นก่อนหลัง

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

บทความทั้งหมด