លំហសិក្សាកម្ពុជា លំហសិក្សាកម្ពុជា V1.0
ចូល ចុះឈ្មោះ

មេរៀនទី ១៖ ការរំលឹក Python មូលដ្ឋាន និងការណែនាំអំពី Blockchain

មូលសង្ខេប / Abstract

មេរៀននេះណែនាំនិស្សិតឱ្យចាប់ផ្ដើមរៀន Blockchain តាមរយៈការរំលឹកមូលដ្ឋាន Python Programming និងការបង្កើតកម្មវិធី Console Application សាមញ្ញ។ មុនពេលនិស្សិតអាចសរសេរកូដ Blockchain ដូចជា Transaction, Hash, Block, Previous Hash និង Chain Validation ពួកគេត្រូវយល់ជាមុនអំពី print(), input(), variables, conditions, loops និងរបៀបសរសេរកម្មវិធីដែលទទួលទិន្នន័យពីអ្នកប្រើប្រាស់។ បន្ទាប់ពីនោះ មេរៀននេះភ្ជាប់ចំណេះដឹង Python ទៅនឹងគំនិត Blockchain ដូចជា Digital Trust, Data Integrity, Certificate Verification និង Tamper Detection។ Blockchain ត្រូវបានពន្យល់ថាជាប្រព័ន្ធកត់ត្រាទិន្នន័យដែលប្រើ Cryptography ដើម្បីគាំទ្រការពារទិន្នន័យ និងធ្វើឱ្យការកែប្រែទិន្នន័យអាចត្រូវបានរកឃើញ។ NIST បានពន្យល់ថា Blockchain ជាបច្ចេកវិទ្យា Ledger ដែលមានលក្ខណៈ Tamper-Evident និងប្រើ Hashing, Blocks, Transactions និង Consensus Concepts ដើម្បីគាំទ្រការកត់ត្រាទិន្នន័យឌីជីថល [1].

ពាក្យគន្លឹះ

១. ព័ត៌មានទូទៅអំពីមេរៀន

ចំណុចព័ត៌មាន
មុខវិជ្ជាBlockchain Technology Using Python Console and CSV
មេរៀនមេរៀនទី១
ចំណងជើងPython Review I and Introduction to Blockchain
កម្រិតនិស្សិតBeginner to Intermediate
ភាសាសរសេរកម្មវិធីPython
ប្រភេទកម្មវិធីConsole Application
ឧបករណ៍ប្រើប្រាស់Python, VS Code, Terminal / Command Prompt
លទ្ធផលរំពឹងទុកនិស្សិតអាចបង្កើតកម្មវិធី Console សាមញ្ញសម្រាប់បញ្ចូលព័ត៌មានវិញ្ញាបនបត្រ
ទិសដៅ ProjectConsole-Based Blockchain Student Certificate Verification System

២. គោលបំណងសិក្សា

បន្ទាប់ពីបញ្ចប់មេរៀននេះ និស្សិតគួរអាច៖

  1. ពន្យល់បានថា Python Console Application គឺជាអ្វី។
  2. ប្រើ print() ដើម្បីបង្ហាញទិន្នន័យទៅលើអេក្រង់។
  3. ប្រើ input() ដើម្បីទទួលទិន្នន័យពីអ្នកប្រើប្រាស់។
  4. ប្រើ Variables ដើម្បីរក្សាទុកព័ត៌មាន។
  5. ប្រើ if / else ដើម្បីពិនិត្យលក្ខខណ្ឌ។
  6. ប្រើ while loop ដើម្បីធ្វើឱ្យកម្មវិធីដំណើរការម្តងហើយម្តងទៀត។
  7. ពន្យល់បានថា Blockchain ជាប្រព័ន្ធកត់ត្រាទិន្នន័យដែលជួយបង្កើត Digital Trust។
  8. ពន្យល់បានថា Blockchain អាចជួយដល់ការផ្ទៀងផ្ទាត់វិញ្ញាបនបត្រនិស្សិតបានយ៉ាងដូចម្តេច។
  9. សរសេរកម្មវិធី Python Console សាមញ្ញសម្រាប់បញ្ចូល និងបង្ហាញព័ត៌មានវិញ្ញាបនបត្រ។

៣. សេចក្ដីផ្ដើម

ការរៀន Blockchain សម្រាប់និស្សិតកម្រិតដំបូងមិនគួរចាប់ផ្ដើមពីប្រព័ន្ធធំៗ ឬ Smart Contract ភ្លាមៗទេ។ វាគួរចាប់ផ្ដើមពីការយល់ Logic មូលដ្ឋានជាមុន។ Python Console Application គឺជាជំហានដំបូងល្អបំផុត ព្រោះវាអនុញ្ញាតឱ្យនិស្សិតផ្ដោតលើការគិតបែប Programming ដោយមិនទាន់បារម្ភអំពី Database, Website, Server ឬ User Interface ស្មុគស្មាញ។

ក្នុងមេរៀននេះ និស្សិតនឹងរៀនថា ព័ត៌មានវិញ្ញាបនបត្រមួយអាចត្រូវបានបញ្ចូលទៅក្នុងកម្មវិធី Python Console។ ព័ត៌មាននេះនឹងក្លាយជាមូលដ្ឋានសម្រាប់មេរៀនបន្ទាប់ៗ ដូចជា Transaction, CSV Storage, Hashing, Block, Blockchain និង Tamper Detection។

Python Documentation ពន្យល់ពីការប្រើ Input និង Output សម្រាប់បង្ហាញទិន្នន័យ និងអាន/សរសេរទិន្នន័យ ដែលជាមូលដ្ឋានសំខាន់សម្រាប់ Console Application និង File-Based Application [2].


៤. Python Basics for Blockchain Development

៤.១ Python Console Application គឺជាអ្វី?

Python Console Application គឺជាកម្មវិធីដែលដំណើរការតាមរយៈ Terminal ឬ Command Prompt។ កម្មវិធីប្រភេទនេះអនុញ្ញាតឱ្យអ្នកប្រើប្រាស់បញ្ចូលទិន្នន័យជាអក្សរ ហើយកម្មវិធីបង្ហាញលទ្ធផលត្រឡប់មកវិញជាអក្សរ។

ឧទាហរណ៍៖

print("Welcome to Blockchain Technology Course")

លទ្ធផល៖

Welcome to Blockchain Technology Course

កម្មវិធី Console មានប្រយោជន៍សម្រាប់អ្នកចាប់ផ្ដើម ព្រោះវាជួយឱ្យយើងយល់ពី Logic របស់កម្មវិធីជាមុន។ នៅពេលនិស្សិតចេះ Console Logic រួច ពួកគេអាចបន្តទៅ CSV, SQLite3, Flask ឬ Web Application បានងាយជាងមុន។

រូបភាពនេះបង្ហាញពីកម្មវិធី Python ដែលដំណើរការនៅក្នុង Command Prompt ឬ Terminal។ វាជួយឱ្យនិស្សិតយល់ថា Console Application គឺជាកម្មវិធីដែលអ្នកប្រើប្រាស់បញ្ចូលទិន្នន័យ និងទទួលលទ្ធផលតាមអក្សរ។ ក្នុងមេរៀននេះ Console Application គឺជាជំហានដំបូងសម្រាប់រៀន Blockchain Logic មុននឹងបន្តទៅ CSV, Hashing, Blocks និង Validation។


៤.២ ហេតុអ្វីត្រូវចាប់ផ្ដើម Blockchain ជាមួយ Python Console?

Blockchain មានគំនិតសំខាន់ៗដូចជា Transaction, Hash, Block, Previous Hash និង Chain Validation។ គំនិតទាំងនេះអាចសរសេរជាកូដ Python Console បានយ៉ាងងាយ។ ដូច្នេះការចាប់ផ្ដើមពី Console គឺមានហេតុផលច្បាស់លាស់។

ហេតុផលការពន្យល់
ងាយស្រួលចាប់ផ្ដើមមិនចាំបាច់ដំឡើង Database ឬ Web Server ភ្លាមៗ
ផ្ដោតលើ Logicនិស្សិតអាចរៀនពី Transaction, Hash និង Block ដោយផ្ទាល់
Debug ងាយកំហុសអាចមើលឃើញភ្លាមៗនៅក្នុង Terminal
សមស្របសម្រាប់អ្នកចាប់ផ្ដើមសរសេរកូដតិចៗ ប៉ុន្តែយល់គំនិតបានច្បាស់
ជាមូលដ្ឋានសម្រាប់ Project ធំអាចបន្តទៅ CSV, SQLite3 និង Flask នៅវគ្គបន្ទាប់

ក្នុងមុខវិជ្ជានេះ យើងនឹងប្រើ Python Console ដើម្បីបង្កើតប្រព័ន្ធតូចមួយសម្រាប់ការផ្ទៀងផ្ទាត់វិញ្ញាបនបត្រនិស្សិត។ ប្រព័ន្ធនេះនឹងបន្តរីកចម្រើនពីការបញ្ចូលទិន្នន័យធម្មតា ទៅរកការបង្កើត Transaction, Hash, Block និង Chain Validation។


៤.៣ ការប្រើ print()

print() គឺជាមុខងារ Python ដែលប្រើសម្រាប់បង្ហាញទិន្នន័យទៅលើ Console។

ឧទាហរណ៍

print("Student Certificate Verification System")
print("Faculty of Digital Economy")
print("National University of Management")

ការពន្យល់

  • បន្ទាត់ទី១ បង្ហាញឈ្មោះប្រព័ន្ធ។
  • បន្ទាត់ទី២ បង្ហាញឈ្មោះមហាវិទ្យាល័យ។
  • បន្ទាត់ទី៣ បង្ហាញឈ្មោះសាកលវិទ្យាល័យ។

លទ្ធផល

Student Certificate Verification System
Faculty of Digital Economy
National University of Management

សារៈសំខាន់

ក្នុង Blockchain Project យើងត្រូវការបង្ហាញព័ត៌មានជាច្រើនដូចជា៖

  • Certificate ID
  • Student Name
  • Transaction Data
  • Hash Value
  • Block Information
  • Blockchain Validation Result

ដូច្នេះ print() គឺជាមូលដ្ឋានសំខាន់សម្រាប់ការបង្ហាញលទ្ធផលទៅអ្នកប្រើប្រាស់។


៤.៤ Variables

Variable គឺជាឈ្មោះមួយដែលប្រើសម្រាប់រក្សាទុកតម្លៃ។ ក្នុង Project របស់យើង Variable អាចរក្សាទុកព័ត៌មានវិញ្ញាបនបត្រ ឬព័ត៌មាន Blockchain។

ឧទាហរណ៍

certificate_id = "CERT-FDE-001"
student_name = "Sok Dara"
program = "Digital Economy"

print(certificate_id)
print(student_name)
print(program)

ការពន្យល់

  • certificate_id រក្សាទុកលេខវិញ្ញាបនបត្រ។
  • student_name រក្សាទុកឈ្មោះនិស្សិត។
  • program រក្សាទុកឈ្មោះកម្មវិធីសិក្សា។

សារៈសំខាន់សម្រាប់ Blockchain

នៅពេលយើងបង្កើត Blockchain យើងត្រូវការរក្សាទុកព័ត៌មានច្រើនដូចជា៖

transaction_id
certificate_id
student_name
timestamp
previous_hash
current_hash
block_index
status

ព័ត៌មានទាំងនេះត្រូវការប្រើ Variables មុនពេលវាត្រូវបានរៀបចំជា Dictionary, Transaction ឬ Block។


៤.៥ ការប្រើ input()

input() ប្រើសម្រាប់ទទួលទិន្នន័យពីអ្នកប្រើប្រាស់។

ឧទាហរណ៍

student_name = input("Enter Student Name: ")
print("Student Name:", student_name)

រូបភាពនេះបង្ហាញពីដំណើរការមូលដ្ឋានរបស់កម្មវិធី Python។ អ្នកប្រើប្រាស់បញ្ចូលទិន្នន័យទៅក្នុងកម្មវិធី Python ហើយកម្មវិធីបង្ហាញលទ្ធផលត្រឡប់មកលើអេក្រង់។ គំនិតនេះជាមូលដ្ឋានសំខាន់សម្រាប់កម្មវិធី Console-Based Certificate Verification System ព្រោះប្រព័ន្ធត្រូវទទួលព័ត៌មានវិញ្ញាបនបត្រ ពិនិត្យទិន្នន័យ និងបង្ហាញលទ្ធផល verify ឬ invalid។

ការពន្យល់

កម្មវិធីសួរឱ្យអ្នកប្រើប្រាស់បញ្ចូលឈ្មោះនិស្សិត។ បន្ទាប់មកវារក្សាទុកឈ្មោះនោះក្នុង variable student_name ហើយបង្ហាញលទ្ធផលត្រឡប់មកវិញ។

ឧទាហរណ៍សម្រាប់ Certificate

certificate_id = input("Enter Certificate ID: ")
student_name = input("Enter Student Name: ")
program = input("Enter Program: ")

print("Certificate ID:", certificate_id)
print("Student Name:", student_name)
print("Program:", program)

សារៈសំខាន់

ក្នុងប្រព័ន្ធ Certificate Verification អ្នកប្រើប្រាស់ត្រូវបញ្ចូលទិន្នន័យ ដូចជា Certificate ID ឬ Student Name។ ដូច្នេះ input() គឺជាចំណុចចាប់ផ្ដើមសម្រាប់ការបង្កើត Interactive Console Application។


៤.៦ Conditions: if / else

Condition ប្រើសម្រាប់ធ្វើការសម្រេចចិត្តក្នុងកម្មវិធី។ ក្នុង Project របស់យើង Condition អាចប្រើដើម្បីពិនិត្យថា Certificate មានស្ថានភាព Valid ឬ Invalid។

រូបភាពនេះបង្ហាញពីរបៀបដែលកម្មវិធីធ្វើការសម្រេចចិត្តតាមស្ថានភាពវិញ្ញាបនបត្រ។ ប្រសិនបើ Status គឺ Valid ប្រព័ន្ធបង្ហាញថា Certificate អាច verify បាន។ ប្រសិនបើ Status គឺ Invalid ប្រព័ន្ធបង្ហាញថា Certificate មិនអាច verify បាន។ ប្រសិនបើ Status គឺ Revoked ប្រព័ន្ធបង្ហាញថា Certificate ត្រូវបានដកហូត។ រូបភាពនេះជួយឱ្យនិស្សិតយល់ពីការប្រើ if, elif, និង else ក្នុងបរិបទ Project ពិត។

ឧទាហរណ៍

status = input("Enter certificate status Valid/Invalid: ")

if status == "Valid":
    print("This certificate can be verified.")
else:
    print("This certificate cannot be verified.")

ការពន្យល់

  • ប្រសិនបើអ្នកប្រើប្រាស់បញ្ចូល Valid កម្មវិធីបង្ហាញថា Certificate អាច verify បាន។
  • បើបញ្ចូលតម្លៃផ្សេង កម្មវិធីបង្ហាញថា Certificate មិនអាច verify បាន។

កំណែប្រសើរជាងមុន

status = input("Enter certificate status Valid/Invalid: ")

if status.lower() == "valid":
    print("This certificate can be verified.")
elif status.lower() == "invalid":
    print("This certificate cannot be verified.")
else:
    print("Unknown status. Please enter Valid or Invalid.")

ហេតុអ្វីប្រើ .lower()?

.lower() បម្លែងអក្សរទាំងអស់ទៅជា lowercase។ វាជួយឱ្យកម្មវិធីទទួលបានទាំង Valid, valid, VALID ដោយមិនមានបញ្ហា។


៤.៧ Loops: while

Loop ប្រើសម្រាប់ធ្វើការដដែលៗ។ ក្នុង Console Application យើងប្រើ while ដើម្បីបង្កើត Menu ដែលអាចឱ្យអ្នកប្រើប្រាស់ជ្រើសជម្រើសម្តងហើយម្តងទៀត។

រូបភាពនេះបង្ហាញពី Menu សាមញ្ញសម្រាប់ប្រព័ន្ធ Certificate Verification។ Menu មានជម្រើសដូចជា Add Certificate, Check Certificate Status, View Project Description និង Exit។ Console Menu ជួយឱ្យអ្នកប្រើប្រាស់អាចប្រើកម្មវិធីបានងាយស្រួល ហើយវាជាមូលដ្ឋានសម្រាប់ Final Project។ នៅមេរៀនបន្ទាប់ៗ Menu នេះអាចត្រូវបានពង្រីកបន្ថែមទៅជា Add Transaction, Save to CSV, Generate Hash, Create Block និង Validate Blockchain។

ឧទាហរណ៍

while True:
    print("1. Add Certificate")
    print("2. Exit")

    choice = input("Choose option: ")

    if choice == "1":
        print("Add Certificate Selected")
    elif choice == "2":
        print("Goodbye!")
        break
    else:
        print("Invalid choice.")

ការពន្យល់

  • while True ធ្វើឱ្យកម្មវិធីដំណើរការជាបន្តបន្ទាប់។
  • បើអ្នកប្រើជ្រើស 1 កម្មវិធីបង្ហាញថា Add Certificate ត្រូវបានជ្រើស។
  • បើអ្នកប្រើជ្រើស 2 កម្មវិធីបញ្ចប់ដោយប្រើ break។
  • បើជ្រើសខុស កម្មវិធីបង្ហាញសារ Invalid choice.

សារៈសំខាន់ក្នុង Project

នៅពេលយើងបង្កើត Final Project យើងត្រូវការម៉ឺនុយដូចជា៖

1. Add Certificate
2. View Certificates
3. Search Certificate
4. Generate Hash
5. Create Block
6. Validate Blockchain
7. Exit

ដូច្នេះ while loop គឺជាគន្លឹះសំខាន់សម្រាប់ Project ទាំងមូល។


៥. Practical Lab 1: Certificate Information Console Program

គោលបំណង

បង្កើតកម្មវិធី Python Console សាមញ្ញដែលអាចទទួលព័ត៌មានវិញ្ញាបនបត្រនិស្សិត ហើយបង្ហាញព័ត៌មានវិញយ៉ាងច្បាស់។

រូបភាពនេះបង្ហាញពីគំរូព័ត៌មានវិញ្ញាបនបត្រនិស្សិត ដែលរួមមាន Certificate ID, Student Name, Program, Certificate Title, Issue Date និង Status។ ទិន្នន័យទាំងនេះនឹងត្រូវបានប្រើជាមូលដ្ឋានសម្រាប់ការបង្កើត Transaction ក្នុងមេរៀនបន្ទាប់ៗ។ និស្សិតត្រូវយល់ថា មុនពេលយើងអាច Hash ឬបញ្ចូលទិន្នន័យទៅក្នុង Blockchain យើងត្រូវកំណត់ទម្រង់ទិន្នន័យឱ្យបានច្បាស់ជាមុន។

Source Code

print("=== Student Certificate Information ===")

certificate_id = input("Enter Certificate ID: ")
student_name = input("Enter Student Name: ")
program = input("Enter Program: ")
certificate_title = input("Enter Certificate Title: ")
issue_date = input("Enter Issue Date: ")

print("\n=== Certificate Record ===")
print("Certificate ID:", certificate_id)
print("Student Name:", student_name)
print("Program:", program)
print("Certificate Title:", certificate_title)
print("Issue Date:", issue_date)

ការពន្យល់លម្អិត

  1. print("=== Student Certificate Information ===")
    បង្ហាញចំណងជើងកម្មវិធី។
  2. certificate_id = input("Enter Certificate ID: ")
    ទទួលលេខវិញ្ញាបនបត្រពីអ្នកប្រើប្រាស់។
  3. student_name = input("Enter Student Name: ")
    ទទួលឈ្មោះនិស្សិត។
  4. program = input("Enter Program: ")
    ទទួលឈ្មោះកម្មវិធីសិក្សា។
  5. certificate_title = input("Enter Certificate Title: ")
    ទទួលចំណងជើងវិញ្ញាបនបត្រ។
  6. issue_date = input("Enter Issue Date: ")
    ទទួលថ្ងៃចេញវិញ្ញាបនបត្រ។
  7. ក្រុម print() ខាងក្រោមបង្ហាញព័ត៌មានដែលបានបញ្ចូល។

លទ្ធផលរំពឹងទុក

=== Student Certificate Information ===
Enter Certificate ID: CERT-FDE-001
Enter Student Name: Sok Dara
Enter Program: Digital Economy
Enter Certificate Title: Blockchain Technology Completion
Enter Issue Date: 2026-08-25

=== Certificate Record ===
Certificate ID: CERT-FDE-001
Student Name: Sok Dara
Program: Digital Economy
Certificate Title: Blockchain Technology Completion
Issue Date: 2026-08-25

៦. Practical Lab 2: Certificate Status Checking

គោលបំណង

បង្រៀននិស្សិតឱ្យប្រើ Condition ដើម្បីពិនិត្យស្ថានភាព Certificate។

Source Code

status = input("Enter certificate status Valid/Invalid: ")

if status.lower() == "valid":
    print("Certificate can be verified.")
elif status.lower() == "invalid":
    print("Certificate cannot be verified.")
else:
    print("Unknown certificate status.")

ការពន្យល់

កម្មវិធីនេះសួរអ្នកប្រើប្រាស់ឱ្យបញ្ចូលស្ថានភាព Certificate។ ប្រសិនបើស្ថានភាពជា Valid វាបង្ហាញថា Certificate អាច verify បាន។ ប្រសិនបើស្ថានភាពជា Invalid វាបង្ហាញថា Certificate មិនអាច verify បាន។ បើបញ្ចូលតម្លៃផ្សេង វាបង្ហាញថា status មិនស្គាល់។

លទ្ធផលរំពឹងទុក

Enter certificate status Valid/Invalid: Valid
Certificate can be verified.

ឬ

Enter certificate status Valid/Invalid: Invalid
Certificate cannot be verified.

៧. Practical Lab 3: Simple Certificate Menu

គោលបំណង

បង្កើត Menu សាមញ្ញសម្រាប់ Console Application។ Menu នេះនឹងក្លាយជាមូលដ្ឋានសម្រាប់ Final Project។

Source Code

while True:
    print("\n=== Certificate Verification Console System ===")
    print("1. Add Certificate")
    print("2. Check Certificate Status")
    print("3. Exit")

    choice = input("Choose option: ")

    if choice == "1":
        certificate_id = input("Enter Certificate ID: ")
        student_name = input("Enter Student Name: ")
        print("Certificate added:")
        print("Certificate ID:", certificate_id)
        print("Student Name:", student_name)

    elif choice == "2":
        status = input("Enter certificate status Valid/Invalid: ")

        if status.lower() == "valid":
            print("Certificate can be verified.")
        elif status.lower() == "invalid":
            print("Certificate cannot be verified.")
        else:
            print("Unknown certificate status.")

    elif choice == "3":
        print("Thank you. Goodbye!")
        break

    else:
        print("Invalid choice. Please try again.")

ការពន្យល់

កម្មវិធីនេះមាន Menu ចម្បង ៣ ជម្រើស៖

  1. Add Certificate
    សម្រាប់បញ្ចូលព័ត៌មាន Certificate។
  2. Check Certificate Status
    សម្រាប់ពិនិត្យថា Certificate មានស្ថានភាព Valid ឬ Invalid។
  3. Exit
    សម្រាប់បញ្ចប់កម្មវិធី។

នេះជាគំរូដំបូងនៃ Console-Based Certificate Verification System។


៨. Introduction to Blockchain and Digital Trust

៨.១ Blockchain គឺជាអ្វី?

Blockchain គឺជាសង្វាក់នៃកំណត់ត្រាទិន្នន័យ។ ទិន្នន័យត្រូវបានរៀបចំជាប្លុកៗ ហើយប្លុកនីមួយៗភ្ជាប់ទៅប្លុកមុនតាមរយៈ Hash។ ប្រសិនបើទិន្នន័យក្នុងប្លុកមួយត្រូវបានកែប្រែ Hash របស់ប្លុកនោះនឹងផ្លាស់ប្តូរ ហើយវាអាចធ្វើឱ្យ Chain មិនត្រឹមត្រូវ។

NIST បានពន្យល់ថា Blockchain Technology មានសមាសធាតុដូចជា Blocks, Transactions, Addresses, Wallets, Hashes និង Consensus Models។ វាជួយឱ្យប្រព័ន្ធអាចកត់ត្រា និងផ្ទៀងផ្ទាត់ទិន្នន័យក្នុងរបៀបដែលមានភស្តុតាងបច្ចេកទេស [1].

រូបភាពនេះបង្ហាញពីរចនាសម្ព័ន្ធ Blockchain សាមញ្ញ ដែលមាន Block 1, Block 2 និង Block 3។ Block នីមួយៗមាន Data, Previous Hash និង Current Hash។ Previous Hash ជួយភ្ជាប់ Block មួយទៅ Block មុន។ ប្រសិនបើទិន្នន័យក្នុង Block មួយត្រូវបានកែប្រែ Hash នឹងផ្លាស់ប្តូរ ហើយ Chain អាចក្លាយជាមិនត្រឹមត្រូវ។ នេះជាគំនិតសំខាន់សម្រាប់ការយល់ពី Tamper Detection។

៨.២ Blockchain និង Digital Trust

Digital Trust មានន័យថា អ្នកប្រើប្រាស់អាចជឿជាក់លើទិន្នន័យឌីជីថល។ ក្នុងវិស័យអប់រំ Digital Trust មានសារៈសំខាន់ខ្លាំង ព្រោះវិញ្ញាបនបត្រ និងលិខិតបញ្ជាក់ការសិក្សាត្រូវបានប្រើសម្រាប់ការងារ អាហារូបករណ៍ ការសិក្សាបន្ត និងឱកាសវិជ្ជាជីវៈ។

រូបភាពនេះបង្ហាញថា Digital Trust អាចកើតឡើងនៅពេលទិន្នន័យវិញ្ញាបនបត្រអាចត្រូវបានផ្ទៀងផ្ទាត់តាមភស្តុតាងបច្ចេកទេស។ Certificate Data អាចត្រូវបានការពារដោយ Hash, ផ្ទៀងផ្ទាត់តាម Certificate ID និងបង្ហាញ Verification Result។ នេះជាឧទាហរណ៍សាមញ្ញនៃការប្រើ Blockchain Concept ដើម្បីបង្កើនជំនឿទុកចិត្តលើឯកសារអប់រំឌីជីថល។

បញ្ហាដែលអាចកើតមានក្នុងការផ្ទៀងផ្ទាត់វិញ្ញាបនបត្រ៖

បញ្ហាការពន្យល់
វិញ្ញាបនបត្រក្លែងក្លាយអ្នកខ្លះអាចបង្កើតឯកសារដែលមិនពិត
ការផ្ទៀងផ្ទាត់យឺតEmployer ឬស្ថាប័នផ្សេងត្រូវរង់ចាំការឆ្លើយតបពីសាកលវិទ្យាល័យ
ទិន្នន័យអាចកែបានឯកសារ Digital ឬ CSV អាចត្រូវបានកែដោយមិនមានភស្តុតាង
កង្វះប្រព័ន្ធតាមដានមិនដឹងថាអ្នកណាបានពិនិត្យ ឬកែប្រែទិន្នន័យ
កង្វះភស្តុតាងបច្ចេកទេសមិនមាន Hash ឬ Chain Validation ដើម្បីបញ្ជាក់ភាពត្រឹមត្រូវ

Blockchain អាចជួយដោះស្រាយបញ្ហាទាំងនេះដោយប្រើ Hash, Previous Hash, Chain Structure និង Validation Logic។


៨.៣ Blockchain សម្រាប់វិស័យអប់រំនៅកម្ពុជា

ក្នុងបរិបទកម្ពុជា ប្រព័ន្ធផ្ទៀងផ្ទាត់វិញ្ញាបនបត្រអាចជួយដល់៖

  1. សាកលវិទ្យាល័យ
    ដើម្បីកាត់បន្ថយការងារផ្ទៀងផ្ទាត់ដោយដៃ។
  2. និស្សិត
    ដើម្បីមាន Certificate ID ឬ Verification Evidence សម្រាប់បង្ហាញទៅ Employer។
  3. Employer
    ដើម្បីពិនិត្យថា Certificate ពិតប្រាកដ ឬអត់។
  4. ស្ថាប័នអប់រំ
    ដើម្បីបង្កើន Digital Trust និងការគ្រប់គ្រងឯកសារសិក្សា។
  5. អ្នកបង្រៀន និងនិស្សិត IT
    ដើម្បីអភិវឌ្ឍ Prototype ដែលមានតម្លៃអប់រំ និងអាចបន្តទៅប្រព័ន្ធធំជាងមុន។

ក្នុង Course នេះ យើងនឹងមិនទាន់បង្កើតប្រព័ន្ធ Web ឬ Blockchain Network ពេញលេញទេ។ យើងនឹងចាប់ផ្ដើមពី Python Console និង CSV ដើម្បីឱ្យនិស្សិតយល់ Concept ជាមុន។

រូបភាពនេះបង្ហាញលំហូរមូលដ្ឋាននៃការផ្ទៀងផ្ទាត់វិញ្ញាបនបត្រក្នុងវិស័យអប់រំ។ សាកលវិទ្យាល័យដើរតួនាទីជា Issuer ដែលចេញវិញ្ញាបនបត្រ។ និស្សិតជាអ្នកកាន់វិញ្ញាបនបត្រ ហើយ Employer ឬ Verifier ជាអ្នកផ្ទៀងផ្ទាត់។ ការផ្ទៀងផ្ទាត់អាចធ្វើឡើងតាម Certificate ID។ រូបភាពនេះជួយភ្ជាប់មេរៀន Python និង Blockchain ទៅនឹងបញ្ហាពិតក្នុងវិស័យអប់រំនៅកម្ពុជា។


៩. គំនិតសំខាន់ៗដែលត្រូវចងចាំ

Conceptការពន្យល់ខ្លី
Transactionកំណត់ត្រាទិន្នន័យមួយ ដូចជា Certificate Record
Blockក្រុមនៃ Transactions
Hashស្នាមម្រាមដៃឌីជីថលរបស់ទិន្នន័យ
Previous HashHash របស់ Block មុន
Chainការភ្ជាប់ Blocks ជាសង្វាក់
Validationការពិនិត្យថា Blockchain ត្រឹមត្រូវឬអត់
Tamper Detectionការរកឃើញថាទិន្នន័យត្រូវបានកែប្រែ
Console Applicationកម្មវិធីដែលប្រើ Terminal ឬ Command Prompt
CSV Storageការរក្សាទុកទិន្នន័យក្នុង File CSV

១០. Class Discussion

គ្រូអាចប្រើសំណួរខាងក្រោមសម្រាប់ពិភាក្សាជាមួយនិស្សិត៖

  1. តើ Employer ឬស្ថាប័នមួយអាចដឹងថាវិញ្ញាបនបត្រមួយពិតប្រាកដបានយ៉ាងដូចម្តេច?
  2. តើបញ្ហាអ្វីខ្លះអាចកើតឡើង ប្រសិនបើមានវិញ្ញាបនបត្រក្លែងក្លាយ?
  3. តើអ្នកគិតថា Certificate ID មានសារៈសំខាន់យ៉ាងដូចម្តេច?
  4. តើ Blockchain អាចជួយបង្កើត Digital Trust បានដូចម្តេច?
  5. ហេតុអ្វីយើងគួរចាប់ផ្ដើមពី Python Console មុនទៅកាន់ Web Application?

១១. Reflection Exercise

សរសេរចម្លើយខ្លី ៥ ទៅ ៧ បន្ទាត់ សម្រាប់សំណួរខាងក្រោម៖

តើ Blockchain អាចជួយកាត់បន្ថយបញ្ហាវិញ្ញាបនបត្រក្លែងក្លាយនៅក្នុងវិស័យអប់រំនៅកម្ពុជាបានយ៉ាងដូចម្តេច?

ចម្លើយគួររួមបញ្ចូលគំនិតដូចជា៖

  • Digital trust
  • Certificate ID
  • Hash
  • Data integrity
  • Tamper detection
  • Employer verification

១២. លំហាត់អនុវត្ត

លំហាត់ទី១៖ បង្កើតកម្មវិធីបញ្ចូលព័ត៌មាននិស្សិត

សរសេរកម្មវិធី Python ដែលសួរអ្នកប្រើប្រាស់ឱ្យបញ្ចូល៖

  1. Student ID
  2. Student Name
  3. Faculty
  4. Program
  5. Year

បន្ទាប់មកបង្ហាញព័ត៌មានទាំងអស់វិញ។


លំហាត់ទី២៖ បង្កើតកម្មវិធីបញ្ចូលព័ត៌មានវិញ្ញាបនបត្រ

សរសេរកម្មវិធី Python ដែលសួរអ្នកប្រើប្រាស់ឱ្យបញ្ចូល៖

  1. Certificate ID
  2. Student Name
  3. Program
  4. Certificate Title
  5. Issue Date
  6. Status

បន្ទាប់មកបង្ហាញព័ត៌មានទាំងអស់វិញ។


លំហាត់ទី៣៖ ពិនិត្យស្ថានភាពវិញ្ញាបនបត្រ

សរសេរកម្មវិធី Python ដែលពិនិត្យ status ដូចខាងក្រោម៖

  • បើ Valid បង្ហាញ Certificate can be verified.
  • បើ Invalid បង្ហាញ Certificate cannot be verified.
  • បើ Revoked បង្ហាញ Certificate has been revoked.
  • បើបញ្ចូលតម្លៃផ្សេង បង្ហាញ Unknown status.

លំហាត់ទី៤៖ បង្កើត Simple Menu

បង្កើត Menu ដែលមានជម្រើស៖

1. Add Certificate
2. Check Certificate Status
3. View Project Description
4. Exit

កម្មវិធីត្រូវដំណើរការជាបន្តបន្ទាប់ រហូតដល់អ្នកប្រើប្រាស់ជ្រើស Exit.


លំហាត់ទី៥៖ សំណួរពិចារណា

សរសេរចម្លើយខ្លីៗ៖

  1. ហេតុអ្វី Python Console សមស្របសម្រាប់ការចាប់ផ្ដើមរៀន Blockchain?
  2. តើ Certificate Verification មានបញ្ហាអ្វីខ្លះ ប្រសិនបើគ្មានប្រព័ន្ធឌីជីថល?
  3. តើ Blockchain ខុសពីការរក្សាទុកទិន្នន័យធម្មតាយ៉ាងដូចម្តេច?
  4. តើ Hash អាចជួយរកឃើញការកែប្រែទិន្នន័យបានយ៉ាងដូចម្តេច?
  5. តើ Final Project នេះអាចមានប្រយោជន៍ដល់វិស័យអប់រំនៅកម្ពុជា ដូចម្តេច?

១៣. កិច្ចការផ្ទះ

បង្កើត Python Console Program មួយដែលមានមុខងារដូចខាងក្រោម៖

  1. បង្ហាញចំណងជើងកម្មវិធី
    Console-Based Certificate Verification System
  2. សួរអ្នកប្រើប្រាស់ឱ្យបញ្ចូល៖
    • Certificate ID
    • Student Name
    • Program
    • Certificate Title
    • Issue Date
    • Status
  3. បង្ហាញ Certificate Record វិញ។
  4. ពិនិត្យ Status៖
    • Valid → Certificate can be verified.
    • Invalid → Certificate cannot be verified.
    • Revoked → Certificate has been revoked.
    • Other → Unknown certificate status.
  5. បញ្ចូល Comment ក្នុង Code ដើម្បីពន្យល់ការងាររបស់បន្ទាត់សំខាន់ៗ។

១៤. លទ្ធផលដែលនិស្សិតគួរទទួលបាន

បន្ទាប់ពីបញ្ចប់មេរៀននេះ និស្សិតគួរមាន៖

  1. ការយល់ដឹងពី Python Console Application។
  2. ការយល់ដឹងពីការប្រើ print(), input(), variables, conditions និង loops។
  3. កម្មវិធី Console មួយសម្រាប់បញ្ចូលព័ត៌មាន Certificate។
  4. ការយល់ដឹងដំបូងអំពី Blockchain និង Digital Trust។
  5. ការយល់ថា Certificate Verification អាចក្លាយជាប្រធានបទ Project Blockchain បាន។
  6. មូលដ្ឋានគ្រប់គ្រាន់សម្រាប់បន្តទៅមេរៀនទី២៖ Python Data Structures and Blockchain Transactions។

១៥. Notes

មេរៀនទី ១ នេះមិនទាន់មាន Blockchain ពេញលេញទេ។ វាជាមេរៀន Foundation។ គោលបំណងគឺធ្វើឱ្យនិស្សិត៖

  • ចាប់ផ្ដើមសរសេរកូដ Python បាន។
  • យល់ថា Console Application អាចប្រើសម្រាប់ Prototype។
  • យល់ពីបញ្ហា Certificate Verification។
  • យល់ថា Blockchain គឺជាវិធីសាស្ត្រមួយសម្រាប់ Digital Trust។
  • ត្រៀមខ្លួនសម្រាប់មេរៀនបន្ទាប់ ដែលនឹងបន្តទៅ Functions, Lists, Dictionaries និង Transactions។

រូបភាពនេះបង្ហាញពីផ្លូវសិក្សាពី Python Basics ទៅកាន់ Blockchain Project។ និស្សិតចាប់ផ្ដើមពី Python Basics បន្ទាប់មករៀន Console Application, Certificate Record, Hashing, Block, Blockchain និងចុងក្រោយ Validation & Tamper Detection។ ផ្លូវសិក្សានេះជួយឱ្យនិស្សិតយល់ថា Blockchain Project មិនមែនកើតឡើងភ្លាមៗទេ ប៉ុន្តែបង្កើតឡើងជាជំហានៗតាមចំណេះដឹង Programming មូលដ្ឋាន។

គ្រូអាចប្រើឧទាហរណ៍ជិតស្និទ្ធនឹងនិស្សិត ដូចជា៖

  • វិញ្ញាបនបត្របញ្ចប់វគ្គសិក្សា។
  • វិញ្ញាបនបត្របណ្ដុះបណ្ដាលខ្លី។
  • លិខិតបញ្ជាក់ការសិក្សា។
  • Academic Transcript។
  • Certificate សម្រាប់ Internship ឬ Scholarship។

តារាងសង្ខេបរូបភាពក្នុងមេរៀន

FigureSection to InsertPurpose
Figure 1៤.១ Python Console Application គឺជាអ្វី?បង្ហាញ Console Program ជាក់ស្តែង
Figure 2៤.៣ / ៤.៥ print() និង input()បង្ហាញដំណើរការ Input → Program → Output
Figure 3៥. Practical Lab 1បង្ហាញទម្រង់ Certificate Record
Figure 4៨.៣ Blockchain សម្រាប់វិស័យអប់រំបង្ហាញតួនាទី Issuer, Holder, Verifier
Figure 5៨.១ Blockchain គឺជាអ្វី?បង្ហាញ Blocks និង Previous Hash
Figure 6៨.២ Blockchain និង Digital Trustបង្ហាញ Digital Trust និង Verification Evidence
Figure 7៤.៦ Conditions: if / elseបង្ហាញ Decision Flow
Figure 8៤.៧ Loops ឬ Practical Lab 3បង្ហាញ Console Menu
Figure 9ចុងមេរៀន មុនលំហាត់បង្ហាញ Learning Path របស់ Course

១៦. IEEE-Style References

[1] D. Yaga, P. Mell, N. Roby, and K. Scarfone, “Blockchain Technology Overview,” National Institute of Standards and Technology, NISTIR 8202, 2018, doi: 10.6028/NIST.IR.8202.

[2] Python Software Foundation, “7. Input and Output — Python 3 Documentation,” Python Documentation, 2026.

[3] Python Software Foundation, “csv — CSV File Reading and Writing,” Python Documentation, 2026.

[4] National Institute of Standards and Technology, “Secure Hash Standard (SHS),” FIPS PUB 180-4, 2015.

[5] S. Nakamoto, “Bitcoin: A Peer-to-Peer Electronic Cash System,” 2008.

ចែករំលែក
រក្សាទុក
ការផ្សព្វផ្សាយ
ការផ្សព្វផ្សាយ
មតិយោបល់ 0
ចូលគណនី ដើម្បីបញ្ចេញមតិ