Categories
Computer

#25 – Blockchain + CBDC ที่จะใช้ใน Digital Wallet

วันก่อนรัฐบาลประกาศ Digital Wallet ที่จะแจกด้วยเงินหมื่นบาทผ่าน Blockchain เราเลยค้นข้อมูล Blockchain และ CBDC และเขียนบทความนี้เป็นพื้นฐานสำหรับ Digital Wallet

วันก่อนที่รัฐบาลเพื่อไทยประกาศถึง 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 ขั้นตอน

  1. ก่อนอื่นเราต้องมี Block แรกสุด (Genesis Block) เสียก่อน สำหรับการเป็นพื้นฐานให้กับ Block ที่จะเพิ่มเข้ามาเพื่อที่จะทำเป็น Blockchain
  2. เมื่อที่เกิดการทำธุรกรรม (Transaction) เกิดขึ้น ระบบจะสร้างข้อมูลขึ้น โดยตัวอย่างข้อมูล Transaction ที่สร้างขึ้นก็มี
    • ลำดับที่ Block (Block index)
    • Timestamp
    • รหัส Hash ของ Block ก่อนหน้า (Previous Hash)
    • และข้อมูลที่เราต้องการใส่ (ตัวอย่างของ Bitcoin ก็เป็น Nonce (Number use only once) ที่เป็นข้อมูลตัวเลขที่เป็น 32-bit (4 byte) แบบสุ่ม และข้อมูล Transaction*)
  3. เมื่อสร้างข้อมูลขึ้นมาแล้ว ข้อมูลนั้นจะได้รับการเข้ารหัส Hash อย่าง SHA-256 แล้วจะได้รับการประกาศไปทุกโหนดเพื่อที่จะให้แต่ละโหนดตรวจสอบความถูกต้องของ Transaction โดย Bitcoin จะได้เทคนิค Proof-of-work เพื่อดูว่ามีรหัส Hash ตรงตามที่ต้องการหรือไม่
  4. เมื่อแต่ละโหนดตรวจสอบแล้วโหนดส่วนใหญ่พบว่า Transaction นั้นถูกต้อง ระบบจะนำข้อมูลที่สร้างขึ้นในขั้นตอนที่ 2 รวมถึง Hash ในขั้นตอนที่ 3 มาสร้างเป็น Block ใหม่ โดยอ้างอิงกับ Block ก่อนหน้านั้น
  5. ทำไปเรื่อย ๆ จนเกิดเป็นสาย Blockchain
ตัวอย่างของข้อมูลในแต่ละ Block ที่ใช้ใน Bitcoin (Prev Hash คือ Hash ของ Block ก่อนหน้า, Tx คือ Transaction และ Nonce ที่ได้กล่าวไปแล้วในขั้นตอนที่ 2) (ภาพจากเปเปอร์ Bitcoin: A Peer-to-Peer Electronic Cash System)

เราสามารถเขียนโค้ด 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 ได้ ส่งผลให้่เราประหยัดพื้นที่มากกว่าเดิม

Merkel Tree ที่นำมาใช้งานในแต่ละ Block (ภาพจากเปเปอร์ Bitcoin: A Peer-to-Peer Electronic Cash System)
Binary Tree (จาก Wikimedia Commons)

คุณลักษณะของ 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

ภาพ Linked List ที่ประกอบไปด้วย Data กับ Next ที่เป็น Reference ที่อ้างอิงถึงตำแหน่งข้อมูลที่อยู่ถัดจากข้อมูลปัจจุบัน (ภาพจาก Wikimedia Commons)

นอกจากตัวโครงสร้างที่คล้ายกันกับ 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 ที่ทางธนาคารกลางแต่ละประเภทกำลังวิจัยอยู่ ก็ยกตัวอย่างตามด้านล่างนี้ ได้แก่

ข้อดี

เหรียญ CBDC มีข้อดีที่

  1. อนุญาตให้บุคคลทั่วไปที่มีโทรศัพท์สมาร์ทโฟนเข้าถึงระบบการจ่ายเงินผ่านทางดิจิทัลได้ โดยไม่จำเป็นต้องมีบัญชีธนาคาร
  2. เราสามารถตั้งโปรแกรมเงินดิจิทัลได้โดยการใช้งานผ่านทาง Smart Contract*
  3. ธนาคารกลางของแต่ละประเทศสามารถควบคุม และดูแลสกุลเงินดิจิทัลประเทศตัวเองได้โดยที่ไม่ตกอยู่ในการดูแลของบริษัทใดบริษัทหนึ่ง

ข้อสังเกต

การนำเหรียญสกุลเงินดิจิทัล 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) ได้ครับ

ที่มา

  1. Understanding Blockchain Technology
  2. Untangling Blockchain: A Data Processing View of Blockchain Systems
  3. The blockchain: State-of-the-art and research challenges
  4. Hashcash – A Denial of Service Counter-Measure
  5. Bitcoin: A Peer-to-Peer Electronic Cash System
  6. Ethereum – Whitepaper
  7. Introduction to Linked List – Data Structure and Algorithm Tutorials – GeeksforGeeks
  8. Central bank digital currencies: motives, economic implications and the research frontier – BIS Working Papers
  9. Blockchain application for central bank digital currencies (CBDC) – Cluster Computing
  10. เงินสกุลดิจิทัลของธนาคารกลาง: ความท้าทายใหม่ของธนาคารพาณิชย์ – ธนาคารกรุงศรีอยุธยา
  11. Blockchain and central bank digital currency – ICT Express
  12. ความเป็นมาของโครงการ CBDC ธปท. – ธนาคารแห่งประเทศไทย
  13. Introduction to Smart contracts – Ethereum

By Kittisak Chotikkakamthorn

อดีตนักศึกษาฝึกงานทางด้าน AI ที่ภาควิชาวิศวกรรมไฟฟ้า มหาวิทยาลัย National Chung Cheng ที่ไต้หวัน ที่กำลังหางานทางด้าน Data Engineer ที่มีความสนใจทางด้าน Data, Coding และ Blogging / ติดต่อได้ที่: contact [at] nickuntitled.com