วันก่อนที่รัฐบาลเพื่อไทยประกาศถึง Digital Wallet ที่จะแจกจ่ายด้วยจำนวนเงิน 10,000 บาทให้แก่ประชาชนผ่านระบบ Blockchain
พอเราฟังแล้ว เราเลยค้นหาข้อมูล (รวมถึงจากเปเปอร์) เรื่องที่เกี่ยวข้อง ได้แก่ Blockchain และเหรียญสกุลเงินดิจิทัล CBDC (Central Bank Digital Currency) แล้วได้รายละเอียดแบบคร่าว ๆ ตามด้านล่างนี้
สารบัญ
Blockchain
Blockchain [1-3] เป็นชนิดการเก็บข้อมูลกระจายศูนย์ (Distributed Ledger Technology หรือ DLT) แบบ Chain-based data structure ที่มีข้อมูลที่เข้ารหัสในนั้น โดยข้อมูลที่นำมาเชื่อมต่อกันจะเรียงลำดับตามวัน และเวลาที่ประทับลงไป (Timestamp) ส่งผลให้ข้อมูลนั้นไม่สามารถเข้าไปแก้ไข และดัดแปลงได้
ที่มาของ Blockchain
จุดเริ่มต้นของ Blockchain นั้นเรื่องมันยาว แต่เอาว่าจุดเริ่มต้นแรก ๆ มาจากตัวเปเปอร์ How to Time-Stamp a Digital Document และ New Directions to Cryptography ที่กล่าวถึงการทำ Timestamp (การประทับเวลา) กับการเข้ารหัสตามลำดับ
จากเปเปอร์ทั้งสองอันที่กล่าวตามข้างบนนี้ ทำให้มีผู้พัฒนาเหรียญดิจิทัลแรก ๆ ก็เป็น Hashcash [4] ที่เดิมนำมาใช้ป้องกัน Spam E-mail กับป้องกัน Distributed Denial-of-Service (DDoS) แต่คราวนี้ผู้พัฒนานำมาต่อยอดสำหรับการคำนวณ Token สำหรับการทำ Proof-of-work โดยใช้ฟังก์ชันอย่าง
- MINT(x) เป็นฟังก์ชันสำหรับการเข้ารหัสด้วย Hash function โดยฟังก์ชันนี้มีที่มาจากการทำ Minting เงินขึ้นมา
- VALUE(x) เป็นฟังก์ชันสำหรับการประเมิน Token ที่สร้างขึ้นโดยฟังก์ชันนี้จะผ่านก็ต่อเมื่อ Token ที่สร้างขึ้นมานั้นมีค่าตามที่ต้องการ ตัวอย่างเช่น ค่า 0 ที่บ่งบอกถึงความปลอดภัยที่มากขึ้นในกรณีที่มีค่า 0 ติดต่อกันหลายหลัก เนื่องมาจากการโจมตีนี้จำเป็นต้องใช้คอมพิวเตอร์ที่มีประสิทธิภาพสูงมาก (High Computational Complexity)
หลักการ Proof-of-work ที่ใช้งานใน Hashcash นั้นเป็นที่มาของการสร้างเหรียญ Cryptocurrency เหรียญแรกขึ้นมา นั่นคือ Bitcoin [5]
Bitcoin นี้ได้รับการนำเสนอโดย Satoshi Nakamoto ในเปเปอร์ Bitcoin: A Peer-to-peer Electronic Cash System ที่เป็นการนำเสนอ Data-structure ที่เป็น Blockchain ที่เก็บธุรกรรมแบบเข้ารหัส Hash ไว้ ร่วมกับนำเสนอวิธีการเข้ารหัส และเก็บข้อมูลการทำธุรกรรมโดยใช้ Markel Tree
หลังจากที่มีคนเสนอ Bitcoin แล้ว มีผู้พัฒนา พัฒนาเหรียญ Cryptocurrency ใหม่ภายใต้ชื่อ Ethereum [6] ที่นำเสนอการโปรแกรมเหรียญผ่าน Smart Contract ที่เป็นพื้นฐานการพัฒนาโปรแกรมอย่าง Decentralized app (Dapp)
ภายหลังจากการพัฒนา Bitcoin และ Ethereum ก็มีผู้พัฒนา พัฒนาเหรียญต่าง ๆ ออกมา โดยเหรียญเหล่านี้อยู่ในกลุ่มที่เรียกว่า Altcoins
ชนิดของ Blockchain
Blockchain แบ่งออกได้เป็น 3 ประเภท ได้แก่
- Public (หรือ Permissionless Blockchain)
- Private (หรือ Permissioned Blockchain)
- และ Hybrid (หรือ Consortium Blockchain)
Public Chain
Public Chain เป็น Blockchain ที่มีลักษณะเป็นไร้ศูนย์กลาง (Decentralized) ที่ใคร ๆ ก็เอาคอมพิวเตอร์เป็นโหนด (Node) สำหรับการร่วมอ่าน เขียน ตรวจสอบ โหวต แล้วได้รับรางวัลเป็นแรงจูงใจสำหรับการขุด (Incentive)
ตัวอย่างของเหรียญที่จัดในหมวดนี้คือ Bitcoin กับ Ethereum
Private Chain
Private Chain เป็น Blockchain ที่มีศูนย์กลาง (Centralized) ที่ควบคุมโดยหน่วยงาน บุคคล บริษัทแห่งใดแห่งหนึ่ง ถึงสิทธิ์การเข้าร่วมอ่าน เขียน ตรวจสอบ และโหวตภายใน Blockchain ที่จำกัดการเข้าถึงเฉพาะหน่วยงานนั้น ๆ
อย่างไรก็ดีหน่วยงานนั้นอาจจะเปิดให้ผู้ใช้จากหน่วยงานภายนอกบางแห่งเข้ามาดูข้อมูลใน Blockchain ได้บางส่วนเพื่อที่จะ Audit ข้อมูล
Hybrid Chain
Hybrid Chain เป็น Blockchain ที่อยู่ระหว่าง Public กับ Private Chain ที่ทางหน่วยงานเจ้าของ Blockchain นั้นเปิดให้ผู้ใช้ภายนอกเข้ามาดู Blockchain ได้ แต่ไม่ได้เปิดให้ผู้ใช้ทุกรายเข้าร่วมเขียน ตรวจสอบ และโหวตมีหน่วยงาน หรือผู้ใช้บางรายเท่านั้นที่ทำได้
หลักการทำงาน
หลักการทำงานพื้นฐานของบล็อกเชนแบบออกได้เป็น 5 ขั้นตอน
- ก่อนอื่นเราต้องมี Block แรกสุด (Genesis Block) เสียก่อน สำหรับการเป็นพื้นฐานให้กับ Block ที่จะเพิ่มเข้ามาเพื่อที่จะทำเป็น Blockchain
- เมื่อที่เกิดการทำธุรกรรม (Transaction) เกิดขึ้น ระบบจะสร้างข้อมูลขึ้น โดยตัวอย่างข้อมูล Transaction ที่สร้างขึ้นก็มี
- ลำดับที่ Block (Block index)
- Timestamp
- รหัส Hash ของ Block ก่อนหน้า (Previous Hash)
- และข้อมูลที่เราต้องการใส่ (ตัวอย่างของ Bitcoin ก็เป็น Nonce (Number use only once) ที่เป็นข้อมูลตัวเลขที่เป็น 32-bit (4 byte) แบบสุ่ม และข้อมูล Transaction*)
- เมื่อสร้างข้อมูลขึ้นมาแล้ว ข้อมูลนั้นจะได้รับการเข้ารหัส Hash อย่าง SHA-256 แล้วจะได้รับการประกาศไปทุกโหนดเพื่อที่จะให้แต่ละโหนดตรวจสอบความถูกต้องของ Transaction โดย Bitcoin จะได้เทคนิค Proof-of-work เพื่อดูว่ามีรหัส Hash ตรงตามที่ต้องการหรือไม่
- เมื่อแต่ละโหนดตรวจสอบแล้วโหนดส่วนใหญ่พบว่า Transaction นั้นถูกต้อง ระบบจะนำข้อมูลที่สร้างขึ้นในขั้นตอนที่ 2 รวมถึง Hash ในขั้นตอนที่ 3 มาสร้างเป็น Block ใหม่ โดยอ้างอิงกับ Block ก่อนหน้านั้น
- ทำไปเรื่อย ๆ จนเกิดเป็นสาย Blockchain
เราสามารถเขียนโค้ด Python เพื่อสร้าง Blockchain แบบง่าย โดยที่ใช้เพียงโหนดเดียวได้ตามด้านล่างนี้
เขียนโค้ด
ก่อนอื่น เราต้องนำเข้าไลบรารีสำหรับการเข้ารหัส และการลงวันที่และเวลาสำหรับการทำ Timestamp
import hashlib, datetime
ต่อมาสร้าง Class สำหรับการสร้าง Block ขึ้นมาใช้งานใน Blockchain
class Block:
def __init__(self, index, timestamp, data, previous_hash):
self.index = index
self.data = {
"timestamp": timestamp,
"data": data,
"previous_hash": previous_hash
}
self.hash = self.calculate_hash()
self.prev = None
def calculate_hash(self):
hash_string = str(self.index)
for data in self.data.values():
hash_string += str(data)
return hashlib.sha256(hash_string.encode()) \
.hexdigest()
โดย
- ฟังก์ชัน hashlib.sha256 เป็นฟังก์ชันสำหรับการเข้ารหัสข้อความให้อยู่ในรูป SHA-256
- ฟังก์ชัน hexdigest เป็นฟังก์ชันสำหรับการแสดงออกข้อมูลให้อยู่ในรูป String
จากนั้น เราสร้าง Class สำหรับการสร้าง กับตรวจสอบ Blockchain รวมถึงแสดงผลข้อมูลข้างใน Blockchain ที่สร้างขึ้น ในตัวอย่างนี้เราจะใช้โครงสร้างข้อมูลแบบ Linked List โดยอ้างอิงกับข้อมูลก่อนหน้านั้น
class Blockchain:
# Start with Genesis Block
def __init__(self):
self.chain = Block(0, datetime.datetime.now(), \
"Genesis", "0")
# Add the block to the latest
def add_block(self, value):
block = Block(self.chain.index + 1, \
datetime.datetime.now(), value, \
self.chain.hash)
block.prev = self.chain
self.chain = block
def output(self, block):
print("index", block.index)
print("Hash", block.hash)
for k,v in block.data.items():
print(f"{ k }: { v }")
print("=============")
def display(self):
block = self.chain
while block.prev is not None:
self.output(block)
block = block.prev
self.output(block)
def isvalid(self):
if self.chain.prev is None:
return True
block = self.chain
while block.prev is not None:
previous = block.prev
if block.hash != block.calculate_hash():
return False
if block.data['previous_hash'] != previous.hash:
return False
block = block.prev
return True
เมื่อสร้าง Class เสร็จแล้ว ให้ทดลองเขียนโค้ดสำหรับการเพิ่มข้อมูลเข้าไปใน Blockchain ครับ
blockchain = Blockchain()
blockchain.add_block("Transaction 1")
blockchain.add_block("Transaction 2")
blockchain.add_block("Transaction 3")
จากนั้น เขียนโค้ดสำหรับการแสดงผล
blockchain.display()
ผลลัพธ์ที่ได้จะแสดงตามด้านล่างนี้
index 3
Hash 4cb806c8994d15bbc48f028a3cd02fc9c2a0332d52bf504eb0830c7c2d1bf1dc
timestamp: 2024-04-20 11:19:07.650991
data: Transaction 3
previous_hash: 4e36eb1459bd0d5b7cefdd096e4e5ffe1e4dd5885b50086c79cb48cc91a33d0a
=============
index 2
Hash 4e36eb1459bd0d5b7cefdd096e4e5ffe1e4dd5885b50086c79cb48cc91a33d0a
timestamp: 2024-04-20 11:19:07.650935
data: Transaction 2
previous_hash: 0380d1be543800dfd97cfd0e8f68f6585fa3dffe2ff08853626ec70b8222f2d5
=============
index 1
Hash 0380d1be543800dfd97cfd0e8f68f6585fa3dffe2ff08853626ec70b8222f2d5
timestamp: 2024-04-20 11:19:07.650893
data: Transaction 1
previous_hash: aae1d58e7c6d044d1c7aa4a56d444688740ff5b5e32399094d5230637e77f77a
=============
index 0
Hash aae1d58e7c6d044d1c7aa4a56d444688740ff5b5e32399094d5230637e77f77a
timestamp: 2024-04-20 11:19:07.650819
data: Genesis
previous_hash: 0
=============
*หมายเหตุ
รายละเอียด Transaction ใน Bitcoin นั้น ถ้าเราเก็บข้อมูล Transaction ทั้งหมดจะทำให้ข้อมูลมีขนาดใหญ่มาก ราวหลายร้อย GB ไปจนถึง TB ส่งผลให้การตรวจสอบ Transaction ใช้ระยะเวลานาน
ผู้พัฒนาจึงใช้ Data structure อย่าง Merkel Tree มาจัดการเรื่องนี้
Merkel Tree
Merkel Tree [5] เป็น Hash-based data structure ที่มีลักษณะการเก้บข้อมูลคล้ายกันกับ Binary Tree โดย
- Leaf node เก็บข้อมูล Transaction แต่ละ Transaction ที่ได้รับการเข้ารหัส Hash
- Node ระดับที่เหนือกว่านั้น จะนำข้อมูลที่ได้จากการเข้ารหัส Hash ของข้อมูลระดับที่ต่ำกว่ามาประกอบกัน
- สร้าง Node ไล่ขึ้นไปในแต่ละระดับจนถึง Root Node โดยค่าที่ได้ใน Root Node จะเก็บค่า Hash ที่เป็นตัวแทนของค่า Hash ของทุก Transaction
การเก็บข้อมูลในลักษณะนี้ทำให้โหนดแต่ละโหนดสามารถตรวจสอบ Transaction ได้โดยการตรวจสอบค่า Hash ของ Root Node เท่านั้น เราไม่จำเป็นต้องไปตรวจสอบทุก Transaction
แถมอีกอย่าง เราสามารถตัดข้อมูลบางส่วน (Pruning) ออกจาก Merkel Tree ได้ ส่งผลให้่เราประหยัดพื้นที่มากกว่าเดิม
คุณลักษณะของ Blockchain
ตัว Blockchain [3] นั้นมีคุณลักษณะที่ทำงานได้โดย
- ไม่จำเป็นต้องมีศูนย์กลาง (Decentralization) ตามพื้นฐานของ Blockchain ที่ข้อมูลของ Block จะกระจายไปตามแต่ละโหนดในเครือข่ายนั้น ๆ
- ไม่ไว้วางใจ (Detrusting) ตามพื้นฐานของ Blockchain ที่ไม่จำเป็นต้องให้โหนดแต่ละโหนดที่เข้าร่วมในเครือข่ายเดียวกันไว้วางไว้ โดยแต่ละโหนดจะตรวจสอบการทำ Transaction นั้น ๆ แล้วจะใช้เทคนิคการเข้ารหัสข้อมูล และการตรวจสอบโดยส่วนใหญ่ว่า Transaction นั้นถูกต้องหรือไม่
- โปร่งใส (Transparency) โดยในแต่ละโหนดของ Blockchain นั้นจะแชร์ข้อมูล Transaction เพื่อที่จะให้แต่ละโหนดทราบ และให้แต่ละโหนดมีข้อมูลเป็นแบบเดียวกันหมด (Consistent)
- ติดตามได้ และลืม Transaction นั้นไม่ได้ (Traceable and Unforgeable) โดย
- ตัว Blockchain จะใช้เทคนิคการทำ Timestamp เพื่อลงวันที่และเวลาไว้ในแต่ละ Transaction เพื่อยืนยันว่าเป็นข้อมูลที่ถูกต้อง และเป็นต้นฉบับ
- และตัว Blockchain จะไม่อนุญาตให้เปลี่ยนแปลงข้อมูลเมื่อ Transaction นั้นได้รับการตรวจสอบว่าถูกต้อง กับได้รับการเพิ่ม Block เข้าไปใน Blockchain เรียบร้อยแล้ว
- ส่งผลให้ป้องกันการเกิดธุรกรรมซ้ำซ้อน (Double Spending) และป้องกันการโจมตีของ Hacker ที่ถึงแม้ว่าจะมีคอมพิวเตอร์ที่มีประสิทธิภาพสูง (ยกเว้นแต่ Hacker จะครอบครองโหนด 51% จากทั้งหมด ซึ่งเป็นไปได้ยาก)
ข้อสังเกต
จากการสังเกตโครงสร้างของตัว Blockchain แล้ว เราจะพบว่ามันคล้ายกับ Linked List [7]
Linked List เป็นโครงสร้างข้อมูลพื้นฐานที่ใช้งานในงานทางด้าน Computer Science ที่ประกอบไปด้วย Block ที่มี
- ข้อมูล (Data)
- และการอ้างอิง (Reference) ตามตำแหน่งที่เก็บไว้ในหน่วยความจำ (Address) ของข้อมูลถัดไป (Next) หรือก่อนหน้า (Prev)
การเก็บข้อมูลในลักษณะนี้เป็นการเก็บข้อมูลแบบ Dynamic Memory Allocation ที่เราสามารถเพิ่ม แทรกกับลบ Block ได้
อย่างไรก็ดี การเก็บข้อมูลลักษณะนี้มีข้อเสียเรื่องการค้นหา และเข้าถึงข้อมูลที่ทำได้ช้า เนื่องจากต้องค้นหาข้อมูลโดยการใช้ Linear Search
นอกจากตัวโครงสร้างที่คล้ายกันกับ Blockchain แล้ว ตัว Blockchain [3] จะมีข้อสังเกตอื่น ได้แก่
- การออกแบบขั้นตอนการเช็คความถูกต้องจากโหนดส่วนใหญ่ (Concensus Mechanism) โดยขั้นตอนการตรวจสอบใช้ทรัพยากรคอมพิวเตอร์ที่สูงมาก ส่งผลให้เกิด Latency ขึ้นมาในระบบ ดังนั้นแล้วการออกแบบระบบที่ใช้งานกับ Blockchain นี้จำเป็นต้องออกแบบ Protocol การสื่อสารระหว่างโหนดให้เหมาะสม เพื่อที่จะลด Latency
- การออกแบบเพื่อขยายระบบให้รองรับข้อมูลที่มากขึ้น (Scalability) โดยที่ข้อมูลของ Blockchain จำเป็นต้องสำรองไว้ในแต่ละโหนดซึ่งจะเกิดปัญหาขึ้นเมื่อข้อมูล Blockchain มีขนาดใหญ่มากขึ้น ตัวระบบจำเป็นต้องออกแบบให้รองรับการ Scale ของพื้นที่จัดเก็บข้อมูล และออกแบบตัวโครงสร้าง Blockchain ให้ใช้พื้นที่ได้อย่งามีประสิทธิภาพ
- โครงสร้าง Blockchain (Chain Structures) ที่การออกแบบ Blockchain เส้นเดียว (Single-chain) จะจำกัดประสิทธิภาพของการประมวลผล จุดนี้มีการออกแบบ Blockchain ในรูปแบบต่าง ๆ เช่น
- Multi-chain เพื่อกระจายให้ข้อมูลไม่ได้อยู่โหนดใดโหนดหนึ่งเพื่อออกแบบให้รองรับการ Scale ระบบs
- Side-chain เพื่อแตกสาย Blockchain นั้นออกมาเพื่อใช้กับงานใดงานหนึ่งโดยเฉพาะ (ตัวอย่างเช่น Smart Contract) โดยที่ยังคงเชื่อมต่อกับ Blockchain หลัก ๆ อยู่
- การบังคับใช้กฏหมาย (Law & Regulations) การออกแบบ Blockchain จำเป็นต้องพิจารณาเรื่องกฏหมาย ข้อบังคับ ความเป็นส่วนตัว และการออกแบบให้ไม่ระบุตัวตน (Anonymization)
Central Bank Digital Currency (CBDC)
หลังจากที่รู้เรื่องของ Blockchain กันมาแล้ว เรามาเข้าเรื่องจริง ๆ แล้ว นั่นก็คือเหรียญ CBDC [8-10]
เหรียญ CBDC เป็นสกุลเงินดิจิทัลที่มีหน่วยเท่ากันกับสกุลเงินปกติที่ออกโดยธนาคารกลางในแต่ละประเทศ เหรียญประเภทนี้มีคุณสมบัติเป็นสื่อกลางที่สามารถจ่ายเงินซื้อสินค้า และบริการได้เหมือนเงินปกติ เพียงแต่อยู่ในรูปแบบดิจิทัล
ส่วนของไทย เหรียญ CBDC เหมือนกับเงินบาทที่ออกโดยธนาคารแห่งประเทศไทย (ธปท.) ที่นำไปใช้จ่ายได้ตามปกติ
เหรียญประเภทนี้นำไปใช้งานภายใต้ระบบ Blockchain ที่มีลักษณะที่เป็น Centralized ที่จำกัดอยู่ที่ธนาคารกลางและหน่วยงานที่เกี่ยวข้อง ผิดกันกับเหรียญ Cryptocurrency ที่ให้ใคร ๆ เข้ามาร่วมได้ครับ
ที่มา
ที่มาของ CBDC มาจากการพัฒนา Cryptocurrency อย่าง Bitcoin และ Ethereum รวมถึง Altcoins อื่น ๆ นั้น ตัว Cryptocurrency ถูกมองว่าเป็นทรัพย์สิน (Asset) เนื่องมาจาก
- ค่าเงินและอัตราแลกเปลี่ยนมันผันผวนสุด ๆ ทำให้ไม่เหมาะต่อการนำมาใช้จ่ายเงินจริง ๆ
- กับเหรียญ Cryptocurrency ถูกนำมาใช้งานในการฟอกเงินสำหรับวงการสีเทา
- และเปลืองทรัพยากรเนื่องมาจากการนำคอมพิวเตอร์มาประมวลผลเพื่อทำ Proof-of-work ที่ต้องใช้ทรัพยากรจำนวนมาก
ต่อมา นอกจากตัว Cryptocurrency ตามที่กล่าวไว้ข้างบนแล้ว ยังมีการพัฒนาเหรียญ Cryptocurrency อีกแบบคือ Stablecoins ที่เป็นเหรียญที่ต้องการให้อัตราแลกเปลี่ยนคงที่โดยใช้
- ตัวทรัพย์สินรองรับ (Asset-backed) อย่างเงินทั่วไป (Fiat Money)
- กับการใช้เหรียญ Cryptocurrency รองรับ (Crypto-backed)
- และไม่ใช้อะไรรองรับเลย ใช้แต่การเขียนอัลกอริทึมออกมา (Algorithm-backed)
การพัฒนาเหรียญ Stablecoins ฟังดูดี อย่างไรก็ตามมันติดปัญหาในเรื่องของการควบคุม จากเดิมที่ธนาคารกลางกับรัฐดูแล ตอนนี้ทางบริษัทที่ออกเหรียญนั้นดูแลแทน ก็จะติดปัญหาเรื่องกฏหมายอะไรพวกนี้
ถัดมา ก็มีการมาของ Big Tech อย่าง Meta (หรือ Facebook) ที่พัฒนาเหรียญ Libra (ที่ปัจจุบันเป็น Diem ที่ขายไปแล้ว) นำมาใช้ อย่างไรก็ตามมันก็จะติดปัญหาเลยคือ
- Transaction จะถูกเก็บในบริษัทนั้น ๆ จนเป็น Data-silo
- Privacy/Governance ที่ต้องระวังเรื่องของความปลอดภัย และระวังต่อการนำไปใช้งานทางด้านการฟอกเงิน
- Market Dominance Abuse จากบริษัท Big Tech
สุดท้าย การมาของ COVID ที่ส่งผลให้ทางธนาคารกลางสนใจที่พัฒนา วิจัย และต่อยอดทางด้านเหรียญ Central Back Digital Currency (CBDC)
ประเภทของ CBDC
เหรียญ CBDC แบ่งประเภทได้ออกเป็น 2 ประเภท ตามลักษณะการใช้งาน ได้แก่ Wholesale CBDC และ Retail CBDC [10]
Wholesale CBDC ที่เป็นเหรียญ CBDC สำหรับการนำไปใช้งานการทำธุรกรรมระหว่างธนาคาร กับสถาบันทางการเงินต่าง ๆ ทั้งในประเทศ และระหว่างประเทศ ที่ช่วยลดความเสี่ยง ลดต้นทุน และลดระยะเวลาในการโอนเงินระหว่างประเทศ จากหลักวันเหลือหลักวินาที
Retail CBDC ที่เป็นเงินสดในรูปแบบดิจิทัลที่ใช้จ่ายกับบุคคล ห้างร้าน และร้านค้าออนไลน์ (e-commerce) นอกจากนี้เหรียญนี้ยังนำไปใช้กับการจ่ายเงินระหว่างประเทศ (Cross-border payment) อีกด้วย โดยเหรียญประเภทนี้ช่วยให้
- ลดระยะเวลาการโอนเงิน โดยผู้ใช้สามารถรับเงินได้ตามเวลาจริง
- ลดต้นทุนค่าบริการ CBDC โดยต้นทุนการทำธุรรมมีมูลค่าน้อยจนแทบจะไม่มีค่า แถมยังช่วยเอกชนที่ให้บริการการชำระเงินลดอัตราค่าธรรมเนียม
- ทำธุรกรรมระหว่างประเทศได้สะดวกขึ้น โดยสามารถตรวจสอบการทำธุรกรรม กับช่วยลดต้นทุน และช่วยลดระยะเวลาในการโอน
- ช่วยเข้าสู่ระบบการเงินดิจิทัล
- ลดต้นทุนการพิมพ์และผลิตเงินตรา เนื่องมาจากมันเป็นระบบดิจิทัลหมด เลยไม่มีต้นทุนการผลิต และการขนส่ง
- เพิ่มบทบาทธนาคารกลาง นอกจากการผลิตเงินแล้ว ยังติดต่อกับลูกค้ารายย่อยโดยตรง ช่วยเรื่องเศรษฐกิจฐานราก
- เป็นต้น
การออกแบบเหรียญ CBDC
เหรียญ CBDC ได้รับการออกแบบเพื่อที่จะเป็นสกุลเงินดิจิทัลที่ทำหน้าที่ได้เหมือนกับเงินสด (Fiat money) นั้น เหรียญ CBDC จำเป็นต้องออกแบบให้ทำธุรกรรมได้ฉับไว มีต้นทุนที่ต่ำ และมีความปลอดภัย ทั้งทางด้านการโอนเงินภาวในประเทศ และระหว่างประเทศ
นอกจากนี้ CBDC จำเป็นต้องมีฟีเจอร์ [11] อย่าง
- การโอนเงินแบบ Offline กับโอนเงินได้ทันที (Offline and instant payment) เหมือนกับที่เราจ่ายด้วยเงินสด
- ความเป็นส่วนตัว และการปิดบังตัวตน (Anonymity and privacy) เหมือนกับการจ่ายเงินสดระหว่างกัน ที่เราจำเป็นต้องป้องกันไม่ให้ทราบถึงข้อมูลที่บ่งบอกตัวตนของเจ้าของเงิน และไม่ให้ทราบถึงข้อมูลส่วนตัวที่ Sensitive
- ความปลอดภัย (Security) โดยความปลอดภัยเป็นสิ่งสำคัญต่อการพัฒนาเหรียญ CBDC ที่ควรจะป้องกันมิจฉาชีพ ป้องกันการจ่ายเงินซ้ำ (Double Spending) ป้องกันการปลอมแปลงธุรกรรม กับป้องกันการโอนแฮค และทุกธุรกรรมนั้นสามารถตรวจสอบได้
- ความเป็นมิตรต่อผู้ใช้ และความสะดวก (Convenience and User friendliness) ที่เหรียญ CBDC ควรที่จะให้คนทุกเพศ ทุกวัยสามารถเข้ามาใช้งานได้ ถึงแม้จะมีหรือไม่มี Smartphone ก็ตาม
- การเปิดให้ทำธุรกรรมได้ 24/7 (Availability) โดยที่ไม่มีการปิดระบบ (No plan downtime)
- กฏหมาย และการบังคับใช้ (Regulation) โดยขึ้นอยู่กับธนาคารกลาง และหน่วยงานรัฐในแต่ละประเทศ
ตัวอย่างของเหรียญ CBDC
ตัวอย่างของเหรียญ CBDC ที่ทางธนาคารกลางแต่ละประเภทกำลังวิจัยอยู่ ก็ยกตัวอย่างตามด้านล่างนี้ ได้แก่
- จีน ที่เปิดให้ใช้งานเป็นเงินสกุลหยวนดิจิทัล (e-CNY หรือ China DCEP)
- ไทย [12] ที่ธนาคารมีโครงการอินทนนท์ที่เป็นรากฐานของการพัฒนาเหรียญ CBDC ที่เป็น Wholesale CBDC ภายใต้โครงการ mBridge และ Retail CBDC
- เป็นต้น
ข้อดี
เหรียญ CBDC มีข้อดีที่
- อนุญาตให้บุคคลทั่วไปที่มีโทรศัพท์สมาร์ทโฟนเข้าถึงระบบการจ่ายเงินผ่านทางดิจิทัลได้ โดยไม่จำเป็นต้องมีบัญชีธนาคาร
- เราสามารถตั้งโปรแกรมเงินดิจิทัลได้โดยการใช้งานผ่านทาง Smart Contract*
- ธนาคารกลางของแต่ละประเทศสามารถควบคุม และดูแลสกุลเงินดิจิทัลประเทศตัวเองได้โดยที่ไม่ตกอยู่ในการดูแลของบริษัทใดบริษัทหนึ่ง
ข้อสังเกต
การนำเหรียญสกุลเงินดิจิทัล CBDC เข้ามาใช้งาน นอกจากข้อดีตามที่ระบุไว้ก่อนหน้านี้แล้ว ยังมีข้อสังเกตอยู่ ได้แก่
- ความจำเป็นต่อการใช้ Blockchain ที่เราสามารถใช้วิธีการทำธุรกรรมดิจิทัลที่ธนาคารใช้อยู่ได้เลย
- การตรวจสอบธุรกรรม ที่ปกติ Bitcoin จะนำคอมพิวเตอร์เครื่องไหนก็ได้มาใช้ แต่เหรียญดิจิทัล CBDC นี้จะต้องเป็นระบบกลางของธนาคารกลางในแต่ละประเทศนั้น ๆ ที่จำเป็นต้องออกแบบให้รับการธุรกรรมที่เกิดขึ้นได้โดยไม่มีการล่ม หรือหยุดทำงาน
- ความเป็นส่วนตัว และความปลอดภัย
- ประสิทธิภาพ ข้อเสียจุดหนึ่งของการใช้งาน Blockchain ตามที่เขียนถึงวิธีการทำงานตามข้างบนนี้แล้ว นั่นคือทำงานได้ช้า โดยเหรียญ Bitcoin จะใช้เวลา 10 นาทีในการยืนยันการทำธุรกรรม ส่วน Ethereum จะใช้เวลา 1 วินาทีในการยืนยัน ซึ่งเหรียญสกุลเงินดิจิทัลจำเป็นต้องใช้เวลาน้อยกว่านั้น
- ความปลอดภัย
- กฏหมาย และการบังคับใช้
- เป็นต้น
(เพิ่มเติม) Smart Contract
*Smart Contract [12] เป็นโปรแกรมหนึ่งที่ทำงานอยู่บน Blockchain ที่อนุญาตให้ผู้ใช้เขียนโปรแกรมเพื่อให้ทำงานเมื่อมี Transaction ของเหรียญที่เข้ากันได้กับเงื่อนไขที่ผู้ใช้กำหนดไว้ เมื่อทำงานเสร็จแล้ว Transaction นี้จะย้อนกลับไม่ได้ ซึ่งเป็นไปตามคุณสมบัติของ Blockchain ที่ไม่อนุญาตให้ผู้ใช้เปลี่ยนแปลงธุรกรรมที่เกิดขึ้นมาแล้ว
ที่มาของ Smart Contract มาจากปัญหาความไว้วางใจต่อบุคคลที่เกี่ยวข้องกับการทำสัญญา ที่ถึงแม้ว่ามันจะตรงตามสัญญาทั้งหมดแล้ว เราจำเป็นต้องไว้วางไว้บุคคลที่เราทำสัญญาด้วย การพัฒนา Smart Contract นี้ออกแบบมาแก้ปัญหาเรื่องความไว้วางใจต่อบุคคลโดยตัดตัวกลางออก เพื่อให้โปรแกรมมาจัดการให้อัตโนมัติแทน
การทำงานของ Smart Contract เรายกตัวอย่างกับตู้กดสินค้า (Vending Machine) เมื่อผู้ใช้ใส่ Input ที่เหมาะสม (เงิน และสินค้าที่เลือก) ตู้กดจะให้สินค้าตามที่ต้องการ โดยเราสามารถเขียนเงื่อนไขได้ตามด้านล่างนี้
money + snack selection = snack dispensed
เงื่อนไขตามข้างบนนี้ เราจะเขียนโปรแกรมไปยังตู้กดสินค้า ซึ่งจุดนี้เปรียบได้กับการเขียน Smart Contract ที่มีเงื่อนไขที่ได้รับการโปรแกรมไว้ให้ทำงานอัตโนมัติ และให้ผลลัพธ์เป็นไปตามที่ระบุในสัญญานั้น ๆ แบบเดียวกันตลอด โดยที่ไม่จำเป็นต้องมีปัจจัยเรื่องคนเข้ามาเกี่ยวข้องที่จะส่งผลต่อผลลัพธ์ของสัญญานั้น ๆ
การนำ Smart Contract มาใช้งานนอกจากมีข้อดีเรื่องผลลัพธ์แล้ว ยังมีข้อดีทางด้านความเป็นส่วนตัวที่ตัว Smart Contract จะไม่ได้นำข้อมูลนอกเหนือจากตัว Transaction เหรียญอะไรพวกนี้ไปใช้งาน ดังนั้นแล้วเราไม่ต้องกังวลว่าข้อมูลส่วนตัวจะถูกเอาไปใช้งาน กับถูกโชว์ให้คนภายนอกเห็น
ตัวอย่างการนำ Smart Contract ไปใช้งานก็ได้แก่ Stablecoins, Gaming, Currency Exchange และอื่น ๆ
ผู้ที่สนใจพัฒนา Smart Contract สามารถศึกษาได้จากเว็บของ Ethereum เองครับ
ส่งท้าย
สำหรับผู้อ่านที่เห็นว่าบทความนี้ดี มีประโยชน์ ให้กดไลค์ หรือกดแชร์ไปยังแพลตฟอร์มโซเชียลต่าง ๆ นอกจากนี้ ผู้อ่านยังติดตามได้่ใน Linkedin หรือ X (หรือ Twitter) ได้ครับ
ที่มา
- Understanding Blockchain Technology
- Untangling Blockchain: A Data Processing View of Blockchain Systems
- The blockchain: State-of-the-art and research challenges
- Hashcash – A Denial of Service Counter-Measure
- Bitcoin: A Peer-to-Peer Electronic Cash System
- Ethereum – Whitepaper
- Introduction to Linked List – Data Structure and Algorithm Tutorials – GeeksforGeeks
- Central bank digital currencies: motives, economic implications and the research frontier – BIS Working Papers
- Blockchain application for central bank digital currencies (CBDC) – Cluster Computing
- เงินสกุลดิจิทัลของธนาคารกลาง: ความท้าทายใหม่ของธนาคารพาณิชย์ – ธนาคารกรุงศรีอยุธยา
- Blockchain and central bank digital currency – ICT Express
- ความเป็นมาของโครงการ CBDC ธปท. – ธนาคารแห่งประเทศไทย
- Introduction to Smart contracts – Ethereum