EP 7 : Reclaiming Disk Space

Planning


Outline-text

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

  • EP 7 : Reclaiming Disk Space

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

  • หัวข้อที่ 1 : เกริ่นนำ ถ้าหากเราว่าทำธุรกรรมมากมาย แล้วพื้นที่จัดเก็บข้อมูลของ Bitcoin จะเต็มหรือไม่ แล้ว Bitcoin จัดการกับปัญหานี้อย่างไร
  • หัวข้อที่ 2 : วิธีการในการจัดการกับธุรกรรมต่าง ๆ เพื่อประหยัดพื้นที่ของ Bitcoin
  • หัวข้อที่ 3 : Header (ข้อมูลส่วนแรกที่ถูกเก็บใน Block) ของ Block ที่ไม่มีธุรกรรมนั้นจะมีขนาดเท่าใด คำนวณอย่างไร
  • หัวข้อที่ 4 : ปกติแล้วการทำธุรกรรมต้องมีขั้นตอนในการตรวจสอบธุรกรรมเสมอไม่ว่าทางใดก็ตาม แล้ว Bitcoin ใช้วิธีการใดในการตรวจสอบธุรกรรมในระบบ หากอยากทราบ ติดตามต่อใน EP 8 : Simplified Payment Verification (การตรวจสอบธุรกรรม) - Experimental :globe_with_meridians: / Content Board - Hashpire Community

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

  • การจัดการข้อมูลและการจัดเก็บข้อมูลของ Bitcoin

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

  • รู้ว่า Bitcoin เก็บข้อมูลอย่างไร

Outline-graphic

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


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

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

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

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


:memo: Content text + graphic

คำศัพท์ที่ควรรู้ก่อนอ่านบทความ
Node : ผู้ที่มีส่วนร่วมในเครือข่าย หมายถึงคอมพิวเตอร์หรืออุปกรณ์ที่เชื่อมต่อเข้ากับเครือข่าย Blockchain
Block : สิ่งที่ใช้ในการจัดเก็บข้อมูล
Markle Tree : การจับคู่ข้อมูล(ธุรกรรม) แล้ว Hash ขึ้นมาเป็นลำดับขั้นที่สูงขึ้นเรื่อย ๆ ลักษณะคล้ายต้นไม้
Root Hash : ส่วนแรกของการเก็บข้อมูลแบบ Markle Tree
Nonce : ตัวเลขสุ่ม
Prev Hash : Hash ของ Block ก่อนหน้า
Transactions : ธุรกรรม

จาก EP ที่ผ่าน ๆ มาเราพูดถึงเรื่องการทำธุรกรรมไปมากมาย พอย้อนกลับมาคิดดูแล้ว ก็พบว่าในชีวิตประจำวันของเรามีการทำธุรกรรมต่าง ๆ ไม่น้อยเลย ยิ่งถ้ารวม ๆ ดูแล้วในหนึ่งปีก็เยอะจนนับไม่ไหวเลยทีเดียว และแบบนี้ถ้าเราไปทำธุรกรรมมากมายบน Bitcoin ข้อมูลของเราจะถูกจัดเก็บอย่างไร และพื้นที่ในการจัดเก็บจะเต็มหรือไม่ เรามีคำตอบมาให้แล้วใน " EP 7 Reclaiming Disk Space "

โครงสร้างของ Block

ใน 1 Block ของ Bitcoin จะประกอบไปด้วย Prev Hash, Nonce, Transactions แต่เพื่อเป็นการประหยัดพื้นที่ในการจัดเก็บข้อมูล Bitcoin จะแยก Block ออกเป็น 2 ส่วนคือ

  1. Block Header จะประกอบด้วย Prev Hash, Nonce, Root Hash
  2. Block Content คือส่วนที่เก็บ Transactions Hash ในรูปแบบของ Markle Tree เป็นข้อมูลของธุรกรรมที่ถูกทำไปสำเร็จเรียบร้อยแล้ว

การประหยัดพื้นที่จัดเก็บธุรกรรมของ Bitcoin ทำอย่างไร​

Bitcoin ใช้วิธีประหยัดพื้นที่ในการจัดเก็บข้อมูล โดยการนำข้อมูลที่ไม่จำเป็นอย่าง Block Content ออกไป และเก็บแค่ส่วนที่ใช้งานจริงอย่าง Block Header ไว้

ในส่วน Block Header ที่ไม่มีธุรกรรมนั้นจะมีขนาดประมาณ 80 bytes ถ้าทุก Block นั้นถูกสร้างขึ้นในเวลาทุก ๆ 10 นาที ก็เท่ากับ 80 bytes * 6 * 24 * 365 = 4.2MB ต่อปี ด้วยระบบคอมพิวเตอร์ที่ปกติจะมีขนาดของ RAM ที่ 2GB ในปี 2008 และตามกฎของ Moore

(กฎของมัวร์อธิบายถึง ปริมาณของทรานซิสเตอร์บนวงจรรวม โดยจะเพิ่มเป็นเท่าตัวประมาณทุก ๆ สองปี) ซึ่งประมาณการไว้ว่ามันจะเพิ่มขึ้นปีละ 1.2 GB ทำให้ขนาดพื้นที่ของการเก็บข้อมูลนั้นไม่ใช่ปัญหาแม้ว่า Header ของ Block จะถูกเก็บใน Memory

จากข้อมูลที่เราอธิบายมาทั้งหมด น่าจะทำให้ทุกคนเห็นภาพการจัดเก็บข้อมูล รวมทั้งวิธีการที่ Bitcoin ใช้เพื่อประหยัดพื้นที่ในการจัดเก็บข้อมูลกันไปแล้ว ใน EP หน้าเราจะพาทุกคนไปทำบางอย่างที่ไม่ว่าเราจะทำธุรกรรมในรูปแบบใดก็ตามเราก็ยังจะต้องทำสิ่งนี้เสมอ หากอยากทราบว่ามันคืออะไร ติดตามต่อได้ใน Series : Bitcoin Whitepaper EP ต่อไป

Reference

  • Link here…

ผมว่าถ้าเราอธิบายโครงสร้างของ Block น่าจะดีครับ คนอ่านจะได้เข้าใจว่า Block มีโครงสร้างอย่างไร (Header, Body) อะไรประมาณนี้ครับ

  1. “ส่วนที่เก็บ Transactions Hash ในรูปแบบของ Markle Tree” น่าจะถูกต้องกว่ารึเปล่าครับ
  1. แบบนี้ดีกว่าไหมครับ แบบล่างอ่านแล้วแปลกๆ => “การประหยัดพื้นที่จัดเก็บธุรกรรมของ Bitcoin ทำอย่างไร​”
  1. ตรงนี้อ่านแล้ว งง และไม่เข้าใจเลยอะครับ คือเราควรอธิบายให้เชื่อมโยงกับโครงสร้างข้างต้นที่เราอธิบายไปนะครับ เช่น การประหยัดพื้นที่ในการจัดเก็บธุรกรรมบน Bitcoin มันทำโดยการลดขนาดของ Block ลง ซึ่งจากข้างต้น Block แบ่งเป็น 2 ส่วน เราสามารถตัดส่วนที่ 2 หรือ Block Content ทิ้งได้ เพราะ บลาๆๆๆ … ก็ว่าไป

พี่ลองไปถาม chatGPT มาครับลองดูเป็นข้อมูลประกอบ ลองพยายามถามมันเรื่องการเก็บ Markle Tree ของ Block ดูครับเผื่อจะเข้าใจและอธิบายได้ชัดเจนมากยิ่งขึ้น

@Namtan ฝากปรับแก้ด้วยครับ พี่ว่าส่วนต้นกับตอนจบอะดีแล้ว ติดตรงใจความสำคัญแกนหลักของเรื่องที่อธิบายไม่เคลียร์ อ่านแล้วงงๆ มันเข้าใจยากไป และเรื่องการเชื่อมโยงเรื่องราวของแต่ละพารากราฟ เช่นเรื่องโครงสร้างที่อธิบายไปตอนต้น น่าจะนำมาอ้างในตอนอธิบายการ reclame disk ข้างล่างได้เพื่อลดความซ้ำซ้อน และอ่านได้กระชับขึ้นครับ

@Namtan

  1. อันนี้อ่านแล้วงง ทำไป คืออะไรครับ ?

อื่นๆ อ่านแล้วเข้าใจดีครับ เยี่ยมมาก