Blockchain ถูกเรียกว่าเป็น revolution ยุคใหม่ของ internet ที่สามารถแก้ปัญหาเรื่องการทำสำเนาของข้อมูลบน internet ได้ ทำให้เกิดตัวตนที่มีความเป็น unique ของข้อมูล บนโลกของ internet, ไม่สามารถทำซ้ำได้, ไม่สามารถแก้ไขข้อมูลที่บันทึกไปแล้วได้ ทำให้สามารถอ้างอิงมูลค่าของทรัพย์สินได้ เช่น มูลค่าของเงินหรือทดแทนทรัพย์สินที่มีอยู่อย่างจำกัดได้ (tokenization) ไม่ว่าจะเป็นการอ้างอิงถึงกรรมสิทธิ์ต่างๆ เช่น โฉนดที่ดิน, สิทธิ์การสมาชิกหรือ กรรมธรรม์ อีกทั้งยังสามารถสร้างมูลค่าทางการเงินดิจิตัลที่สามารถนำมาทดแทน เงินสกุลต่างๆอีกด้วย

จริงๆแล้ว พื้นฐานของ Blockchain ก็คือการเก็บข้อมูลแบบกระจายตัวบนอินเตอร์เนท (distributed database) โดยอาศัยรูปแบบการบันทึกบัญชีแยกประเภทที่ต้องอ้างอิงถึงที่มาที่ไปของข้อมูลนั่นเอง โดยที่ Blockchain มีคุณสมบัติเฉพาะหลักๆอยู่ 3 เรื่องคือ
- มีการเข้ารหัสของข้อมูล (encrypted) เนื่องจากฐานข้อมูลอยู่บน internet ใครๆก็เข้าถึงได้ ฉะนั้นการเข้ารหัสของข้อมูลเป็นเรื่องสำคัญ เปรียบเสมือนตู้ล๊อกเกอร์ที่เก็บของเอาไว้ข้างใน เจ้าของตู้ล๊อคกุญแจเอาไว้ ซึ่งทุกๆคนก็เห็นกุญแจถูกล๊อกเอาไว้แล้วมีชื่อหรือเลขเจ้าของตู้อยู่ (ในโลกของ Blockchain เรียกว่า Public address) ซึ่งเจ้าของตู้ล๊อคเกอร์เป็นคนเดียวที่มีกุญแจเปิดตู้นั้นได้ (ใน Blockchain เรียกว่า Private address) การเอากุญแจไปไขเปิดตู้ ถ้าเป็นกุญแจที่ถูกต้องตู้ก็จะเปิดได้และเห็นของหรือข้อมูลที่เก็บไว้ในตู้ (ใน Blockchain จะเข้าถึงข้อมูลได้ต้องผ่านการตรวจสอบด้วย digital signature ซึ่งเหมือนกับการไขกุญแจตู้ล๊อคเกอร์) ด้วยการนำ Public key กับ Private key มารวมกันเป็นการยืนยัน address ที่ถูกต้อง เจ้าของที่แท้จริงเท่านั้นที่จะเข้าถึงข้อมูลได้ผ่านการตรวจสอบ address บน blockchain
- เป็นฐานข้อมูลแบบกระจายศูนย์ (distributed database) เก็บอยู่บนเครื่องคอมพิวเตอร์ของผู้คนที่ใช้ระบบเครือข่าย Blockchain เดียวกัน ซึ่งจะมีชุดข้อมูลเหมือนๆกัน (เรียกคอมพิวเตอร์เหล่านั้นว่า node) node เหล่านี้จะทำการตรวจสอบและสร้างบล๊อคของข้อมูลใหม่ๆเพื่อเก็บข้อมูลโดยการยืนยันจากจำนวน node มากกว่า 50% ของจำนวน node ทั้งหมดของเครือข่าย ทำให้ยากแก่การเปลี่ยนแปลงแก้ไขข้อมูล ทุกคนสามารถเห็นองค์ประกอบทั้งหมดของ Blockchain ได้ ไม่ว่าจะเป็นจำนวน node เลขที่บล๊อคใหม่ที่สร้างขึ้นรวมถึงข้อมูลของบล๊อคเก่าๆก่อนหน้า แต่เป็นรูปแบบข้อมูลที่ถูกเข้ารหัส การสร้างบล๊อคเก็บข้อมูลใหม่จำเป็นต้องมีการตกลงร่วมกัน โดยการแข่งขันกันหาค่าสุ่มให้ได้เลขที่น้อยกว่าค่าเป้าหมายที่ระบบตั้งเอาไว้ ใครหาได้ก่อนจะมีสิทธิ์ในการสร้างบล๊อคใหม่บนอินเตอร์เนท
- สามารถขยายได้อย่างไม่มีที่สิ้นสุด (scalable) โดยการสร้างบล๊อคเก็บข้อมูลต่อๆกันไป ซึ่งเกาะยึดกับข้อมูลในบล๊อคเก็บข้อมูลก่อนหน้าด้วยการอ้างถึงด้วย address ที่มีการเข้ารหัสเอาไว้ในลักษณะพิเศษ คือ address ของ block จะถูกเข้ารหัสด้วยการอ้างอิงจากข้อมูลทั้งหมดที่มีอยู่ใน block นั้นๆ เรียกว่าการ hash เพราะฉะนั้นถ้ามีการเปลี่ยนข้อมูลใน block นั้นๆแค่เพียงตัวอักษรเดียว ก็จะทำให้ hash information เปลี่ยนไป และไม่สามารถอ้างอิงกับ block ก่อนหน้านี้ได้ การต่อ block เก็บข้อมูลใหม่จะเกิดขึ้นออกไปเรื่อยๆ แบบไร้พรมแดน ผู้ใช้งานอยู่มุมไหนของโลกก็ได้ ขึ้นอยู้กับว่าใครสร้าง block ใหม่ได้สำเร็จก่อนกัน คุณสมบัตินี้เป็นที่มาของคำว่า blockchain ซึ่งการต่อ block แบบนี้จะทำให้ไม่สามารถแก้ไขข้อมูลใน block ก่อนหน้านี้ได้ (immutable) ทำให้เป็นการเก็บข้อมูลที่มีความหน้าเชื่อถือและตรวจสอบได้

{
"nonce": "0xdeadbeefdeadbeef",
"timestamp": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x0",
"gasLimit": "0x8000000",
"difficulty": "0x400",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x3333333333333333333333333333333333333333",
"alloc": {
}
}
ด้านบนคือตัวอย่างของข้อมูลใน Ethereum blockchain บล๊อคแรก(ที่มีชื่อว่า genesis block) แปลงมาในรูปของ json file ซึ่งเป็นรูปแบบการเก็บข้อมูลบน internet ที่สามารถเปิดอ่านได้ด้วย text editor

วิธีที่จะเก็บข้อมูลบนอินเตอร์เนทให้เล็กและมีประสิทธิภาพสูงสุดในการกระจายเครือข่าย คือ การเก็บข้อมูลในรูปของตัวอักษร เราจึงเห็นข้อมูลแบบโครงสร้างของ Blockchain ในรูปแบบเลขฐาน 16 ไม่ว่าจะเป็น blockchain network ของเหรียญใดก็ตาม โครงสร้างของข้อมูลหลักๆ จะต้องมีองค์ประกอบหลักๆดังนี้
- Time stamp (nTime) บ่งบอกถึงเวลาในการสร้างบล๊อคนั้นๆ
- Previous block หรือ parent hash (hashPrevBlock) อ้างอิงถึง Input จาก block ที่แล้ว เนื่องจาก blockchain คือแนวคิดในการการบันทึกบัญชีแยกประเภทแบบดิจิตัล (digital ledger) เพื่อใช้ในการแก้ปัญหา double spending ซึ่งใน genesis block จะมีค่าเป็น 0 เพราะเป็นบล๊อคแรกที่ถูกสร้างขึ้นในเครือข่าย
- hash ของ block ปัจจุบัน (current block hash, CBlock) ใช้ในการบันทึกข้อมูลและอ้างอิงสำหรับบล๊อคถัดไป
- Coinbase คือเงินรางวัล ซึ่งจ่ายในรูปของเหรียญคริปโตให้กับ Miner ที่สามารถแก้สมการและสร้างบล๊อคได้สำเร็จ กรณีนี้หมายถึง blockchain ที่ใช้ระบบ proof of work
- Nonce เป็นกลไกการกำหนดค่าความยากในการแก้สมการด้วยตัวเลขแบบสุ่ม เพื่อที่จะรักษาระยะเวลาในการสร้างบล๊อคใหม่ให้คงที่ ไม่ว่าจะมี node ใน ecosystem เพิ่มมากขึ้นเท่าไร หรือ CPU/GPU จะมีความแรงในการแก้สมการได้เร็วขึ้นแค่ไหน Nonce จะถูกประเมินและปรับแก้ให้การสร้างบล๊อคใหม่มีความคงที่เสมอ
- Bitcoin มีค่าเฉลี่ยในการสร้างบล๊อคใหม่อยู่ที่ 10 นาที
- Ethereum มีค่าเฉลี่ยในการสร้างบล๊อคใหม่อยู่ที่ 13 วินาที
ด้วยคุณสมบัติข้างต้นทำให้ blockchain ที่เกิดมาพร้อมกับเหรียญ cryptocurrency ตัวแรกของโลกที่ชื่อว่า bitcoin ซึ่งเวลานั้นยังไม่มีคำว่า blockchain เกิดขึ้นในโลกด้วยซ้ำ, Satoshi Nakamoto ผู้สร้าง Bitcoin ต้องการที่จะแสดงให้เห็นว่า ทรัพย์สินสามารถถูกทดแทนได้ในรูปแบบของ digital และระบบยังแก้ปัญหาการทำธุรกรรมผ่านคนกลาง (bank – intermediaries) เพื่อเป็นหลักประกันความหน้าเชื่อถือได้อีกด้วย ซึ่งเค้าเชื่อว่ามันจะแก้ปัญหาของระบบการเงินแบบ Centralize ได้ โดยวันที่ Bitcoin genesis block ถูกสร้างขึ้น เค้าได้มีการซ่อนข้อความไว้ใน Genesis บล๊อคดังนี้
“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”
เนื่องจาก blockchain เป็นเครือข่ายแบบไร้พรมแดน ทุกคนสามารถเข้าถึงได้ cryptocurrency ก็สามารถจะเป็นสกุลเงินของโลกได้ โดยไม่ต้องมี operation fees ให้กับคนกลางหลายทอด(intermediaries) ในการโอนเงินข้ามประเทศแสนแพงอีกต่อไป เป็นการลดต้นทุนทางการเงินที่สั่นสะเทือนวงการธนาคารทั้งโลกถ้ามันเป็นที่นิยมแพร่หลายในอนาคต
ข้อเสียของ blockchain คือ ทำงานได้ช้ากว่าพวก centralized database เพราะต้องมีการกระจายข้อมูลของ block ใหม่ไปให้กับผู้ที่ถือครอง node ทั้งหมด, อีกประการหนึ่งคือยิ่ง chain ยาวเท่าไหร่การเข้าถึงข้อมูลก็จะยิ่งช้าลงเท่านั้น แน่นอนครับมีหลายวิธีที่จะเอาชนะข้อจำกัดเหล่านี้และถูกพัฒนาอยู่ตลอดเวลา
เพราะฉะนั้นเราไม่จำเป็นต้องใช้ Blockchain ในการสร้างฐานข้อมูลบน internet เสมอไป และ Blockchain ก็ยังไม่สามารถนำมาทดแทน centralize database ทั้งหมดได้ เพราะต่างมีข้อดีและด้อยที่แตกต่างกัน
| Attributes | Blockchain | Centralize database |
| การเก็บและประมวลข้อมูล | ช้าเนื่องจากต้องกระจายไปให้ทั่วทุกโหนด และยังต้องอ่านข้อมูลตาม sequence ของ block รวมถึงระยะเวลาในการสร้างบล๊อค | ประมวลผลได้เร็ว ขึ้นอยู่กับจำนวน CPU และ memory ของ database server |
| การแก้ไขข้อมูลและสิทธิ์ในการเข้าถึงข้อมูล | ทำได้ยากมากโดยเฉพาะ public blockchain เหมาะกับข้อมูลที่ไม่ต้องแก้ไขบ่อยและข้อมูลที่ต้องการอ้างอิงการเปลี่ยนแปลง การเข้าถึงข้อมูลเข้าใช้ได้โดยไม่ต้องขออนุญาติเพราะอยู่บน internet แต่สามารถกำหนดสิทธิเข้าใช้ได้ถ้าเป็น private blockchain (enterprise) | ทำได้ง่าย ขึ้นอยู่กับสิทธิการเข้าถึงจากผู้ให้สิทธิ์ซึ่งสามารถกำหนดชั้นการเข้าถึงของข้อมูลได้ง่าย |
| การขยายฐานข้อมูล | ขยายได้แบบไร้ขอบเขตบน internet เชื่อมต่อกับ business partners และสร้างเป็น eco-system ได้ง่าย ไม่ต้องมีคนดูแล | จำกัดตามเครื่อข่าย network ของ server นั้นๆ และต้องมีคนดูแลเครือข่าย |
| ความปลอดภัยของข้อมูล | เข้ารหัส ระบุตัวตนเจ้าของได้ยาก ถ้าไม่มีการทำ Know Your Customer เก็บไว้, Hack ได้ยากถ้าไม่ได้ถือครอง Node เกิน 50% ของเครือข่ายทั้งหมด | ขึ้นอยู่กับนโยบายความปลอดภัยของเครือข่ายที่ตั้ง database server ทำให้มีค่าใช้จ่ายด้าน network security สูงเมื่อต้องการเชื่อมต่อกับ internet เนื่องจากเป็นฐานข้อมูลกลางทำให้ hack ได้ง่ายกว่า มีปัญหาด้าน Single point of failure (ระบบล่มได้ง่ายกว่า) |
| ความน่าเชื่อถือของข้อมูลในการสืบค้นข้อมูล | มีความน่าเชื่อถือสูง เพราะแก้ไขข้อมูลเก่าไม่ได้ เหมาะกับการทำ traceability | ขึ้นอยู่กับการออกแบบ การแก้ไข และการ input ข้อมูลของฐานข้อมูล เพราะแก้ไขข้อมูลได้ (garbage in = garbage out) |
| การเคลื่อนย้ายและสำเนาข้อมูล | ข้อมูลมีเอกลักษณ์และบันทึกการเปลี่ยนแปลงทั้งหมด ไม่สามารถสร้างสำเนาได้ เหมาะสำหรับการอ้างอิงข้อมูลทรัพย์สิน หรือสิ่งที่มีอัตลักษณ์เฉพาะตัวได้ดี | เหมาะสำหรับฐานข้อมูลที่มีการคัดสำเนา เช่นการส่งอีเมล์ เจ้าของยังคงมีสำเนาต้นฉบับเก็บไว้ |
สำนักงานพัฒนาธุรกรรมทางอีเลคโทรนิกส์ได้จัดทำ e-book เกี่ยวกับพื้นฐาน Blockchain ขึ้นมา ซึ่งอธิบายเอาไว้ได้ดีมาก รวมถึง Use cases ต่างๆที่เกิดขึ้นกับประเทศไทยด้วย แปะเอาไว้ให้อ่านกันครับ
1 thought on “Blockchain คืออะไร มันมีอะไรอยู่ในนั้น?”