EP 3 : การบันทึกเวลา (Timestamp Server)

Planning


Outline-text

ชื่อหัวข้อที่จะนำเสนอ

  • EP 3 : การบันทึกเวลา (Timestamp Server)

โครงสร้างของเนื้อหา

  • หัวข้อที่ 1 : เกริ่นนำ : จาก EP 2 : ธุรกรรม (Transactions) เมื่อเริ่มทำธุรกรรมแบบไม่มีตัวกลาง จนเกิดปัญหาที่เรียกว่า Double-spending ผู้สร้าง Bitcoin ได้หาวิธีการในการปัญหาดังกล่าวแล้ว แต่มันก็ยังไม่สามารถแก้ปัญหาทั้งหมด ใน EP 3 นี้เราจะมาดูกันต่อว่า Bitcoin Whitepaper มีวิธีการอะไรที่เพิ่มขึ้นมาเพื่อแก้ปัญหา Double-spend
  • หัวข้อที่ 2 : การบันทึกเวลา (Timestamp Server) ถูกนำมาใช้ยังไง ในการแก้ปัญหา Double-spend (ขึ้นชื่อว่าเวลาแต่ไม่ใช่เวลา ไม่เกี่ยวข้องกับเวลา)
  • หัวข้อที่ 3 : แต่การบันทึกเวลา (Timestamp Server) มันยังไม่จบแค่นั้น เพราะว่ามันต้องใช้ระบบ Proof-of-Work เข้ามาช่วย ช่วยยังไง ? ติดตามต่อใน EP 4 : Proof-of-Work - Experimental :globe_with_meridians: / Content Board - Hashpire Community

Q 1 : จาก EP 2 ธุรกรรม (Transactions) ไม่สามารถยืนยันได้ 100 % ว่าจะไม่เกิดการ Double spending เพราะเรารู้แค่ว่าเราเป็นผู้รับเงินแล้วแน่ ๆ ไม่ได้ยืนยันว่าธุรกรรมของเราจะไม่ถูกปฏิเสธด้วยการทำ Double spending เราจะแก้ไขได้ยังไง
Q 2 : ถ้าใช้ timestamp ในการแก้ปัญหา เรื่อง Transactions ว่าอันไหนเกิดขึ้นก่อนหรือเกิดขึ้นที่หลัง แล้วมีเวลาบันทึกไว้ แบบนี้ time zone ของแต่ละประเทศที่ไม่ตรงกันจะมีผลไหม ?

ประเด็นสำคัญของบทความ

  • การบันทึกเวลา (Timestamp Server)

สิ่งที่ผู้อ่านจะได้รับจากบทความ

  • เข้าใจการบันทึกเวลา (Timestamp Server) ของ Bitcoin

Outline-graphic

รูปแบบของกราฟฟิค + โครงสร้าง


คำถามที่รบกวนให้ Reviewer ช่วยตอบค่ะ

1. ต้องการรู้ประเด็นไหนเพิ่มเติมไหม เพราะอะไร

2. คิดว่าเรียงลำดับการนำเสนอได้ดีรึยัง ถ้าไม่ดี มีไอเดียอย่างไร

3. มีประเด็นไหนควรตัดทิ้งไหม เพราะอะไร


:memo: Content text + graphic

คำศัพท์ที่ควรรู้ก่อนอ่านบทความ
Node : ผู้ที่มีส่วนร่วมในเครือข่าย หมายถึงคอมพิวเตอร์หรืออุปกรณ์ที่เชื่อมต่อเข้ากับเครือข่าย Blockchain
Chain : สายโซ่ที่เชื่อมต่อ Block เข้าหากันในเครือข่าย Blockchain
Block : การจัดเก็บข้อมูล

จาก EP 2 : ธุรกรรม (Transactions) เราจะเห็นได้ว่า Bitcoin ทำการประกาศธุรกรรมทั้งหมดเป็นสาธารณะ เพื่อให้ทุก Node ในเครือข่ายเป็นผู้ตัดสินว่านี้เป็นการได้รับธุรกรรมครั้งแรกจริง ไม่ใช่ธุรกรรมที่ถูกทำซ้ำ แต่ปัญหาก็คือ ก่อนที่แต่ละ Node จะสามารถตัดสินความถูกต้องของธุรกรรมได้ จะต้องมีอันดับธุรกรรมที่จัดเรียงแบบเดียวกันก่อน เพื่อบ่งบอกว่าธุรกรรมใดมาก่อนหรือหลัง ดังนั้น Bitcoin จึงมีการเพิ่มกลไกที่เรียกว่า “การบันทึกเวลา (Timestamp Server)” เข้ามาช่วยในการจัดอันดับธุรกรรม

การบันทึกเวลา (Timestamp Server) คืออะไร

จากชื่อหัวข้อที่เป็น การบันทึกเวลา (Timestamp Server) ทำให้หลายคนเข้าใจว่า Bitcoin นำเอาเวลาเข้ามาใช้ในการจัดอันดับธุรกรรมและอาจเกิดข้อสงสัยว่าจะมีปัญหาหรือไม่ เนื่องจากเวลาของแต่ละประเทศไม่เท่ากัน ซึ่งในความเป็นจริงแล้วการทำ Timestamp Server ในที่นี้ไม่ได้มีการนำเวลาจริงเข้ามาเกี่ยวข้อง

แต่เป็นการนำ Hash ของ Block ก่อนหน้ามารวมกับข้อมูลของ Block ปัจจุบัน จึงจะได้ผลรวมออกมาเป็น Hash ปัจจุบันและเผยแพร่ค่า Hash ออกไปให้ทุกคนในเครือข่ายได้รับทราบ โดยจะทำแบบนี้ต่อไปเรื่อย ๆ เป็น Chain

การทำ Timestamp Server สามารถช่วยจัดอันดับธุรกรรม ทำให้แต่ละ Node มีอันดับธุรกรรมที่จัดเรียงแบบเดียวกันและทราบว่าธุรกรรมใดมาก่อนหรือหลังได้ เนื่องจาก Hash ของ Block ปัจจุบันเกิดจากองค์ประกอบ 2 ส่วน คือ Hash ของ Block ก่อนหน้ากับข้อมูลของ Block ปัจจุบัน ดังนั้นเมื่อ “Hash ของ Block ก่อน” เป็นเป็นองค์ในการสร้าง Hash ของ Block ถัดไป เราจึงสามารถทราบลำดับของ Block ได้จาก Hash นั่นเอง

ปัญหาเก่าพึ่งแก้ไป ปัญหาใหม่มีมาต่อ!!! เนื่องจากในการใช้งานจริงมีการส่ง Block ไปมาจำนวนมาก ซึ่งทำให้แต่ละ Node อาจมี Timestamp Server ที่แตกต่างกันไป แล้วเราจะทราบได้อย่างไรว่า Timestamp Server ชุดใดถูกต้อง Bitcoin จะมีวิธีแก้ปัญหานี้ได้อย่างไร ติดตามต่อได้ใน Series : Bitcoin Whitepaper EP ต่อไป

Reference

  • อันนี้แปลถูกใช่ไหมครับ ไม่มั่นใจว่าชื่อไทยควรใช้ยังไง แต่อยากให้อิงกับ PDF ที่แปลไทยตัว Bitcoin white paper ครับ ฝากลองเช็คอีกทีครับ
  • ใช้คำแทนว่า “ผู้สร้าง Bitcoin” ***ฝากแก้จุดอื่นๆ ด้วย

เขาใช้คำนี้ค่ะ เลยใช้ตามไม่แน่ใจว่าควรปรับยังไงมั้ย

สำหรับหัวข้อนี้คิดว่าน่าจะเข้าใจตรงกับพี่น้ำตาลคือเจาะ 2 ประเด็นถูกต้องไหมคะ

  1. ทำไมการใช้ timestamp server ถึงยังไม่พอ – เกิดปัญหา / ช่องโหว่อ่ะไร ถึงต้องคิดค้น concept : Proof-of-work เข้ามา
  2. ช่วยแก้ไขปัญหาอย่างไร

ควรเพิ่มเนื้อหา timestamp timezone ดีไหมครับ

@Namtan พี่มีแก้รูปประโยคไป น้องลองอ่านอีกที พี่พิมพ์ตกไหม ถ้าโอเคแล้วถือว่าโอละครับ ฝาก @Pantitas @parinyar @anakornk รีวิวอีกทีครับ

Review !!!

@Namtan

  1. ว่านี้ !!! ไม่เอาประโยคติดปากนะครับ ลองอ่านแล้วรีวิวใหม่ 55555
  1. พี่ว่ามันดีแล้วแหละ แต่ไม่ใช่ทุกคนจะเข้าใจว่าแล้วอะไรที่มันทำให้มันจัดอันดับธุรกรรมว่าอะไรมาก่อนมาหลังได้ ตอนต้นเราบอกแค่ว่า Hash ของ block ปัจจุบันเกิดจากวัตถุดิบ 2 ส่วนคือ hash ของ block ก่อนหน้ากับข้อมูลของ block ปัจจุบัน ดังนั้นเมื่อ “hash ของ block ก่อน” มันเป็นวัตถุดิบในการสร้าง hash ของ block ถัดไป เราจึงสามารถรู้ลำดับของ block ได้จาก hash นั่นเอง ลองไปปรับให้อธิบายเข้าใจง่ายๆ ดูนะครับ

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