EP 2 : ธุรกรรม (Transactions)

Planning


Outline-text

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

  • EP 2 : ธุรกรรม (Transactions)

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

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

Q 1 : ถ้าระบบการจ่ายเงินแบบไม่มีตัวกลาง การทำธุรกรรมจะต้องทำยังไง
Q 2 : เราจะรู้ได้อย่างไรว่า เจ้าเหรียญของไม่ได้นำเหรียญนั้นไปใช้ซ้ำ (Double-spend)

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

  • วิธีการที่ Bitcoin ใช้ทำธุรกรรม (Transactions)

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

  • เข้าใจวิธีการทำธุรกรรม (Transactions) ของ Bitcoin

Outline-graphic

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


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

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

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

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


:memo: Content text + graphic

EP 2 : ธุรกรรม (Transactions)

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

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

การทำธุรกรรมบน Bitcoin จะต้องมีลายเซ็นดิจิทัล (Digital Signature)
เพื่อเป็นการยืนยันความเป็นเจ้าของธุรกรรม (Ownership) ซึ่งผู้ที่มีสิทธิ์ในการทำธุรกรรมจะมีเพียงเจ้าของสินทรัพย์เพียงผู้เดียว บุคคลที่ไม่มีสิทธิ์จะไม่สามารถทำธุรกรรมในนามเจ้าของสิทธิ์ได้ และเมื่อธุรกรรมมีจำนวนเพิ่มขึ้น Bitcoin จะใช้ห่วงโซ่ลายเซ็นดิจิทัล (Chain of Digital Signature) ในการบันทึกการโอนย้ายเหรียญจากบุคคลหนึ่งไปสู่อีกบุคคลหนึ่ง ทำให้ผู้รับเหรียญสามารถตรวจสอบความเป็นเจ้าของห่วงโซ่ (Chain of ownership) ได้



ปัญหาคือผู้รับไม่สามารถตรวจสอบได้ว่าธุรกรรมที่ได้รับมีการทำซ้ำ (Double-spending) หรือไม่
วิธีแบบเดิมที่ใช้ในการแก้ไขปัญหานี้คือ การใช้ตัวกลางที่เชื่อถือได้ในการตรวจสอบแบบรวมศูนย์ (Trusted central authority) โดยการตรวจสอบทุกธุรกรรมว่ามีการทำซ้ำหรือไม่ ซึ่งในทุก ๆ ธุรกรรมเหรียญจะต้องกลับไปสู่ตัวกลางเพื่อสร้างเหรียญใหม่ และเฉพาะเหรียญใหม่ที่ถูกสร้างจากตัวกลางนี้เท่านั้น ที่จะเชื่อถือได้ว่ามันไม่ได้ถูกนำไปใช้ซ้ำ แต่ท้ายที่สุดแล้วปัญหาของวิธีนี้คือทุกอย่างจะขึ้นอยู่กับตัวกลางเท่านั้น

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

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

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

แต่เนื่องจากแต่ละ Node จะได้รับธุรกรรมที่ไม่เท่ากัน ดังนั้น จึงต้องมีกลไกที่ใช้ในการจัดอันดับธุรกรรม เมื่อธุรกรรมถูกจัดอันดับและทุก Node มีอันดับธุรกรรมที่จัดเรียงแบบเดียวกันแล้ว จะนับธุรกรรมที่อยู่ในอันดับแรกสุดเป็นธุรกรรมที่ถูกต้องและธุรกรรมอื่น ๆ ที่ถูกทำซ้ำจะถือว่าไม่ถูกต้องทั้งหมด โดย Node ส่วนใหญ่จะต้องเห็นตรงกัน

จากรายละเอียดที่เราได้อธิบายไว้ทั้งหมด จะเห็นได้ว่า Bitcoin ต้องการสร้างระบบที่ผู้ได้รับธุรกรรมสามารถรู้ได้ว่าธุรกรรมนั้นไม่ได้ถูกทำซ้ำ (Double-spending) โดยการตัดตัวกลางแบบรวมศูนย์ออกไปและใช้วิธีประกาศธุรกรรมทั้งหมดต่อสาธารณะ ให้ Node ส่วนใหญ่ยอมรับว่าเป็นการได้รับธุรกรรมครั้งแรก ไม่ใช่ธุรกรรมที่ถูกทำซ้ำ แต่ Bitcoin จะใช้วิธีการใดในการจัดอันดับว่าธุรกรรมใดมาก่อน-หลัง วันที่ ? เวลา ? หากอยากรู้ว่า Bitcoin ทำอย่างไร ติดตามต่อได้ใน Series : Bitcoin Whitepaper EP ต่อไป

Reference

“The only way to confirm the absence of a transaction is to
be aware of all transactions.”

ส่วนตัวปันว่าประโยคนี้น่าจะมีใน para นี้เพื่อช่วยให้เห็นภาพมากขึ้นว่า “ทำไมต้องประกาศ” ก็เพราะว่าการที่เราจะรู้ได้ว่ามีการทำธุรกรรมซ้ำหรือไม่คือการที่ network เข้าถึงทุกธุรกรรมที่เกิดขึ้น

อะไรประมารนี้ค่ะ

ส่วนตัวผมคิดว่า paragraph นี้เข้าใจยากไปหน่อยครับ


ปกติความนี้ควรเชื่อมกับ Digital Signature + Hash Function (มีลิ้งไปหา)

@Namtan Feedback

  • เนื่องจากน้องไม่อยู่พี่เลยมานั่งรีวิวและแก้ไขปรับบทความใหม่ไปเล็กน้อยนะครับ

เสนอว่ามีการอธิบายก่อนดีไหมคะว่าใน 1 transaction ของ bitcoin หมายถึงอะไร และมีอะไรอยู่ในนั้นบ้าง (ประกอบไปด้วยอะไรบ้าง) แล้วจึงอธิบายว่าทำงานอย่างไร

ก่อนเข้าปัญหานี้ อาจจะมีการยกตัวอย่างเหตุการดีไหมคะ เพื่อเพิ่มภาพให้กับผู้อ่านว่าการทำ transaction บน bitcoin มีช่องโหว่อย่างไรจึงทำให้เกิด double spending ได้

Artwork Outline

@supanut @Namtan ลอง outline มาคร่าวๆ จากโครงสร้าง content ด้านบนค่ะว่าจะเล่าเรื่องอย่างไรบ้าง หากมีไอเดียในการนำเสนอแต่ละรูปเสนอกันมาได้เลยนะค่า