Bitcoin Node คืออะไร ทำไมคนถือ Bitcoin ควรรู้จักมัน

Bitcoin Node คืออะไร? ทำไม Bitcoin ถึงไม่ต้องมีใครเป็นคนกลาง

ในบทความที่แล้วเราเพิ่งคุยกันเรื่อง Digital Signature ว่า Bitcoin สามารถตรวจสอบได้ว่า Transaction นึงนั้นมี Signature ที่ถูกต้องหรือไม่? โดยที่เจ้าของ Private Key ไม่ต้องเอา Secret Key ของตัวเองออกมาเปิดเผยให้ใครเห็นเลยแม้แต่คนเดียว

มันก็…ฟังดูดีนะครับ

แต่พอผมคิดต่อไปอีกนิดนึงแล้ว มันเสือกมีคำถามหนึ่งโผล่ขึ้นมาในหัว

แล้วใครเป็นคนตรวจสอบวะ?

ใครที่เป็นคนบอกเราว่า Signature อันนี้ถูกต้อง?

ใครเป็นคนบอกว่า UTXO ที่กำลังจะถูก Spend นี้มีอยู่จริง และมันยังเป็น UTXO ที่ไม่เคยถูกใช้ไปแล้ว?

ใครเป็นคนบอกว่า Transaction นี้ไม่ได้ถูกเสกเพิ่มขึ้นมาจากอากาศ?

แล้วถ้าวันหนึ่ง Miner เสือกบอกว่า “กูขุด Block นี้ได้แล้วนะ” ใครเป็นคนบอกว่า Block ที่มันขุดมานั้นถูกต้องตามกฎของ Bitcoin?

ถ้าคำตอบของเราคือ

“ก็ Server กลางของ Bitcoin ไง”

งั้นเราก็มีปัญหาแล้วล่ะ

เพราะถ้ามี Server กลางสักเครื่องเป็นคนบอกทุกคนว่าอะไรของจริง อะไรของปลอม อะไรใช้ได้ อะไรใช้ไม่ได้ สุดท้าย Bitcoin ก็คงไม่ได้ต่างจากระบบการเงินแบบเดิมๆสักเท่าไร

นั่นก็เท่ากับว่า เราแค่เปลี่ยนคนที่ต้องเชื่อเท่านั้นเอง!

ตรงนี้แหละครับที่เราต้องรู้ว่า Bitcoin Node คืออะไร


Bitcoin Node คืออะไร?

พูดแบบบ้าน ๆ ก่อนเลย

Bitcoin Node คือ Computer ที่รัน Software ของ Bitcoin และเชื่อมต่ออยู่กับ Bitcoin Network

ถ้าจะพูดให้คนที่เป็นสาย Non Tech ฟังก็น่าจะพูดได้ว่า Bitcoin Node ก็คือ Server ของ Bitcoin แต่ว่ามันมีหลายตัวและกระจายอยู่ทั่วทุกมุมโลก

ผมอยากจะบอกว่า Software ที่คนใช้กันแพร่หลายที่สุดตัวหนึ่งคือ Bitcoin Core

สิ่งนี้ศัพท์เทคนิคเรียกว่า “Implementation” ซึ่งมันจะมีหลายค่ายที่เขียน Software นี้ขึ้นมา ซึ่งไม่ได้มีแค่ Bitcoin Core นะครับ ผมขอแจ้งไว้ก่อน จริงๆคือใครจะสร้าง Implementation ก็ได้ แต่ต้อง Follow กฏของ Bitcoin Protocol ทั้งหมด ก็แค่นั้นเอง

คุณสามารถเอา Computer ธรรมดา, Mini PC, Raspberry Pi หรือเครื่อง Computer ทั่วไปอะไรก็ได้มาติดตั้ง Bitcoin Core แล้วปล่อยให้มัน Synchronize ข้อมูลจาก Network ก็เท่านั้นเอง แค่นี้เครื่องของคุณก็ได้กลายมาเป็น Bitcoin Full Node Server เป็นที่เรียบร้อยแล้ว แล้วเครื่องของคุณก็จะมี Full Blockchain ของ Bitcoin ซึ่งเป็นเหมือนสมุดบัญชี Public Ledger ที่เก็บเงินของคนทั้งโลกเอาไว้ในบ้านของคุณ

แต่สิ่งที่น่าสนใจไม่ใช่แค่ว่าเครื่องของคุณ “มี Full Blockchain” และมีคุณมีเงินของคนทั้งโลกอยู่ในมือ

สิ่งที่สำคัญกว่านั้นคือ

มันทำหน้าที่ในการตรวจสอบ!!!

เมื่อมี Transaction เข้ามา เครื่องของคุณจะทำการตรวจสอบ คำถามคือตรวจอะไรของมัน ?

เมื่อมี Block ใหม่เข้ามา มันก็จะทำการตรวจสอบ!

เมื่อมีคนพยายาม Spend UTXO ที่ถูกใช้ไปแล้ว มันตรวจสอบ!

เมื่อมี Block ที่ทำผิดกฎ มันก็จะพยายามตรวจสอบ!

Node ไม่ได้ถามว่า Transaction นี้มาจาก Binance หรือเปล่า? เกิดมาจาก Bitkub ใช่มั้ย? มันไม่ได้สนใจว่า Miner ที่ขุด Block มานี้ใหญ่แค่ไหน? และไม่ได้สนว่าใครมี Bitcoin เยอะกว่าใคร

มันมี Rules ของมันชัดเจน

ถ้าถูกกฎ ก็ไปต่อ

ถ้าผิดกฎ ก็ไม่รับ แค่นั้นเอง

ฟังดูธรรมดามาก แต่ผมว่าไอ้ของธรรมดานี่แหละคือหนึ่งในส่วนที่สวยที่สุดของ Bitcoin เลยล่ะนะ


หากคุณอยากเข้าใจว่า Bitcoin Node คืออะไร? คุณจำเป็นต้องแยก Full Node ออกจาก Miner เสียก่อน

ตอนผมเริ่มศึกษา Bitcoin ใหม่ ๆ ผมเองก็เคยเอา Node กับ Miner มาปนกัน

เปิด Computer ทิ้งไว้ → Bitcoin วิ่งอยู่ในเครื่อง → น่าจะขุด Bitcoin ได้มั้ง 😂

จริง ๆ แล้วมันคนละหน้าที่กัน

Miner หรือเหมืองขุด Bitcoin นั้นแข่งขันกันหา Proof of Work เพื่อเสนอ Block ใหม่เข้าสู่ Network

ส่วน Full Node ตรวจสอบว่า Block ที่ได้รับมานั้นเป็น Block ที่ตัวเองยอมรับตาม Consensus Rules หรือไม่

พูดอีกแบบหนึ่งคือ

Miner เสนอ Block

Node ตรวจการบ้านที่มึงส่งเข้ามา

สองอย่างนี้เกี่ยวข้องกัน แต่ไม่ใช่สิ่งเดียวกัน

และตรงนี้มีอะไรบางอย่างที่น่าสนใจมาก

สมมุติ Miner รายหนึ่งมีเครื่องขุดจำนวนมหาศาล ใช้ไฟฟ้าเยอะระดับโรงงาน แล้ววันหนึ่งขุด Block สำเร็จ

แต่ใน Block นั้นมี Transaction ที่ผิดกฎของ Bitcoin Protocol

Node ของคุณไม่ได้คิดว่า

“โห… Miner เจ้านี้ Hashrate เยอะจัง ยอม ๆ ไปเถอะ”

มันก็แค่…

กูไม่รับเว้ย!!!


แล้ว Bitcoin Node มันตรวจสอบอะไร?

โอ้…เยอะครับ 😂

ถ้าจะลงรายละเอียดทุก Rule จริง ๆ บทความนี้คงไม่จบ

แต่ในภาพใหญ่ของ Bitcoin Full Node นั้นจะตรวจสอบข้อมูลตามกฎของ Bitcoin Protocol เช่น Transaction และ Block ที่ได้รับมานั้นมีโครงสร้างและเงื่อนไขถูกต้องหรือไม่, Input อ้างถึง Output ที่สามารถ Spend ได้หรือไม่, Signature หรือ Script ที่เกี่ยวข้องผ่านการตรวจสอบหรือไม่, จำนวน Bitcoin ไม่ถูกสร้างขึ้นมาเกินกว่าที่กฎอนุญาต และ Block เองก็ต้องผ่านเงื่อนไขต่าง ๆ ของ Consensus ใช่มั้ย ?

และตรงนี้นี่เองที่ Blog ก่อน ๆ ของเราเริ่มกลับมารวมกันอีกครั้ง

จำเรื่องราวของ UTXO คืออะไร ได้ไหมครับ?

สมมุติ Alice มี UTXO ใบนึงจำนวน :

100,000 sats

แล้ว Alice ก็สร้าง Transaction เพื่อ Spend มัน

Node ไม่ได้เชื่อ Wallet ของ Alice ที่บอกว่า

“ของกูจริง ๆ เชื่อกูดิ”

มันตรวจสอบเองว่า Output ที่ Transaction อ้างถึงนั้นมีอยู่หรือไม่? และตามมุมมองของ Node มันยังเป็น Unspent Output อยู่หรือเปล่า?

จากนั้นยังมีเรื่องของ Spending Condition และ Signature ที่เราเพิ่งคุยกันในบทความ Digital Signature คืออะไร

ภาพมันเลยเริ่มต่อกันแล้วนะฮะ :

UTXO → Input → Signature → Transaction → Node Validation

Blog #1 ถึง Blog #5 ที่เราเขียนมา จริง ๆ แล้วมันเป็นเรื่องเดียวกันมาตลอด

เราแค่ค่อย ๆ แกะเครื่องออกมาดูทีละชิ้นก็แค่นั้นเอง


Node รู้ได้ยังไงว่า UTXO ไหนถูกใช้ไปแล้ว?

พอเราเริ่มเข้าใจว่า Bitcoin Node คืออะไร เราก็จะเริ่มเห็นแล้วว่าหน้าที่ของมันไม่ใช่แค่เก็บสำเนา Blockchain หรือเก็บเงินของคนทั้งโลกเอาไว้เฉย ๆ แต่มันสร้าง Point Of View ของตัวเองขึ้นมาจากข้อมูลที่มันตรวจสอบมาแล้วอีกด้วย

ถ้าคุณรัน Full Node มันไม่ได้ยิง Request ออกไปถาม Website อื่นๆว่า

“พี่ครับ Address นี้มี Bitcoin เท่าไร?”

Node สามารถเรียกดูสถานะของ UTXO เก่าๆได้ จากประวัติ Blockchain ที่มันตรวจสอบมาแล้ว

เรามักเรียกข้อมูลชุดนี้ว่า

UTXO Set

ลองนึกถึงมันเป็นชุดของ Transaction Outputs ทั้งหมดที่ยังสามารถถูก Spend ได้

เวลามี Transaction ใหม่เข้ามา Node จึงสามารถตรวจสอบได้ว่า Input กำลังพยายาม Spend Output อะไร? อันไหน? มีอยู่ไหม?

ถูก Spend ไปแล้วหรือยัง?

เงื่อนไขการ Spend ผ่านไหม?

ถ้าผ่านกฎที่เกี่ยวข้อง Transaction ก็สามารถถูกพิจารณาสำหรับ Mempool และ Relay หรือส่งต่อ Transaction นี้ต่อไปให้ Node อื่นๆได้

แต่ถ้ามีคนเอา UTXO ที่ Spend ไปแล้วมาพยายาม Spend ซ้ำ…

Node ไม่จำเป็นต้องโทรแจ้งธนาคารครับ

มันรู้จาก State ที่ตัวมันเองตรวจสอบมา ก็เท่านั้น


Mempool คือห้องรอของ Transaction หรือเปล่า?

คำตอบก็ประมาณนั้นแหละครับ แต่ต้องระวังนิดนึงนะ

เวลาเรากด Send Bitcoin ออกไปแล้ว Transaction ถูก Broadcast ออกไปแล้ว Transaction นั้นมันไม่ได้กระโดดเข้าไปใน Blockchain ทันทีนะ

Node ที่ได้รับ New Transaction จะทำการตรวจสอบตามกฎและ Policy ของตัวเองก่อน และ Transaction ที่ยอมรับอาจถูกเก็บไว้ใน Mempool เพื่อรอการ Confirm จาก Miner หรือพวกเหมืองขุดอีกที

จากนั้นมันอาจ Relay Transaction ไปยัง Peer อื่น ๆ (Relay คือการส่งต่อไปเป็นทอดๆ)

สิ่งที่ผมอยากให้สังเกตคือ :

มันไม่มี “The Mempool” กลางของโลก!!!

แต่ละ Node นั้นมันมี Mempool เป็นของตัวเอง

Transaction ที่ Node นึงเก็บไว้นั้น ไม่ได้หมายความว่า Node ทุกตัวบนโลกต้องมี Mempool เหมือนกันเด๊ะๆ

ตรงนี้เริ่มทำให้คำว่า Decentralized มีความหมายมากกว่าแค่ Logo สวย ๆ แล้วใช่มั้ย? ^_^


แล้ว Blockchain ของ Bitcoin มันอยู่ที่ไหน?

คำถามนี้สนุกดี (สนุกมึงคนเดียวดิบักปอบ)

เวลาเราพูดว่า

“Bitcoin อยู่บน Blockchain”

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

ระบบของ Bitcoin มันไม่ได้มี Hard Disk ศักดิ์สิทธิ์หนึ่งลูกที่ตั้งอยู่ที่ไหนสักแห่งแล้วเขียนว่า

THE BITCOIN BLOCKCHAIN 😂

แต่ความเป็นจริงแล้ว Full Node จำนวนมากต่างเก็บและตรวจสอบข้อมูลของตัวเองตาม Software และ Configuration, Implementation ที่ใช้

แน่นอนว่า Node ของผมมีข้อมูลที่มันตรวจสอบมา

และแน่นอนว่า Node ของคุณก็มีข้อมูลที่มันตรวจสอบมา

เราอาจได้รับข้อมูลมาจากคนอื่น แต่ Node ของเราไม่ได้จำเป็นต้องเชื่อข้อมูลนั้นทันที

นี่เป็นความแตกต่างเล็ก ๆ ที่ผมว่าใหญ่มาก

รับข้อมูลจากคนอื่น ≠ เชื่อคนอื่น

คุณส่ง Block มาให้ผมได้

แต่ Node ของผมมันจะทำการตรวจของมันเองอีกดอกหนึ่ง


แล้วถ้า Miner หรือพวกเหมืองขุด Bitcoin โกงล่ะ?

ลองสมมุติอะไรบ้า ๆ ดู

สมมุติว่ามี Miner คนหนึ่งขุด Block ใหม่ได้สำเร็จ แต่พยายามสร้าง Block Reward เกินกว่าที่ Consensus Rules อนุญาต

พูดง่าย ๆ คืออยากเสก Bitcoin ให้ตัวเองเพิ่ม จะได้รวยๆ

ถ้า Node ตรวจพบว่า Block นั้นผิด Consensus Rules ที่มันบังคับใช้…

Block นั้นก็ Invalid สำหรับ Node นั้น

ถึง Miner จะเสียค่าไฟไปเท่าไรก็ตาม

ถึงเครื่องขุดจะมีเป็นโกดังก็ตาม

ถึง Twitter จะมี Follower สิบล้านคนก็ตาม

แต่กฎก็ยังเป็นกฎ

นี่จึงทำให้ประโยคที่ว่า

“Miner ควบคุม Bitcoin”

ไม่ค่อยตรงนัก

ซึ่งพวก Miner ก็มีบทบาทสำคัญมาก โดยเฉพาะเรื่อง Proof of Work และการจัด Transaction เข้า Block เพื่อให้พวก Transaction มันเปลี่ยนสถานะจาก Unconfirm ไปเป็น Confirm

แต่ Miner ไม่ได้มีสิทธิ์มีเสียงเพียงฝ่ายเดียวที่จะประกาศว่า:

“ตั้งแต่วันนี้ Bitcoin เปลี่ยนกฎนะ”

เพราะคนที่รัน Node ก็มี Software ที่บังคับใช้ Rules ที่ตัวเองเลือกยอมรับอยู่เหมือนกัน!!!


แล้วถ้า Miner มันเสือกทำ 51% Attack ล่ะ?

นี่เป็นอีกเรื่องที่คนมักเอามาปนกัน ซึ่งชวนให้ผมปวดหัวไม่น้อย

ที่ปวดหัวนี่ไม่ใช่ตอบไม่ได้หรือว่าอะไรนะ แต่มันต้องอธิบายยาวๆ ตั้งต้นกันมาหลายร้อยหลาถึงระบบการทำงานของ Bitcoin แบบถึงรากถึงโคนถึงแก่น

การมี Hashrate จำนวนมากสามารถสร้างความสามารถในการโจมตีบางประเภท เช่นการพยายาม Reorganize Chain หรือ Censor Transaction ในบางสถานการณ์ได้

แต่มันไม่ได้แปลว่า Miner ที่มี 51% จะสามารถเปลี่ยน Consensus Rules ทุกอย่างได้ตามใจชอบ

เช่นจะสร้าง Bitcoin เป็นพันล้านเหรียญแล้วบังคับให้ Full Node ที่ใช้กฎเดิมยอมรับ

ถ้า Block มันผิด Rules ที่ Node ตรวจสอบ…

สำหรับ Node ยังไงมันก็ Invalid

ต่อให้ Miner จำนวนมหาศาลจะยัด Block ผิดๆมาให้ Full Node ยังไงมันก็ Invalid

Hashrate ไม่ได้เปลี่ยน Invalid ให้กลายเป็น Valid ด้วยเวทมนตร์

ไม่มีทาง!


แล้วกฎที่บอกว่า Bitcoin มีเพียง 21 ล้านเหรียญ นั้นมาจากไหน?

นี่เริ่มน่าสนใจแล้วใช่มั้ยครับ?

คนชอบพูดว่า

Bitcoin มีเพียงแค่ 21 ล้านเหรียญ

แต่ใครเป็นคนรับประกัน?

รัฐบาล?

หรือ Satoshi?

หรือ Miner?

หรือ Michael Saylor? 😂

จริง ๆ แล้วจำนวน Supply ของ Bitcoin เกิดจากกฎการผลิตเหรียญขึ้นทีละนิดในทุกๆวัน

ซึ่งในวันแรกที่ Bitcoin ถือกำเนิดขึ้นในปี 2009 นั้น Bitcoin มีจำนวนเป็น 0 เหรียญ

หลังจากนั้นทุกๆ 10 นาที มันจะค่อยๆมี Bitcoin งอกขึ้นมาทีละ 50 BTC ก็แค่นั้นเอง

เราก็แค่นั่งนับผลรวมของมันเอา ซึ่งไอ่ 50 BTC เนี่ยเขาเรียกว่า Block Subsidy

แต่เมื่อเวลาผ่านไปทุก 2016 Block หรือประมาณ 4 ปี

ไอ่ Block Subsidy ลดลงตาม Schedule กล่าวคือลดลงครึ่งนึงทุกๆ 4 ปี

Coinbase Transaction จะต้องห้ามสร้าง BTC เกินกว่าที่กฎอนุญาต

ทุกๆ Node จะทำการตรวจสอบ Block เหล่านั้น

ดังนั้นคำว่า 21 ล้าน ไม่ได้ศักดิ์สิทธิ์เพราะมีใครเขียนไว้ใน Website หรือรัฐธรรมนูญของประเทศ

แต่มันมีความหมายเพราะ Network participants เลือกใช้และบังคับใช้กฎที่สอดคล้องกัน

แต่ตรงนี้ก็เปิดคำถามใหม่ขึ้นมาอีกแล้วว่า

ถ้า Software เปลี่ยนได้…

แล้วใครเป็นคนกำหนดกฎกันแน่?

Developer?

Miner?

Node?

Exchange?

คนถือ Bitcoin?

อันนี้ผมยังไม่อยากรีบตอบ

เพราะถ้าลงไปในเรื่อง Consensus, Soft Fork, Hard Fork และการ Coordination ของ Network จริง ๆ มันจะพาเราไปอีกไกลโขชนิดที่ว่ากู่ไม่กลับกันเลยทีเดียว


Wallet กับ Node คือสิ่งเดียวกันไหม?

คำตอบก็คือ ไม่จำเป็นครับ

ตรงนี้ถ้าแยกหน้าที่ออกจากกันให้ได้ก่อน

แล้วภาพคำว่า Bitcoin Node คืออะไร จะชัดขึ้นเยอะ เพราะ Wallet กับ Node สามารถทำงานร่วมกันได้ แต่เราไม่ควรคิดว่ามันคือของอย่างเดียวกัน

Wallet มีหน้าที่เกี่ยวกับ Key, Address, การสร้าง Transaction, การ Sign และการแสดงข้อมูลที่เกี่ยวข้องกับเงินของเรา

ส่วน Node มีหน้าที่ตรวจสอบและติดตาม Bitcoin Network ตาม Rules ที่มันใช้

ซึ่งเมื่อก่อนในช่วงที่ Bitcoin ถือกำเนิดขึ้นมาใหม่ๆนั้นมันยังไม่มี Hardware Wallet นะ และที่สำคัญคือ Full Node จะ Integrate Bitcoin Software Wallet แถมมาด้วยเลย

และเมื่อ Bitcoin ผ่านกาลเวลามาเรื่อยๆ ก็ได้มีคนคิดค้นไอ่เจ้า Hardware Wallet ขึ้น

และแน่นอนว่าคุณอาจจะซื้อ Hardware Wallet มาแล้ว

และ Seed อยู่กับคุณ

และที่สำคัญคือ Private Key อยู่ภายใต้การควบคุมของคุณ

ถ้าคุณยังจำเรื่อง Private Key คืออะไร ได้แล้วล่ะก็ เรารู้แล้วว่า Hardware Wallet ไม่ได้เก็บ Bitcoin ไว้ข้างใน แต่มันช่วยปกป้อง Key ที่ใช้ในการ Sign

Not your keys, not your coins.

เยี่ยม!!!

แต่ตอนที่คุณเปิด Wallet Application ขึ้นมาแล้วมันบอกว่า :

Balance: 0.05000000 BTC

ข้อมูลนั้นมาจากไหน?

Hardware Wallet ไม่ได้ดาวน์โหลด Blockchain ทั้งก้อนมานั่งตรวจเองทุกครั้งที่คุณเปิดหน้าจอ

Wallet หลายรูปแบบต้องพึ่งพา Backend หรือ Node บางตัวเพื่อให้ได้ข้อมูลเกี่ยวกับ Blockchain และ Transaction

ถ้า Node นั้นไม่ใช่ของคุณ…

คุณถือ Key เองก็จริง

แต่ข้อมูลที่คุณกำลังมองเห็น อาจยังมาจากระบบของคนอื่น เพราะเครื่อง Full Node อื่นๆบนโลกก็แอบทำการ Indexing ทุกๆ UTXO บนโลกนี้ไว้เหมือนกัน


งั้นถ้าไม่รัน Node แปลว่า Bitcoin ไม่ใช่ของเรา?

ผมไม่ชอบที่จะพูดแบบนั้น

เพราะมันทำให้เรื่องที่มีรายละเอียดกลายเป็นคำขวัญง่าย ๆ ไปซะอย่างนั้น

คนจำนวนมากเริ่มมี Bitcoin จาก Mobile Wallet หรือ Hardware Wallet ที่เชื่อมต่อกับ Infrastructure ของผู้ให้บริการ และมันก็เป็นจุดเริ่มต้นที่สมเหตุสมผลสำหรับหลายคน

การรัน Node มี Cost ที่คุณต้องจ่าย

ต้องมี Storage ที่คุณต้องซื้อ

ต้อง Download และ Verify Blockchain

ต้องดูแล Software

ต้องเรียนรู้อีกเยอะแยะมาโข

ไม่ใช่ทุกคนต้องกลับบ้านวันนี้แล้วซื้อ Mini PC เพราะมีคนบนอินเทอร์เน็ตบอกว่า

REAL BITCOINERS RUN NODES!!!

ใจเย็นๆพี่ 😂

เพราะฉะนั้นการเข้าใจว่า Bitcoin Node คืออะไร ไม่ได้แปลว่าผมกำลังบอกว่าทุกคนต้องรัน Node แต่มันทำให้เราเลือกได้ว่าเรื่องไหนเรายอมพึ่งคนอื่น และเรื่องไหนเราอยากตรวจสอบเอง

คำถามที่น่าสนใจกว่าคือ:

คุณต้องการ Verify อะไรด้วยตัวเองมากแค่ไหน?

ถ้าคุณต้องการลดการพึ่งพา Infrastructure ของคนอื่น การมี Node ของตัวเองก็เริ่มมีความหมายขึ้นมา

ใช่ป่ะ?


Bitcoin Full Node ช่วยเรื่อง Privacy ด้วยไหม?

ก็ช่วยได้ในบางด้าน แต่ไม่ได้ทำให้คุณ Invisible หายไปจากสารบบ

ถ้า Wallet ของคุณถาม Server ของบริษัทอื่นเกี่ยวกับ Address หรือ Transaction ของคุณ รูปแบบการ Query อาจเปิดเผยข้อมูลบางอย่างให้ Provider เห็นได้ ขึ้นอยู่กับ Protocol และ Architecture ที่ใช้

การเชื่อม Wallet เข้ากับ Infrastructure ของตัวเองจึงสามารถลดการเปิดเผยข้อมูลบางประเภทต่อ Third Party ได้

แต่การรัน Node ไม่ได้ทำให้ Transaction บน Public Blockchain หายตัวไป

Bitcoin ยังคงเป็น Public Ledger สารธารณะ

ถ้าเราใช้ Address ซ้ำ รวม UTXO แบบไม่ระวัง หรือเปิดเผยข้อมูลที่เชื่อมตัวตนกับ Address เอง…

แม้แต่ Node ของเราเอง ก็ช่วยเราไม่ได้ทุกอย่าง

Privacy เป็นอีกเรื่องหนึ่งที่ต้องเรียนแยกต่างหาก ละแม่งยาวววววววววววววววว


จะ Run Bitcoin Full Node เครื่องต้องแรงไหม?

ไม่จำเป็นต้องเป็น Gaming PC ไม่จำเป็นต้องเป็น Work Station

คนจำนวนมากรัน Node บนเครื่องธรรมดา Mini PC หรือแม้กระทั่ง Raspberry Pi ตัวจิ๋วๆ

สิ่งที่ต้องคำนึงถึงจริง ๆ มีทั้ง Storage, Bandwidth, RAM, CPU และเวลาที่ใช้ในการ Initial Block Download และ Verification

Hardware ที่เหมาะสมก็เปลี่ยนไปตามเวลา เพราะ Blockchain โตขึ้นเรื่อย ๆ เฉลี่ยปีนึงก็ 100 GB เห็นจะได้

และมีสิ่งที่เรียกว่า Pruned Node ซึ่งช่วยลดพื้นที่เก็บข้อมูล Blockchain เก่า หลังจาก Node ได้ดาวน์โหลดและตรวจสอบข้อมูลตามกระบวนการแล้ว

ดังนั้นคำว่า Full Node ไม่ได้หมายความว่าคุณต้องเก็บ Block ทุก Block เสมอไป

Pruned Full Node ก็ยังสามารถตรวจสอบ Consensus Rules ได้ ซึ่งก็มีหลายวิธีเช่นกัน


รัน Bitcoin Node แล้วได้เงินไหม?

คำถามนี้ผมเคยถามเหมือนกันในตอนที่ผมยังเป็นมือใหม่ 😂

คำตอบง่าย ๆ คือ :

การรัน Bitcoin Full Node เฉย ๆ ไม่ได้ทำให้คุณได้รับ Block Reward

ซึ่งสิ่งสำคัญก็คือ Node ไม่ใช่ Miner

มันไม่ได้สร้างรายได้เพียงเพราะเปิดเครื่องไว้

แล้วทำไมต้องเสียเงินซื้อ Computer, SSD, ค่าไฟ ค่า Internet เพื่อรันมัน?

อืม…

นี่แหละครับที่ผมคิดว่าคำตอบของแต่ละคนเริ่มไม่เหมือนกันแล้ว

บางคนรันเพราะ Privacy

บางคนรันเพื่อใช้กับ Wallet ของตัวเอง

บางคนอยากตรวจสอบ Bitcoin โดยไม่ต้องถาม Third Party

บางคนรันเพราะทำ Lightning Node ที่เป็น Layer 2

บางคนแค่สนุกกับการเรียนรู้ว่า Network ของ Bitcoin นี้มันทำงานยังไง?

และบางคนอาจไม่เห็นว่าตัวเองจำเป็นต้องรันเลยก็ได้


Don’t Trust. Verify.

เราเห็นประโยคนี้บ่อยมากในวงการ Bitcoin

จนบางทีผมรู้สึกว่ามันกลายเป็น Sticker ไปแล้ว 😂

แต่พอเราเข้าใจ Bitcoin Node คืออะไร ความหมายของมันเริ่มเปลี่ยนไป

มันไม่ได้แปลว่า:

“อย่าเชื่อใคร เพราะทุกคนเลว”

ผมรับข้อมูลจาก Peer คนอื่นอยู่ดี

ผมรับ Transaction จากคนที่ผมไม่รู้จัก

ผมรับ Block จาก Network

แต่ประเด็นคือ…

ผมสามารถตรวจสอบมันได้

Bitcoin ไม่ได้พยายามสร้างโลกที่ไม่มี Trust อยู่

มันพยายามลดจำนวนเรื่องที่เราจำเป็นต้อง Trust โดยเปิดโอกาสให้ Rules บางอย่างสามารถ Verify ได้ด้วยตัวเราเอง

ผมว่าความเท่ของมันอยู่ตรงนี้


FAQ — คำถามที่พบบ่อยเกี่ยวกับ Bitcoin Node

Bitcoin Node คืออะไร?

Bitcoin Node คือ Computer ที่รัน Software ของ Bitcoin และเชื่อมต่อกับ Bitcoin Network โดย Full Node สามารถตรวจสอบ Transaction, Block และ Consensus Rules ได้ด้วยตัวเอง แทนที่จะต้องเชื่อข้อมูลจาก Server กลางเพียงอย่างเดียว

Bitcoin Node กับ Bitcoin Miner เหมือนกันไหม?

ไม่เหมือนกัน

Miner ทำหน้าที่แข่งขันกันทำ Proof of Work เพื่อเสนอ Block ใหม่ ส่วน Full Node ทำหน้าที่ตรวจสอบว่า Transaction และ Block ที่ได้รับมานั้นถูกต้องตาม Consensus Rules ที่ Node ใช้อยู่หรือไม่

พูดง่าย ๆ คือ Miner เสนอ Block แต่ Node ไม่จำเป็นต้องยอมรับ Block ที่ผิดกฎ

รัน Bitcoin Node แล้วได้เงินไหม?

การรัน Bitcoin Full Node เพียงอย่างเดียวไม่ได้รับ Block Reward เพราะ Node ไม่ใช่ Miner

เหตุผลในการรัน Node จึงไม่จำเป็นต้องเป็นเรื่องรายได้ บางคนรันเพื่อใช้กับ Wallet ของตัวเอง เพิ่ม Privacy ลดการพึ่งพา Third Party หรือเพียงเพราะอยากตรวจสอบ Bitcoin ด้วยตัวเอง

Bitcoin Full Node ต้องเก็บ Blockchain ทั้งหมดหรือไม่?

ไม่เสมอไป Bitcoin Core รองรับ Pruning ซึ่งทำให้ Node สามารถตรวจสอบ Blockchain ตามกระบวนการปกติ แต่ไม่จำเป็นต้องเก็บ Block เก่าทั้งหมดไว้ตลอดเวลา

Pruned Node ยังคงเป็น Full Node ในแง่ของการตรวจสอบ Consensus Rules เพียงแต่ความสามารถในการให้บริการข้อมูล Block เก่าแก่ Peer อื่นจะมีข้อจำกัด

ถ้าไม่รัน Bitcoin Node ยังใช้ Bitcoin ได้ไหม?

ได้แน่นอน

Wallet Application จำนวนมากสามารถใช้งาน Bitcoin โดยอาศัย Node หรือ Infrastructure ของผู้ให้บริการรายอื่น

สิ่งที่แตกต่างคือคุณอาจต้องพึ่งพาข้อมูลจาก Third Party มากขึ้น เช่น Balance, Transaction History หรือสถานะ Confirmation แทนที่จะตรวจสอบข้อมูลเหล่านั้นผ่าน Infrastructure ของตัวเอง

Bitcoin Node ช่วยเรื่อง Privacy หรือไม่?

ช่วยได้ในบางด้าน โดยเฉพาะเมื่อ Wallet ของคุณเชื่อมต่อกับ Node หรือ Infrastructure ของตัวเองแทนการ Query Server ของ Third Party

แต่การรัน Node ไม่ได้ทำให้ Bitcoin กลายเป็น Anonymous เพราะ Transaction ยังคงถูกบันทึกอยู่บน Public Blockchain และ Privacy ยังขึ้นอยู่กับวิธีใช้ Address, UTXO และ Wallet ของเราด้วย

Bitcoin Node ป้องกัน Miner เปลี่ยนกฎ Bitcoin ได้หรือไม่?

Full Node ตรวจสอบ Block ตาม Consensus Rules ที่ Software ของมันบังคับใช้ ดังนั้น Hashrate เพียงอย่างเดียวไม่สามารถทำให้ Block ที่ผิดกฎของ Node กลายเป็น Valid ได้

แต่คำถามว่า “ใครเป็นคนกำหนดกฎของ Bitcoin?” ซับซ้อนกว่านั้น เพราะยังเกี่ยวข้องกับ Developers, Miners, Node Operators, Users และการ Coordination ของ Network

เรื่องนี้เอาไว้เราค่อยลงหลุมกันอีกที (อีกแล้วหรอ?)😅


ผมถือ Bitcoin เองจริงๆแล้วหรือยัง?

ตอนผมเริ่มเข้าใจ Hardware Wallet ผมเคยรู้สึกว่าเรื่องมันจบแล้ว

Private Key อยู่กับผม

Seed อยู่กับผม

Exchange หรือรัฐบาลก็ไม่สามารถเอา Bitcoin ของผมไปได้ง่าย ๆ อีกแล้ว

Not your keys, not your coins.

จบข่าวในพระราชสำนัก…

แต่พอเล่นไปนาน ๆ ผมก็เริ่มมีคำถามเพิ่ม

Wallet บอกว่าผมมี Bitcoin เท่านี้

มันรู้ได้ยังไง?

มันบอกว่า Transaction Confirm แล้ว

ใครเป็นคนบอกมัน?

มันบอกว่า Transaction นี้ Valid

มันถามใครมา?

ถ้าคำตอบทั้งหมดคือ Node ของบริษัทอื่น…

ผมถือ Key เองก็จริง

แต่ข้อมูลที่เกี่ยวข้องกับ Bitcoin ของผมเองนั้น

ผมยังถามคนอื่นอยู่หรือเปล่าวะ?

ผมว่าคำถามนี้น่าสนใจกว่าการถามว่า

“รัน Bitcoin Node แล้วได้เงินไหม?”

เพราะบางทีสิ่งที่เราได้จากการรัน Node มันอาจไม่ใช่ Bitcoin เพิ่มขึ้นมาแม้แต่ Sat เดียว

แต่มันอาจเป็นการลดจำนวนคนที่เราต้องถามว่า Bitcoin ของเรานั้น…มันเป็นเรื่องจริงหรือเปล่า

แล้วสำหรับคุณ เรื่องนี้มันสำคัญแค่ไหน ผมเองก็ตอบแทนไม่ได้เหมือนกัน

Similar Posts

  • Private Key คืออะไร? ทำไมคนที่ถือ Key ถึงควบคุม Bitcoin ได้?

    “แล้วใครมีสิทธิ Spend UTXO ก้อนนั้น?” นี่คือคำถามที่เรียกได้ว่าเด็ดดวงที่สุดในปฐพี Private Key คืออะไร? ถ้าผมตอบแบบสั้นที่สุด… มันคือ ความลับ ที่ทำให้คุณสามารถสร้างหลักฐานทางคณิตศาสตร์ เพื่ออนุญาตให้ Bitcoin ของคุณเอาไป Spend ได้ แต่เดี๋ยวก่อน… ประโยคนี้มีอะไรแปลก ๆ อยู่หนึ่งอย่าง ผมไม่ได้พูดว่า : Private Key คือรหัสผ่านของ Bitcoin และผมก็ไม่ได้พูดว่า : Private Key คือที่เก็บ Bitcoin เพราะจริง ๆ แล้ว… Bitcoin ไม่ได้สิงอยู่ใน Private Key ของคุณ มันไม่ได้อยู่ใน Hardware Wallet ด้วยนะ ไม่ได้อยู่ในมือถือด้วยนะ ไม่ได้อยู่ใน Trezor ด้วยนะ และไม่ได้อยู่ในกระดาษที่คุณเขียน Seed Phrase เก็บเอาไว้นะ Bitcoin อยู่บน…

  • Bitcoin Mining คืออะไร? Miner กำลังคำนวณหาอะไรกันแน่?

    จากบทความที่แล้วเราคุยกันเรื่อง Bitcoin Full Node ซึ่งผมเขียนประโยคหนึ่งเอาไว้ว่า Miner เสนอ Block ส่วน Node ตรวจการบ้าน ฟังดูง่ายดี… แต่แล้ว Miner มันเอา Block มาจากไหนวะ? เวลาเราเห็น Bitcoin Mining ภาพที่เจอกันบ่อย ๆ ก็คงเป็นโกดังใหญ่ ๆ มีเครื่อง ASIC วางเรียงกันเป็นร้อยเป็นพันเครื่อง พัดลมหมุนเสียงดังชิบหาย กินไฟกันเป็นโรงงาน แล้วไอ้เครื่องพวกนี้มันกำลังทำอะไรกันอยู่? มันกำลังแก้สมการคณิตศาสตร์? ถอดรหัส Bitcoin? ตรวจ Transaction? หรือมันกำลัง “ขุด” Bitcoin ใหม่ออกมาจาก Blockchain เหมือนคนขุดทอง? ตอนผมเริ่มศึกษา Bitcoin ใหม่ ๆ ผมก็เคยเข้าใจประมาณนั้นเหมือนกัน ผมคิดว่าคงมีโจทย์คณิตศาสตร์ยาก ๆ สักข้อ Network โยนโจทย์ออกมา แล้ว Computer ทั่วโลกแข่งกันแก้ ใครฉลาดกว่า…

  • Bitcoin Transaction คืออะไร? วิธีสร้างด้วยมือเปล่าใน 8 ขั้นตอน

    เคยสงสัยไหมว่า ตอนที่เรากด Send Bitcoin ใน Wallet จริง ๆ แล้วเบื้องหลังมันกำลังทำอะไรอยู่? ถ้าวันหนึ่งไม่มี Wallet ให้ใช้ไม่มีปุ่ม Send ให้กดไม่มีหน้าจอสวย ๆ มาคอยจัดการทุกอย่างให้เรา… เรายังสามารถสร้าง Bitcoin Transaction ขึ้นมาเองได้ไหม? คำตอบคือ ได้ บทความนี้เราจะลองถอด Wallet ออกทีละชั้น แล้วสร้าง Bitcoin Transaction “ด้วยมือเปล่า” ตั้งแต่การเลือก Tools ที่เราจะใช้, กำหนดว่าจะส่งมันไปที่ไหน, สร้าง Transaction ขึ้นมา ไปจนถึงการเซ็น Transaction ก่อนส่งออกไปยัง Bitcoin Network เป้าหมายไม่ใช่การทรมานตัวเองด้วยการทำสิ่งที่ Wallet ทำให้เราได้ภายในไม่กี่วินาที 😆 แต่คือการเปิดฝากระโปรงดูว่า Bitcoin ทำงานอย่างไรจริง ๆ เพราะเมื่อคุณสร้าง Transaction เองได้สักครั้ง คำว่า UTXO, Input,…

  • Digital Signature คืออะไร? Bitcoin พิสูจน์ว่าเป็นเจ้าของได้อย่างไร โดยไม่เปิดเผย Private Key

    Digital Signature คืออะไร? ถ้าผมบอกคุณว่า… ผมสามารถพิสูจน์กับคนทั้งโลกได้ว่า “ผมมี Private Key ของแท้” โดยที่… ผมไม่ต้องเอา Private Key ให้ใครดูเลยแม้แต่นิดเดียว คุณจะเชื่อมั้ย? หรือคุณอาจถามว่า : “แล้วกูจะรู้ได้ยังไงว่ามึงมีของจริง?” 😂 นี่แหละครับคือหนึ่งในความมหัศจรรย์ของ Cryptography ที่ Bitcoin ใช้ ในบทความก่อนหน้าเรื่อง Private Key คืออะไร? ทำไมคนที่ถือ Key ถึงควบคุม Bitcoin ได้? เรารู้แล้วว่า Private Key ไม่ใช่ Password และ Bitcoin ก็ไม่ได้ถูกเก็บอยู่ใน Private Key Private Key คือ Secret ที่สามารถนำมาใช้สร้างหลักฐานทาง Cryptography เพื่ออนุญาตให้เราทำการ Spend Bitcoin ตามเงื่อนไขที่กำหนดไว้ได้อย่างสบายใจ ซึ่งอีหลักฐานที่ว่านี้คือสิ่งที่เรียกว่า :…

  • UTXO คืออะไร? ทำไม Bitcoin ถึงไม่มี Balance อยู่จริง

    UTXO คืออะไร? ถ้าคุณเพิ่งเริ่มศึกษา Bitcoin คำนี้อาจฟังดูเหมือนศัพท์เทคนิคที่เข้าใจยาก แต่จริง ๆ แล้ว UTXO คือหนึ่งในแนวคิดพื้นฐานที่สุดของ Bitcoin และถ้าคุณเข้าใจมัน คุณจะเริ่มเห็นทันทีว่า Bitcoin ทำงานแตกต่างจากบัญชีธนาคารที่เราใช้กันทุกวันอย่างไร ถ้าผมถามคุณว่า… “ตอนนี้คุณมีเงินอยู่ในบัญชีธนาคารเท่าไหร่?” คุณอาจเปิด Mobile Banking ขึ้นมา แล้วตอบว่า ฉันมีเงินอยู่ 50,000 บาท ก็โอเค๊ นั่นมันง่ายมาก เพราะระบบธนาคารทำให้เราคุ้นเคยกับสิ่งที่เรียกว่า Account Base Balance แน่นอนว่าธนาคารมีบัญชีของคุณที่เป็นระบบฐานข้อมูล Databaseและในบัญชีนั้นมีตัวเลขเขียนเอาไว้ว่า นาย A มีเงิน = 50,000 บาท ถ้าคุณโอนให้ Bob 10,000 บาท ระบบก็ทำหน้าที่หักลบตัวเลขออกประมาณว่า: นาย A เหลือยอดเงินในบัญชีคือ : 50,000 → 40,000 บาท และนาย Bob ก็จะมียอดเงินเพิ่มขึ้นเป็น…