SlideShare a Scribd company logo
1
2021 © PGS.TS Lê Đắc Nhường
Chương 2
CơchếhoạtđộngvàtínhbảomậtcủaBlockchain
Blockchain Security
PGS.TS. Lê Đắc Nhường
▪ Khoa Công nghệ thông tin – Đại học Hải Phòng
▪ Nhuongld@dhhp.edu.vn
▪ 0987.394.900.
2
2021 © PGS.TS Lê Đắc Nhường
NỘI DUNG CHƯƠNG 2
Lịch sử hình thành của Blockchain
Cơ sở toán học của Blockchain
▪ Hàm băm
▪ Chữ ký số
▪ Lý thuyết trò chơi và cân bằng Nash
Vấn đề riêng tư, cơ chế xác thực bảo mật
Thuật toán trong giao thức đồng thuận
Cấu trúc của Blockchain
Hệ thống phân tán, phi tập trung (Decentralization )
ETH & Hợp đồng thông minh (Smart Contracts)
3
2021 © PGS.TS Lê Đắc Nhường
Cơ sở toán học của
Blockchain
3
4
2021 © PGS.TS Lê Đắc Nhường
3. Cơ sở toán học của Blockchain
Mathematic Foundation
Hàm
băm
mã
hóa
Lược
đồ
chữ
ký số
Cây
Merkle
Lý
thuyết
trò
chơi
5
2021 © PGS.TS Lê Đắc Nhường
HÀM BĂM MÃ HÓA
Cryptographic Hash Functions
3.1
6
2021 © PGS.TS Lê Đắc Nhường
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
● Hàm băm mã hóa
○ Mục tiêu: Làm thế nào để chúng ta đảm bảo sự tin cậy trong giao tiếp
trong một môi trường không tin cậy?
7
2021 © PGS.TS Lê Đắc Nhường
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
● Hàm băm mã hóa
f
x f(x)
input output
function
8
2021 © PGS.TS Lê Đắc Nhường
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
● Hàm băm mã hóa
H
x H(x)
preimage image
hash
function
9
2021 © PGS.TS Lê Đắc Nhường
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
● Hàm băm mã hóa
any size 256 bits
H
10
2021 © PGS.TS Lê Đắc Nhường
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
● Hàm băm mã hóa
○ Về bản chất: Hàm băm của một thông điệp là đại diện của thông điệp đó.
○ Mục tiêu: Các hàm băm (H) tạo ra bản nhận dạng (fingerprint) cho một tập
tin, thông điệp hay một khối dữ liệu truyền đi nhằm kiểm tra tính toàn vẹn.
11
2021 © PGS.TS Lê Đắc Nhường
● Các đặc điểm
○ H có thể được áp dụng trên khối dữ liệu có độ dài bất kỳ
○ H tạo đầu ra có độ dài cố định
○ H(x) tính toán mọi x tương đối dễ dàng, tạo điều kiện cho việc cài đặt trên
phần cứng lẫn phần mềm được thiết thực.
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
12
2021 © PGS.TS Lê Đắc Nhường
● Phân loại
Collision Resistant
Hash Functions
(CRHF)
One-Way
Hash Functions
(OWHF)
Manipulation Detection
Codes
(MDC)
Message
Authentication Codes
(MAC)
Cryptographic
Hash Functions
Sử
dụng
khóa
Không
sử dụng
khóa
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
13
2021 © PGS.TS Lê Đắc Nhường
● Tính bền của ảnh băm (Preimage Resistance)
Với bất kỳ giá trị băm h, không thể tính được x sao cho H(x)=h.
Hay H được gọi là hàm một chiều (One-Way Hash Functions)
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
14
2021 © PGS.TS Lê Đắc Nhường
● Tấn công hàm băm (Second Preimage Resistance)
Tính bền xung đột yếu (weak collision resistance):
với bất kỳ giá trị x, không thể tính được y ≠ x sao cho H(y) = H(x).
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
15
2021 © PGS.TS Lê Đắc Nhường
● Tính bền xung đột (Collision Resistance)
Tính bền xung đột mạnh (Strong Collision Resistance):
Không thể tính được một cặp (x, y) sao cho H(x) = H(y).
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
16
2021 © PGS.TS Lê Đắc Nhường
● Hàm băm - MD5 (Manipulating detection codes)
Phát triển bởi Ron Rivest tại đại học MIT
Input: Thông điệp với độ dài bất kỳ
Output: Giá trị băm (message digest) 128 bits
Giải thuật gồm 5 bước thao tác trên khối 512 bits
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
17
2021 © PGS.TS Lê Đắc Nhường
● Hàm băm - MD5 (Manipulating Detection Codes)
 Giải thuật MD5 được tóm tắt như sau:
 CV0 = IV
 CVq+1 = SUM32[CVq,RFI(Yq,RFH(Yq,RFG(Yq,RFF(Yq,CVq))))]
 MD = CVL-1
 Với các tham số
 IV: bộ đệm gồm 4 thanh ghi ABCD
 Yq: khối dữ liệu thứ q gồm 512 bits
 L: số khối 512-bit sau khi nhồi dữ liệu
 CVq: đầu ra của khối thứ q sau khi áp dụng hàm nén
 RFx: hàm luận lý sử dụng trong các “vòng” (F,G,H,I)
 MD: message digest – giá trị băm
 SUM32: cộng modulo 232
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
18
2021 © PGS.TS Lê Đắc Nhường
● Hàm băm - SHA-1 (Secure Hash Algorithm-1993)
 SHA phát triển bởi National Institute of Standard and Technology (NIST)
 Đầu vào: Thông điệp với độ dài tối đa 264 bits
 Đầu ra: Giá băm (message digest) có độ dài 160 bits
 Giải thuật gồm 5 bước thao tác trên các khối 512 bits
CV0 = IV
CVq+1 = SUM32(CVq, ABCDEq)
MD = CVL
Với IV = giá trị khởi tạo của bộ đệm ABCDE; ABCDEq = đầu ra của hàm nén trên khối thứ q
L = số khối 512-bit của thông điệp; SUM32 = phép cộng modulo 232 trên từng từ (32 bits) của đầu vào
MD = giá trị băm
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
19
2021 © PGS.TS Lê Đắc Nhường
● Hàm băm - SHA-1 (Secure Hash Algorithm-1993)
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
23/02/2017: Các nhà nghiên cứu đến từ Google và viện CWI tại Amsterdam đã thực hiện thành
công kiểu tấn công đụng độ (Collision Attack) đối với thuật toán SHA-1, cụ thể là với 2 input khác
nhau tạo ra cùng một giá trị băm.
20
2021 © PGS.TS Lê Đắc Nhường
● Hàm băm - SHA-1 (Secure Hash Algorithm-1993)
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
21
2021 © PGS.TS Lê Đắc Nhường
● Hàm băm - SHA-256
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
22
2021 © PGS.TS Lê Đắc Nhường
● Hàm băm - SHA-1 (Secure Hash Algorithm-1993)
Thuật
toán
Kết quả
(bit)
Trạng
thái
(bit)
Khối
(bit)
Thông điệp
tối đa (bit)
Word
(bit)
#
chu
kỳ
Thao tác Đụng độ
SHA-0 160 160 512 2
64
− 1 32 80
+,and,or,
xor,rotl
Có
SHA-1 160 160 512 2
64
− 1 32 80
+,and,or,
xor,rotl
2
63
thao tác
SHA-
256/224
256/
224
256 512 2
64
− 1 32 64
+,and,
or,xor,
shr,rotr
Chưa
SHA-
512/384
512/
384
512 1024 2
128
− 1 64 80
+,and,
or,xor,
shr,rotr
Chưa
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
23
2021 © PGS.TS Lê Đắc Nhường
● So sánh giữa MD5 và SHA-1
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
24
2021 © PGS.TS Lê Đắc Nhường
● Hashed Message Authentication Code
 Đặt vấn đề
 Các giải thuật băm (MD5, SHA-1) thực hiện nhanh hơn so với các giải thuật mã hóa khối
(DES, AES)
 Các thư viện hàm băm được cung cấp rộng rãi → Không gặp trở ngại pháp lý ở các nước.
 Mục tiêu
 Sử dụng các giải thuật băm thực hiện tốt trên các phần mềm và mã nguồn được cung cấp
miễn phí và rộng rãi
 Có khả năng thay thế các giải thuật khác tốt hơn được phát minh trong tương lai.
 Quản lý khóa dễ dàng
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
25
2021 © PGS.TS Lê Đắc Nhường
● Hashed Message Authentication Code
HMACk(M) = H[(K+ xor opad) || H[(K+ xor ipad) || M]]
Với
 H = hàm băm bất kỳ.
 M = thông điệp đầu vào
 K = khóa bí mật.
 K+ = khóa được thêm các bit 0 vào bên trái để được khối 512-bit
 ipad = 00110110.
 opad = 01011100
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
26
2021 © PGS.TS Lê Đắc Nhường
● Hashed Message Authentication Code (MAC)
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
27
2021 © PGS.TS Lê Đắc Nhường
● Hashed Message Authentication Code (MAC)
 Merkle-Damgård
 Tác giả: Ralph Merkle, Ivan Damgård
 Hầu hết các hàm băm đều sử dụng cấu trúc này
 Ví dụ: SHA-1, MD5
Khối
1
f
Length
padding
f
Finali-
sation
IV Hash
Khối
2
f
Khối
n
f
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
28
2021 © PGS.TS Lê Đắc Nhường
● Hashed Message Authentication Code (MAC)
 Matyas-Meyer-Oseas
 Kiến trúc “đối ngẫu” với kiến trúc Davies-Mayer
 Ở khối đầu tiên, cần sử dụng giá trị khởi đầu H0
 Nếu hàm E sử dụng khóa và khối kích thước khác
nhau, hàm g cần biến đổi Hi -1 thành khóa phù hợp
cho hàm E
Hi = Eg (H ) (mi)  mi
i -1
E
g

Hi – 1
Hi
mi
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
29
2021 © PGS.TS Lê Đắc Nhường
● Hashed Message Authentication Code (MAC)
 Davies-Meyer
 Kiến trúc “đối ngẫu” với kiến trúc Matyas-Meyer-Oseas
 Ở khối đầu tiên, cần sử dụng giá trị khởi đầu H0
 Nếu hàm E không an toàn thì có thể áp dụng phương
pháp fixed point attack đế tấn công hàm băm tương ứng
Hi = E (Hi –1)  Hi –1
mi
E

Hi – 1
Hi
mi
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
30
2021 © PGS.TS Lê Đắc Nhường
● Hashed Message Authentication Code (MAC)
 Miyaguchi-Preneel
 Mở rộng của kiến trúc Matyas-Meyer-Oseas
 Ở khối đầu tiên, cần sử dụng giá trị khởi đầu H0
 Nếu hàm E sử dụng khóa và khối kích thước
khác nhau, hàm g cần biến đổi Hi -1 thành khóa
phù hợp cho hàm E
Hi = Eg (H ) (mi)Hi-1mi
i -1
E
g

Hi – 1
Hi
mi
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
31
2021 © PGS.TS Lê Đắc Nhường
Bitcoin uses SHA-256^2 (“SHA-256 squared”),
meaning that H(x) actually means SHA256(SHA256(x))
● Hashed in Blockchain Bitcoin
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
#Python
import hashlib
def encrypt_string(hash_string):
sha_signature = 
hashlib.sha256(hash_string.encode()).hexdigest()
return sha_signature
32
2021 © PGS.TS Lê Đắc Nhường
● Hashed in Blockchain ETH
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
- Ban đầu Ethereum sử dụng hàm băm SHA-3
- Hiện nay Ethereum sử dụng hàm băm KECCAK-256
Ethereum SHA3 function in Solidity = 5f16f4c7f149ac4f9510d9cf8cf384038ad348b3bcdc01915f95de12df9d1b02
Keccak-256 = 5f16f4c7f149ac4f9510d9cf8cf384038ad348b3bcdc01915f95de12df9d1b02
SHA3-256 (NIST Standard) = 7f5979fb78f082e8b1c676635db8795c4ac6faba03525fb708cb5fd68fd40c5e
33
2021 © PGS.TS Lê Đắc Nhường
● Hàm băm SHA-3
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
# Generating SHA hashing using Python 3
# Import sha256 module from hashlib from
hashlib import sha256
# Getting input string from the user
your_data = input('Enter a string: ‘)
# Generating SHA256 hash
hash_result = sha256(str(your_data).encode()) result = hash_result.hexdigest()
# Printing the result
print('Result: ',str(result))
34
2021 © PGS.TS Lê Đắc Nhường
● Hashed in Blockchain ETH
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
•git clone https://github.com/RnDevelover/Keccak256PHP.git
•cd Keccak256PHP
•phpize
•./configure --enable-keccak256
•make
•copy modules/keccak256.so to your php extension directory.
•enable extension by adding extension=keccak256.so to your php.ini
$a="cc"; // Hex encoded string. All characters are [0-9a-fA-F].
$hash=keccak256($a);
echo $hash; // Hex encoded hash.
PHP:
35
2021 © PGS.TS Lê Đắc Nhường
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
Tại sao Ethereum Classic nên áp dụng Keccak256 cho Thuật toán Proof of Work
36
2021 © PGS.TS Lê Đắc Nhường
3.1 Hàm băm mã hóa
Cryptographic Hash Functions
Tại sao Ethereum Classic nên áp dụng Keccak256 cho Thuật toán Proof of Work
37
2021 © PGS.TS Lê Đắc Nhường
LƯỢC ĐỒ CHỮ KÝ SỐ
Digital Signature Scheme
3.2
38
2021 © PGS.TS Lê Đắc Nhường
3.2 Lược đồ chữ ký số
Digital Signature Scheme
● DIGITAL SIGNATURE SCHEMES (DSS)
ALICE BOB
private key:
public key:
message:
Alice uses ECDSA to generate
private and public keys
39
2021 © PGS.TS Lê Đắc Nhường
3.2 Lược đồ chữ ký số
Digital Signature Scheme
● DIGITAL SIGNATURE SCHEMES (DSS)
ALICE BOB
private key:
public key:
message:
Alice's public
key:
Bob needs Alice's public key
40
2021 © PGS.TS Lê Đắc Nhường
3.2 Lược đồ chữ ký số
Digital Signature Scheme
● DIGITAL SIGNATURE SCHEMES (DSS)
ALICE BOB
private key:
public key:
message:
Alice's public
key:
Alice signs her message
signature:
41
2021 © PGS.TS Lê Đắc Nhường
3.2 Lược đồ chữ ký số
Digital Signature Scheme
● DIGITAL SIGNATURE SCHEMES (DSS)
ALICE BOB
private key:
public key:
message:
Alice's public
key:
Alice sends message + signature
signature:
Alice's message:
Alice's signature:
42
2021 © PGS.TS Lê Đắc Nhường
3.2 Lược đồ chữ ký số
Digital Signature Scheme
● DIGITAL SIGNATURE SCHEMES (DSS)
ALICE BOB
private key:
public key:
message:
Bob can easily verify if Alice signed
signature:
or
43
2021 © PGS.TS Lê Đắc Nhường
3.2 Lược đồ chữ ký số
Digital Signature Scheme
● DIGITAL SIGNATURE SCHEMES (DSS)
ALICE BOB
private key:
public key:
message:
Bob cannot easily guess
Alice’s private key
signature:
or
44
2021 © PGS.TS Lê Đắc Nhường
3.2 Lược đồ chữ ký số
Digital Signature Scheme
● DIGITAL SIGNATURE SCHEMES (DSS)
ALICE BOB
private key:
public key:
message:
signature:
EVE
private key + message = signature
public key + signature = message
45
2021 © PGS.TS Lê Đắc Nhường
3.2 Lược đồ chữ ký số
Digital Signature Scheme
● DIGITAL SIGNATURE SCHEMES (DSS)
ALICE BOB
private key:
public key:
message:
signature:
private key + message = signature
EVE
public key + signature = BAD
private key:
public key:
46
2021 © PGS.TS Lê Đắc Nhường
3.2 Lược đồ chữ ký số
Digital Signature Scheme
● Chữ ký được chia làm 2 lớp
○ Chữ ký kèm thông điệp (Message Appendix): đòi hỏi thông điệp đầu vào
là một tham số cho quá trình xác nhận chữ ký.
○ Chữ ký khôi phục thông điệp (Message Recovery): không đòi hỏi trong
quá trình xác nhận chữ ký.
Signatures schemas
Message Recoverty
Randomized
Deterministic
Appendix
Randomized
Deterministic
Elgamal
DSA
Schonor.
RSA
Rabin
Nyber-Rueppel
47
2021 © PGS.TS Lê Đắc Nhường
● Kiểm tra toàn vẹn thông điệp (Message Integrity)
3.2 Lược đồ chữ ký số
Digital Signature Scheme
48
2021 © PGS.TS Lê Đắc Nhường
● Trungtâmkiểmtra,xácthựckhôngchốibỏđược(Nonrepudiation)
3.2 Lược đồ chữ ký số
Digital Signature Scheme
49
2021 © PGS.TS Lê Đắc Nhường
● Tăng thêm tính an toàn cho lược đồ kỹ số
3.2 Lược đồ chữ ký số
Digital Signature Scheme
50
2021 © PGS.TS Lê Đắc Nhường
● Sơ đồ chữ ký số RSA
Chữ ký RSA trực tiếp
3.2 Lược đồ chữ ký số
Digital Signature Scheme
51
2021 © PGS.TS Lê Đắc Nhường
● Sơ đồ chữ ký số RSA
Chữ ký RSA kết hợp với hàm băm
3.2 Lược đồ chữ ký số
Digital Signature Scheme
52
2021 © PGS.TS Lê Đắc Nhường
● Sơ đồ chữ ký số Elgamal
3.2 Lược đồ chữ ký số
Digital Signature Scheme
53
2021 © PGS.TS Lê Đắc Nhường
● Sơ đồ chữ ký số Schnorr
3.2 Lược đồ chữ ký số
Digital Signature Scheme
54
2021 © PGS.TS Lê Đắc Nhường
● Sơ đồ chữ ký số Schnorr
3.2 Lược đồ chữ ký số
Digital Signature Scheme
55
2021 © PGS.TS Lê Đắc Nhường
● Sơ đồ chữ ký mù
3.2 Lược đồ chữ ký số
Digital Signature Scheme
56
2021 © PGS.TS Lê Đắc Nhường
● Sơ đồ chữ ký mù Chaum’s Blind RSA
3.2 Lược đồ chữ ký số
Digital Signature Scheme
57
2021 © PGS.TS Lê Đắc Nhường
● Sơ đồ chữ ký mù ECC
3.2 Lược đồ chữ ký số
Digital Signature Scheme
58
2021 © PGS.TS Lê Đắc Nhường
● GENERATING PUBLIC/PRIVATE KEYS
3.2 Lược đồ chữ ký số
Digital Signature Scheme
ALICE
private key:
public key:
message:
signature:
59
2021 © PGS.TS Lê Đắc Nhường
● ECDSA PUBLIC/PRIVATE KEYS
3.2 Lược đồ chữ ký số
Digital Signature Scheme
Private Key Public Key
Bitcoin
Address
ECDSA
ECDSA Hash Functions
Public Key
Hash
RIPEMD160
SHA-256
Base58Check
60
2021 © PGS.TS Lê Đắc Nhường
● ELLIPTIC CURVE CRYPTOGRAPHY
3.2 Lược đồ chữ ký số
Digital Signature Scheme
● Bitcoin uses ECDSA (Elliptic Curve Digital Signature
Algorithm) to produce private and public keys
● The Elliptic Curve is defined by some mathematical
function
○ Bitcoin’s Elliptic Curve:
secp256k1 : Y2 = ( X3 + 7 ) over ( Fp )
● For cryptographic purposes, we use elliptic curves
over a finite field (for key size)
61
2021 © PGS.TS Lê Đắc Nhường
R
Q
P
P × Q
ELLIPTIC CURVE CRYPTOGRAPHY
CHORD-TANGENT PROCESS
● We can do “point addition” using lines and points on
our elliptic curve
○ This will allow us to define a trapdoor function,
meaning that it’s difficult to invert the function
○ “Point multiplication” is repeatedly performing this
addition
■ Our private key will be the number of times we
perform the addition
62
2021 © PGS.TS Lê Đắc Nhường
ELLIPTIC CURVE CRYPTOGRAPHY
● Define point addition as the following (known as the
chord-tangent process):
○ Draw a line between two points P and Q. If they’re
the same point, draw a line tangent to the curve at
that point.
○ The point the line intersects on the curve other
than P and Q is -(P+Q)
○ Flip over the x-axis to get P+Q
● nP = P dot P dot P dot P dot P dot P …
○ This is elliptic curve scalar multiplication
P
-2P
2P
P
-3P
3P
“POINT MULTIPLICATION”
63
2021 © PGS.TS Lê Đắc Nhường
● ECDSA generates private and public keys in Bitcoin:
private key = n
public key = nP = P + P + P + P + … + P
address = RIPEMD160(SHA256(nP))
● How can we get n from nP? Divide nP by n. This operation can be considered taking the log of
nP:
n = logP( nP ) ?
● Discrete Logarithm Problem is computationally infeasible (over certain fields and curves), thus
ECC is a “trapdoor function”
○ no sub-exponential time algorithm
ELLIPTIC CURVE CRYPTOGRAPHY
SECURITY OF ECC - TRAPDOOR FUNCTION
64
2021 © PGS.TS Lê Đắc Nhường
ELLIPTIC CURVE CRYPTOGRAPHY
TIME COMPLEXITY
Input: public key
Output: corresponding private key
256 bit private key, takes O(sqrt(n)) operations to crack
15 * pow(2,40) hashes per second on the ENTIRE Bitcoin network
pow(2,128) / (15 * pow(2,40)) / 3600 / 24 / 365.25
= 0.6537992112229596e18
650 million billion years
65
2021 © PGS.TS Lê Đắc Nhường
ELLIPTIC CURVE CRYPTOGRAPHY
TIME COMPLEXITY
N ← P
Q ← 0
for i from 0 to m do
if di = 1 then
Q ← point_add(Q, N)
N ← point_double(N)
return Q
O(log_2(N))!
66
2021 © PGS.TS Lê Đắc Nhường
PUBLIC KEY
PUBLIC KEY HASH
BITCOIN ADDRESS
PUBLIC KEY TO BITCOIN ADDRESS
SHA256
RIPEMD160
Base58Check Encode
}“Double Hash”
or HASH160
PUBLIC KEY TO PUBKEYHASH
PUBKEYHASH = RIPEMD160(SHA256(K))
● SHA-256 (Secure Hashing Algorithm)
○ Used extensively in bitcoin scripts and
mining
● RIPEMD (RACE Integrity Primitives
Evaluation Message Digest)
○ Produces 160-bit (20-byte) number
The name of the game is TAMPER EVIDENT
{
67
2021 © PGS.TS Lê Đắc Nhường
PUBLIC KEY
PUBLIC KEY HASH
BITCOIN ADDRESS
PUBLIC KEY TO BITCOIN ADDRESS
SHA256
RIPEMD160
Base58Check Encode
}
PUBLIC KEY HASH TO ADDRESS
○ Bitcoin Addresses are Base58Check Encoded
■ Base-58 alphabet:
1234567890ABCDEFGHIJKLMNOPQRSTUV
WXYZabcdefghijklmnopqrstuvwxyz
■ 58 characters (omits 0, O, I, l)
○ prefix: “version byte” based on type of data
■ makes it easy for people to read address
■ depends on which network (main or test) you
are on
○ checksum: 4-byte error-checking code
appended to the end of an address
■ checksum = SHA256(SHA256(prefix +
data), first 4 bytes
{
68
2021 © PGS.TS Lê Đắc Nhường
3.2 Lược đồ chữ ký số
Digital Signature Scheme
● Ứng dụng cơ sở hạ tầng khóa công khai phi tập trung
69
2021 © PGS.TS Lê Đắc Nhường
CÂY MERKLE
Merkle Tree
3.3
70
2021 © PGS.TS Lê Đắc Nhường
3.3 Cây Merkle
Merkle Tree
● Lịch sử ra đời cây Merkle
 Ralph Merkle học tại trường đại học Stanford, Merkle đã viết một bài báo học thuật
có tên là “Chữ ký số được chứng nhận” “A Certified Digital Signature” năm 1997.
Thiết kế một quy trình xác minh dữ liệu cho phép máy tính thực hiện công việc của
mình nhanh hơn nhiều so với trước đây.
 Merkle Tree được nhắc đến nhiều lần trong bài luận 2008 của Satoshi Nakamoto để
giới thiệu Bitcoin với thế giới và được sử dụng rộng rãi trong Blockchain.
71
2021 © PGS.TS Lê Đắc Nhường
3.3 Cây Merkle
Merkle Tree
● Cấu trúc cây Merkle
 Cây Merkle là một cấu trúc dữ liệu dạng cây trong đó mọi nút lá được dán nhãn
bằng giá trị băm của khối dữ liệu và mọi nút không phải là nút lá được dán nhãn
bằng giá trị băm của nhãn của các nút con của nó.
 Cây băm cho phép xác minh hiệu quả và an toàn nội dung của các cấu trúc dữ liệu
lớn. Cây băm là một dạng tổng quát của danh sách băm và chuỗi băm.
 Số lượng phép tính toán hàm băm tỷ lệ với logarit của số nút là của cây. Trong khi
với các danh sách băm thì số lượng này tỷ lệ với số lượng nút của chính nó
72
2021 © PGS.TS Lê Đắc Nhường
3.3 Cây Merkle
Merkle Tree
● Cấu trúc cây Merkle
Nút lá Hash 0-0 và Hash 0-1 có nhãn là giá trị băm của hai khối dữ liệu L1 và L2
Nút không phải là nút lá Hash 0 có nhãn là giá trị băm của Hash 0-0 và Hash 0-1.
73
2021 © PGS.TS Lê Đắc Nhường
● Hoạt động của cây Merkle
 Merkle tree tóm tắt tất cả các giao dịch trong một
khối bằng cách tạo dấu hiệu đặc trưng (giá trị
băm) của toàn bộ các giao dịch, từ đó cho phép
người dùng dễ dàng xác minh xem một giao dịch
có tồn tại trong một khối hay không?
 Merkle tree được tạo bằng cách liên tục băm các
cặp nút cho đến khi chỉ còn lại một giá trị băm (giá
trị băm này được gọi là Hash Root hoặc Merkle
Root). Các giá trị băm được tính từ dưới lên, bắt
đầu từ các giao dịch riêng lẻ (ID giao dịch).
3.3 Cây Merkle
Merkle Tree
74
2021 © PGS.TS Lê Đắc Nhường
● Hoạt động của cây Merkle
 Đa phần các Merkle tree là các cây nhị phân, có nghĩa là mỗi nút cha có thể có tối
đa hai nhánh con.
 Về mặt kỹ thuật, có thể tăng tăng số nút con của cây lên và tạo thành những dạng
cây Merkle không phải dạng nhị phân. Tuy nhiên trên thực tế cây nhị phân vẫn
được sử dụng phổ biến nhất.
 Với Merkle tree nhị phân yêu cầu số nút lá chẵn. Nếu số lượng giao dịch là số lẻ,
hàm băm cuối cùng sẽ được nhân đôi một lần để tạo số nút chẵn.
 Merkle Root tóm tắt tất cả dữ liệu trong các giao dịch liên quan và được lưu trữ
trong tiêu đề khối → Duy trì tính toàn vẹn của dữ liệu.
3.3 Cây Merkle
Merkle Tree
75
2021 © PGS.TS Lê Đắc Nhường
● Hoạt động của cây Merkle
 Cây Merkle có thể cho phép chúng ta kiểm
tra tính toàn vẹn của dữ liệu chỉ bằng cách
duyệt cây Merkle từ Hash Root với độ phức
tạp logarit (quá trình này còn được gọi là
Bằng chứng Merkle).
 Bằng chứng Merkle hoạt động bằng cách tạo
lại nhánh chứa đoạn dữ liệu từ gốc đến đoạn
dữ liệu cần được kiểm chứng.
3.3 Cây Merkle
Merkle Tree
76
2021 © PGS.TS Lê Đắc Nhường
● Độ phức tạp của cây Merkle
3.3 Cây Merkle
Merkle Tree
77
2021 © PGS.TS Lê Đắc Nhường
● Ví dụ
3.3 Cây Merkle
Merkle Tree
78
2021 © PGS.TS Lê Đắc Nhường
● Ví dụ
3.3 Cây Merkle
Merkle Tree
79
2021 © PGS.TS Lê Đắc Nhường
● Ví dụ
3.3 Cây Merkle
Merkle Tree
80
2021 © PGS.TS Lê Đắc Nhường
● Ví dụ
3.3 Cây Merkle
Merkle Tree
81
2021 © PGS.TS Lê Đắc Nhường
● Ví dụ
3.3 Cây Merkle
Merkle Tree
82
2021 © PGS.TS Lê Đắc Nhường
● Ví dụ
3.3 Cây Merkle
Merkle Tree
83
2021 © PGS.TS Lê Đắc Nhường
● Ví dụ:
3.3 Cây Merkle
Merkle Tree
84
2021 © PGS.TS Lê Đắc Nhường
● Chain of blocks in Blockchain: Linked List Type
3.3 Cây Merkle
Merkle Tree
85
2021 © PGS.TS Lê Đắc Nhường
● Chain of blocks in Blockchain: Linked List Type
3.3 Cây Merkle
Merkle Tree
86
2021 © PGS.TS Lê Đắc Nhường
● Chain of blocks in Blockchain: Linked List Type
3.3 Cây Merkle
Merkle Tree
87
2021 © PGS.TS Lê Đắc Nhường
● Ví dụ chi tiết Block bitcoin
3.3 Cây Merkle
Merkle Tree
88
2021 © PGS.TS Lê Đắc Nhường
● Ví dụ chi tiết Block bitcoin
3.3 Cây Merkle
Merkle Tree
89
2021 © PGS.TS Lê Đắc Nhường
Lý thuyết trò chơi và
cân bằng Nash
Game Theory
3.4
90
2021 © PGS.TS Lê Đắc Nhường
3.4 Lý thuyết trò chơi và cân bằng Nash
Game Theory
● Khái niệm
○ Lý thuyết trò chơi là cách phân tích về những sự phụ thuộc lẫn nhau
chiến lược.
○ Lý thuyết trò chơi cung cấp một phương pháp logic và bài bản trong
việc nghiên cứu những tình huống kinh doanh hay "trò chơi“.
○ Lý thuyết trò chơi có thể mô hình hiện thực hóa những tình huống kinh
doanh giúp đưa ra quyết định tối ưu và chọn những hành động tối ưu.
91
2021 © PGS.TS Lê Đắc Nhường
3.4 Lý thuyết trò chơi và cân bằng Nash
Game Theory
● Khái niệm
○ Trò chơi là tình huống trong đó các người chơi đưa ra những quyết định
chiến lược có tính đến hành động và phản ứng của đối thủ.
○ Chiến lược là một qui tắc hay kế hoặc hành động trong trò chơi khi mà
các đối thủ tích cực nghiên cứu những tác động qua lại với nhau khi
đưa ra những quyết định.
○ Lý thuyết trò chơi là một tập hợp các ý tưởng và nguyên lý để dẫn dắt
tư duy chiến lược.
92
2021 © PGS.TS Lê Đắc Nhường
3.4 Lý thuyết trò chơi và cân bằng Nash
Game Theory
● 3 yếu tố cần thiết lý thuyết trò chơi
○ Những người chơi
○ Những chiến lược và hành động
○ Những kết quả
● 2 thể loại trò chơi
○ Trò chơi dưới dạng chiến lược (Game in Strategic Form): Được sử dụng
trong tình huống khi những người chơi phải đưa ra quyết định cùng lúc.
○ Trò chơi dưới dạng phạm vi mở rộng (Game in Extensive Form): Được
sử dụng trong tình huống khi những người chơi đưa ra quyết định theo
thứ tự.
93
2021 © PGS.TS Lê Đắc Nhường
3.4 Lý thuyết trò chơi và cân bằng Nash
Game Theory
94
2021 © PGS.TS Lê Đắc Nhường
3.4 Lý thuyết trò chơi và cân bằng Nash
Game Theory
● Ứng dụng trong Blockchain
○ Loại bỏ giao dich không hợp lệ khi mở rộng khác khối
○ Các khối màu xanh lam là chuỗi chính. Bây giờ, giả sử có một thợ mỏ, trong khối
màu xanh lam 51, chi 20 bitcoin để nhận được 500 litecoin. Bây giờ anh ta muốn
tạo một chuỗi song song với một khối mới 51 (màu đỏ), nơi anh ta chưa từng
thực hiện giao dịch này.
○ Trong khối màu xanh lam 51 chi 20 bitcoin để nhận được 500 litecoin.
○ Tạo một chuỗi (fork) mới từ khối 50 và trong khối 51 thay thế, anh ta không thực hiện giao
dịch litecoin.
○ Cuối cùng, anh ấy xuất hiện với 20 BTC ban đầu và 500 litecoin mới.
95
2021 © PGS.TS Lê Đắc Nhường
3.4 Lý thuyết trò chơi và cân bằng Nash
Game Theory
● Ứng dụng trong Blockchain
○ Điểm cân bằng Nash giúp thúc đẩy các thợ đào làm nhiều việc hơn là tạo ra
bitcoin mới. Mỗi người khai thác không có lựa chọn nào khác ngoài việc đóng
một vai trò trong việc đảm bảo mạng hoạt động như bình thường. Đây là một
phần của "pile of stones" mà mỗi người thợ mỏ đồng ý đào.
96
2021 © PGS.TS Lê Đắc Nhường
3.4 Lý thuyết trò chơi và cân bằng Nash
Game Theory
● Ứng dụng trong Blockchain
○ Ở trạng thái cân bằng Nash, mặc dù những người tham gia cá nhân muốn nhận
được nhiều phần thưởng hơn hoặc một loại phần thưởng khác, họ đồng ý
quyết định nhận được thứ gì đó có giá trị hơn là không có gì.
○ Mạng Bitcoin buộc những người khai thác phải chơi theo một bộ quy tắc đã
đồng ý để thêm các giao dịch vào sổ cái phân tán, nếu không công việc của họ
sẽ bị từ chối ngay lập tức. Đồng thời, các thợ đào tăng cường bảo mật cho mạng
bằng cách sử dụng năng lượng đắt đỏ liên kết từng khối mới với khối trước đó
thông qua một thuật toán toán học được thiết lập tốt.
97
2021 © PGS.TS Lê Đắc Nhường
3.4 Lý thuyết trò chơi và cân bằng Nash
Game Theory
● Ứng dụng trong Blockchain
Tổng lợi nhuận của một thợ đào tại điểm cân bằng Nash và mức tối ưu xã hội

More Related Content

What's hot

Thuật toán mã hóa rsa
Thuật toán mã hóa rsaThuật toán mã hóa rsa
Thuật toán mã hóa rsa
Bảo Điệp
 
Trí tuệ nhân tạo "Game cờ Caro"
Trí tuệ nhân tạo "Game cờ Caro"Trí tuệ nhân tạo "Game cờ Caro"
Trí tuệ nhân tạo "Game cờ Caro"
Ham Hau
 
TIM HIEU SSL VA UNG DUNG TREN WEB SERVER
TIM HIEU SSL VA UNG DUNG TREN WEB SERVERTIM HIEU SSL VA UNG DUNG TREN WEB SERVER
TIM HIEU SSL VA UNG DUNG TREN WEB SERVER
conglongit90
 
Tim hieu thanh ghi in asm
Tim hieu thanh ghi in asmTim hieu thanh ghi in asm
Tim hieu thanh ghi in asm
My Đá
 
Báo cáo phân tích thiết kế mạng
Báo cáo phân tích thiết kế mạngBáo cáo phân tích thiết kế mạng
Báo cáo phân tích thiết kế mạng
jackjohn45
 
Giao thức bảo mật SSL
Giao thức bảo mật SSLGiao thức bảo mật SSL
Giao thức bảo mật SSL
conglongit90
 
chương 4 - TCP/IP - mạng máy tính
chương 4 - TCP/IP - mạng máy tínhchương 4 - TCP/IP - mạng máy tính
chương 4 - TCP/IP - mạng máy tính
Quyên Nguyễn Tố
 
Kiến trúc máy tính và hợp ngữ bài 03
Kiến trúc máy tính và hợp ngữ bài 03Kiến trúc máy tính và hợp ngữ bài 03
Kiến trúc máy tính và hợp ngữ bài 03
Nhóc Nhóc
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
pisu412
 
Giới thiệu về Blockchain - công nghệ phía sau Bitcoin
Giới thiệu về Blockchain - công nghệ phía sau Bitcoin Giới thiệu về Blockchain - công nghệ phía sau Bitcoin
Giới thiệu về Blockchain - công nghệ phía sau Bitcoin
Nguyen Thanh
 
MATMA - Chuong3 l tso
MATMA - Chuong3 l tsoMATMA - Chuong3 l tso
MATMA - Chuong3 l tsoSai Lemovom
 
Xử lý tín hiệu số
Xử lý tín hiệu sốXử lý tín hiệu số
Xử lý tín hiệu số
Khôi Nguyễn Đăng
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Nguyễn Công Hoàng
 
Hướng dẫn sử dụng phần mềm packet tracer
Hướng dẫn sử dụng phần mềm packet tracerHướng dẫn sử dụng phần mềm packet tracer
Hướng dẫn sử dụng phần mềm packet tracer
Bình Tân Phú
 
Tìm hiểu hệ mã hoá RSA và cách triển khai vào hệ thống
Tìm hiểu hệ mã hoá RSA và cách triển khai vào hệ thốngTìm hiểu hệ mã hoá RSA và cách triển khai vào hệ thống
Tìm hiểu hệ mã hoá RSA và cách triển khai vào hệ thống
tNguynMinh11
 
Hệ mật mã Rabin
Hệ mật mã RabinHệ mật mã Rabin
Hệ mật mã Rabin
Thành phố Đà Lạt
 
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại viĐề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại viĐỗ Đức Hùng
 
Bài 8: Triển khai bảo mật sử dụng chính sách nhóm (Group policy) - Giáo trình...
Bài 8: Triển khai bảo mật sử dụng chính sách nhóm (Group policy) - Giáo trình...Bài 8: Triển khai bảo mật sử dụng chính sách nhóm (Group policy) - Giáo trình...
Bài 8: Triển khai bảo mật sử dụng chính sách nhóm (Group policy) - Giáo trình...
MasterCode.vn
 
Hệ thống quản lý và phân tích log tập trung elk stack
Hệ thống quản lý và phân tích log tập trung elk stackHệ thống quản lý và phân tích log tập trung elk stack
Hệ thống quản lý và phân tích log tập trung elk stack
laonap166
 

What's hot (20)

Thuật toán mã hóa rsa
Thuật toán mã hóa rsaThuật toán mã hóa rsa
Thuật toán mã hóa rsa
 
Trí tuệ nhân tạo "Game cờ Caro"
Trí tuệ nhân tạo "Game cờ Caro"Trí tuệ nhân tạo "Game cờ Caro"
Trí tuệ nhân tạo "Game cờ Caro"
 
TIM HIEU SSL VA UNG DUNG TREN WEB SERVER
TIM HIEU SSL VA UNG DUNG TREN WEB SERVERTIM HIEU SSL VA UNG DUNG TREN WEB SERVER
TIM HIEU SSL VA UNG DUNG TREN WEB SERVER
 
Tim hieu thanh ghi in asm
Tim hieu thanh ghi in asmTim hieu thanh ghi in asm
Tim hieu thanh ghi in asm
 
Báo cáo phân tích thiết kế mạng
Báo cáo phân tích thiết kế mạngBáo cáo phân tích thiết kế mạng
Báo cáo phân tích thiết kế mạng
 
Giao thức bảo mật SSL
Giao thức bảo mật SSLGiao thức bảo mật SSL
Giao thức bảo mật SSL
 
chương 4 - TCP/IP - mạng máy tính
chương 4 - TCP/IP - mạng máy tínhchương 4 - TCP/IP - mạng máy tính
chương 4 - TCP/IP - mạng máy tính
 
Kiến trúc máy tính và hợp ngữ bài 03
Kiến trúc máy tính và hợp ngữ bài 03Kiến trúc máy tính và hợp ngữ bài 03
Kiến trúc máy tính và hợp ngữ bài 03
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
 
Giới thiệu về Blockchain - công nghệ phía sau Bitcoin
Giới thiệu về Blockchain - công nghệ phía sau Bitcoin Giới thiệu về Blockchain - công nghệ phía sau Bitcoin
Giới thiệu về Blockchain - công nghệ phía sau Bitcoin
 
MATMA - Chuong3 l tso
MATMA - Chuong3 l tsoMATMA - Chuong3 l tso
MATMA - Chuong3 l tso
 
--De cuong on tap hdh
 --De cuong on tap hdh --De cuong on tap hdh
--De cuong on tap hdh
 
Xử lý tín hiệu số
Xử lý tín hiệu sốXử lý tín hiệu số
Xử lý tín hiệu số
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
 
Hướng dẫn sử dụng phần mềm packet tracer
Hướng dẫn sử dụng phần mềm packet tracerHướng dẫn sử dụng phần mềm packet tracer
Hướng dẫn sử dụng phần mềm packet tracer
 
Tìm hiểu hệ mã hoá RSA và cách triển khai vào hệ thống
Tìm hiểu hệ mã hoá RSA và cách triển khai vào hệ thốngTìm hiểu hệ mã hoá RSA và cách triển khai vào hệ thống
Tìm hiểu hệ mã hoá RSA và cách triển khai vào hệ thống
 
Hệ mật mã Rabin
Hệ mật mã RabinHệ mật mã Rabin
Hệ mật mã Rabin
 
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại viĐề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
 
Bài 8: Triển khai bảo mật sử dụng chính sách nhóm (Group policy) - Giáo trình...
Bài 8: Triển khai bảo mật sử dụng chính sách nhóm (Group policy) - Giáo trình...Bài 8: Triển khai bảo mật sử dụng chính sách nhóm (Group policy) - Giáo trình...
Bài 8: Triển khai bảo mật sử dụng chính sách nhóm (Group policy) - Giáo trình...
 
Hệ thống quản lý và phân tích log tập trung elk stack
Hệ thống quản lý và phân tích log tập trung elk stackHệ thống quản lý và phân tích log tập trung elk stack
Hệ thống quản lý và phân tích log tập trung elk stack
 

Similar to 2021. Chương 2 3. Cơ sở toán học của blockchain

Integrity
IntegrityIntegrity
Integrity
Hoang Nguyen
 
Report password cracking (2)
Report password cracking (2)Report password cracking (2)
Report password cracking (2)
phanleson
 
Chuong 6 xac thuc va toan ven thong tin
Chuong 6  xac thuc va toan ven thong tinChuong 6  xac thuc va toan ven thong tin
Chuong 6 xac thuc va toan ven thong tin
np_thanh
 
Hệ mật mã Mcelice
Hệ mật mã MceliceHệ mật mã Mcelice
Hệ mật mã Mcelice
Thành phố Đà Lạt
 
HẠ TẦNG KHÓA CÔNG KHAI(PKI)
HẠ TẦNG KHÓA CÔNG KHAI(PKI)HẠ TẦNG KHÓA CÔNG KHAI(PKI)
HẠ TẦNG KHÓA CÔNG KHAI(PKI)
ducmanhkthd
 
Hệ mật mã Mcliece
Hệ mật mã MclieceHệ mật mã Mcliece
Hệ mật mã Mcliece
Thành phố Đà Lạt
 
Tiểu+luận+antoan
Tiểu+luận+antoanTiểu+luận+antoan
Tiểu+luận+antoan
Bùi Quân
 
Ma hoa.pdf
Ma hoa.pdfMa hoa.pdf
Ma hoa.pdf
CangPhan2
 
Bảo mật nội bộ và an toàn ip
Bảo mật nội bộ và an toàn ipBảo mật nội bộ và an toàn ip
Bảo mật nội bộ và an toàn ip
NgcHng148
 
Baocaoattt
BaocaoatttBaocaoattt
Baocaoattt
ngng139
 

Similar to 2021. Chương 2 3. Cơ sở toán học của blockchain (11)

Integrity
IntegrityIntegrity
Integrity
 
Report password cracking (2)
Report password cracking (2)Report password cracking (2)
Report password cracking (2)
 
Chuong 6 xac thuc va toan ven thong tin
Chuong 6  xac thuc va toan ven thong tinChuong 6  xac thuc va toan ven thong tin
Chuong 6 xac thuc va toan ven thong tin
 
Hệ mật mã Mcelice
Hệ mật mã MceliceHệ mật mã Mcelice
Hệ mật mã Mcelice
 
HẠ TẦNG KHÓA CÔNG KHAI(PKI)
HẠ TẦNG KHÓA CÔNG KHAI(PKI)HẠ TẦNG KHÓA CÔNG KHAI(PKI)
HẠ TẦNG KHÓA CÔNG KHAI(PKI)
 
Hệ mật mã Mcliece
Hệ mật mã MclieceHệ mật mã Mcliece
Hệ mật mã Mcliece
 
Tiểu+luận+antoan
Tiểu+luận+antoanTiểu+luận+antoan
Tiểu+luận+antoan
 
Ma hoa.pdf
Ma hoa.pdfMa hoa.pdf
Ma hoa.pdf
 
Hambam
HambamHambam
Hambam
 
Bảo mật nội bộ và an toàn ip
Bảo mật nội bộ và an toàn ipBảo mật nội bộ và an toàn ip
Bảo mật nội bộ và an toàn ip
 
Baocaoattt
BaocaoatttBaocaoattt
Baocaoattt
 

2021. Chương 2 3. Cơ sở toán học của blockchain

  • 1. 1 2021 © PGS.TS Lê Đắc Nhường Chương 2 CơchếhoạtđộngvàtínhbảomậtcủaBlockchain Blockchain Security PGS.TS. Lê Đắc Nhường ▪ Khoa Công nghệ thông tin – Đại học Hải Phòng ▪ Nhuongld@dhhp.edu.vn ▪ 0987.394.900.
  • 2. 2 2021 © PGS.TS Lê Đắc Nhường NỘI DUNG CHƯƠNG 2 Lịch sử hình thành của Blockchain Cơ sở toán học của Blockchain ▪ Hàm băm ▪ Chữ ký số ▪ Lý thuyết trò chơi và cân bằng Nash Vấn đề riêng tư, cơ chế xác thực bảo mật Thuật toán trong giao thức đồng thuận Cấu trúc của Blockchain Hệ thống phân tán, phi tập trung (Decentralization ) ETH & Hợp đồng thông minh (Smart Contracts)
  • 3. 3 2021 © PGS.TS Lê Đắc Nhường Cơ sở toán học của Blockchain 3
  • 4. 4 2021 © PGS.TS Lê Đắc Nhường 3. Cơ sở toán học của Blockchain Mathematic Foundation Hàm băm mã hóa Lược đồ chữ ký số Cây Merkle Lý thuyết trò chơi
  • 5. 5 2021 © PGS.TS Lê Đắc Nhường HÀM BĂM MÃ HÓA Cryptographic Hash Functions 3.1
  • 6. 6 2021 © PGS.TS Lê Đắc Nhường 3.1 Hàm băm mã hóa Cryptographic Hash Functions ● Hàm băm mã hóa ○ Mục tiêu: Làm thế nào để chúng ta đảm bảo sự tin cậy trong giao tiếp trong một môi trường không tin cậy?
  • 7. 7 2021 © PGS.TS Lê Đắc Nhường 3.1 Hàm băm mã hóa Cryptographic Hash Functions ● Hàm băm mã hóa f x f(x) input output function
  • 8. 8 2021 © PGS.TS Lê Đắc Nhường 3.1 Hàm băm mã hóa Cryptographic Hash Functions ● Hàm băm mã hóa H x H(x) preimage image hash function
  • 9. 9 2021 © PGS.TS Lê Đắc Nhường 3.1 Hàm băm mã hóa Cryptographic Hash Functions ● Hàm băm mã hóa any size 256 bits H
  • 10. 10 2021 © PGS.TS Lê Đắc Nhường 3.1 Hàm băm mã hóa Cryptographic Hash Functions ● Hàm băm mã hóa ○ Về bản chất: Hàm băm của một thông điệp là đại diện của thông điệp đó. ○ Mục tiêu: Các hàm băm (H) tạo ra bản nhận dạng (fingerprint) cho một tập tin, thông điệp hay một khối dữ liệu truyền đi nhằm kiểm tra tính toàn vẹn.
  • 11. 11 2021 © PGS.TS Lê Đắc Nhường ● Các đặc điểm ○ H có thể được áp dụng trên khối dữ liệu có độ dài bất kỳ ○ H tạo đầu ra có độ dài cố định ○ H(x) tính toán mọi x tương đối dễ dàng, tạo điều kiện cho việc cài đặt trên phần cứng lẫn phần mềm được thiết thực. 3.1 Hàm băm mã hóa Cryptographic Hash Functions
  • 12. 12 2021 © PGS.TS Lê Đắc Nhường ● Phân loại Collision Resistant Hash Functions (CRHF) One-Way Hash Functions (OWHF) Manipulation Detection Codes (MDC) Message Authentication Codes (MAC) Cryptographic Hash Functions Sử dụng khóa Không sử dụng khóa 3.1 Hàm băm mã hóa Cryptographic Hash Functions
  • 13. 13 2021 © PGS.TS Lê Đắc Nhường ● Tính bền của ảnh băm (Preimage Resistance) Với bất kỳ giá trị băm h, không thể tính được x sao cho H(x)=h. Hay H được gọi là hàm một chiều (One-Way Hash Functions) 3.1 Hàm băm mã hóa Cryptographic Hash Functions
  • 14. 14 2021 © PGS.TS Lê Đắc Nhường ● Tấn công hàm băm (Second Preimage Resistance) Tính bền xung đột yếu (weak collision resistance): với bất kỳ giá trị x, không thể tính được y ≠ x sao cho H(y) = H(x). 3.1 Hàm băm mã hóa Cryptographic Hash Functions
  • 15. 15 2021 © PGS.TS Lê Đắc Nhường ● Tính bền xung đột (Collision Resistance) Tính bền xung đột mạnh (Strong Collision Resistance): Không thể tính được một cặp (x, y) sao cho H(x) = H(y). 3.1 Hàm băm mã hóa Cryptographic Hash Functions
  • 16. 16 2021 © PGS.TS Lê Đắc Nhường ● Hàm băm - MD5 (Manipulating detection codes) Phát triển bởi Ron Rivest tại đại học MIT Input: Thông điệp với độ dài bất kỳ Output: Giá trị băm (message digest) 128 bits Giải thuật gồm 5 bước thao tác trên khối 512 bits 3.1 Hàm băm mã hóa Cryptographic Hash Functions
  • 17. 17 2021 © PGS.TS Lê Đắc Nhường ● Hàm băm - MD5 (Manipulating Detection Codes)  Giải thuật MD5 được tóm tắt như sau:  CV0 = IV  CVq+1 = SUM32[CVq,RFI(Yq,RFH(Yq,RFG(Yq,RFF(Yq,CVq))))]  MD = CVL-1  Với các tham số  IV: bộ đệm gồm 4 thanh ghi ABCD  Yq: khối dữ liệu thứ q gồm 512 bits  L: số khối 512-bit sau khi nhồi dữ liệu  CVq: đầu ra của khối thứ q sau khi áp dụng hàm nén  RFx: hàm luận lý sử dụng trong các “vòng” (F,G,H,I)  MD: message digest – giá trị băm  SUM32: cộng modulo 232 3.1 Hàm băm mã hóa Cryptographic Hash Functions
  • 18. 18 2021 © PGS.TS Lê Đắc Nhường ● Hàm băm - SHA-1 (Secure Hash Algorithm-1993)  SHA phát triển bởi National Institute of Standard and Technology (NIST)  Đầu vào: Thông điệp với độ dài tối đa 264 bits  Đầu ra: Giá băm (message digest) có độ dài 160 bits  Giải thuật gồm 5 bước thao tác trên các khối 512 bits CV0 = IV CVq+1 = SUM32(CVq, ABCDEq) MD = CVL Với IV = giá trị khởi tạo của bộ đệm ABCDE; ABCDEq = đầu ra của hàm nén trên khối thứ q L = số khối 512-bit của thông điệp; SUM32 = phép cộng modulo 232 trên từng từ (32 bits) của đầu vào MD = giá trị băm 3.1 Hàm băm mã hóa Cryptographic Hash Functions
  • 19. 19 2021 © PGS.TS Lê Đắc Nhường ● Hàm băm - SHA-1 (Secure Hash Algorithm-1993) 3.1 Hàm băm mã hóa Cryptographic Hash Functions 23/02/2017: Các nhà nghiên cứu đến từ Google và viện CWI tại Amsterdam đã thực hiện thành công kiểu tấn công đụng độ (Collision Attack) đối với thuật toán SHA-1, cụ thể là với 2 input khác nhau tạo ra cùng một giá trị băm.
  • 20. 20 2021 © PGS.TS Lê Đắc Nhường ● Hàm băm - SHA-1 (Secure Hash Algorithm-1993) 3.1 Hàm băm mã hóa Cryptographic Hash Functions
  • 21. 21 2021 © PGS.TS Lê Đắc Nhường ● Hàm băm - SHA-256 3.1 Hàm băm mã hóa Cryptographic Hash Functions
  • 22. 22 2021 © PGS.TS Lê Đắc Nhường ● Hàm băm - SHA-1 (Secure Hash Algorithm-1993) Thuật toán Kết quả (bit) Trạng thái (bit) Khối (bit) Thông điệp tối đa (bit) Word (bit) # chu kỳ Thao tác Đụng độ SHA-0 160 160 512 2 64 − 1 32 80 +,and,or, xor,rotl Có SHA-1 160 160 512 2 64 − 1 32 80 +,and,or, xor,rotl 2 63 thao tác SHA- 256/224 256/ 224 256 512 2 64 − 1 32 64 +,and, or,xor, shr,rotr Chưa SHA- 512/384 512/ 384 512 1024 2 128 − 1 64 80 +,and, or,xor, shr,rotr Chưa 3.1 Hàm băm mã hóa Cryptographic Hash Functions
  • 23. 23 2021 © PGS.TS Lê Đắc Nhường ● So sánh giữa MD5 và SHA-1 3.1 Hàm băm mã hóa Cryptographic Hash Functions
  • 24. 24 2021 © PGS.TS Lê Đắc Nhường ● Hashed Message Authentication Code  Đặt vấn đề  Các giải thuật băm (MD5, SHA-1) thực hiện nhanh hơn so với các giải thuật mã hóa khối (DES, AES)  Các thư viện hàm băm được cung cấp rộng rãi → Không gặp trở ngại pháp lý ở các nước.  Mục tiêu  Sử dụng các giải thuật băm thực hiện tốt trên các phần mềm và mã nguồn được cung cấp miễn phí và rộng rãi  Có khả năng thay thế các giải thuật khác tốt hơn được phát minh trong tương lai.  Quản lý khóa dễ dàng 3.1 Hàm băm mã hóa Cryptographic Hash Functions
  • 25. 25 2021 © PGS.TS Lê Đắc Nhường ● Hashed Message Authentication Code HMACk(M) = H[(K+ xor opad) || H[(K+ xor ipad) || M]] Với  H = hàm băm bất kỳ.  M = thông điệp đầu vào  K = khóa bí mật.  K+ = khóa được thêm các bit 0 vào bên trái để được khối 512-bit  ipad = 00110110.  opad = 01011100 3.1 Hàm băm mã hóa Cryptographic Hash Functions
  • 26. 26 2021 © PGS.TS Lê Đắc Nhường ● Hashed Message Authentication Code (MAC) 3.1 Hàm băm mã hóa Cryptographic Hash Functions
  • 27. 27 2021 © PGS.TS Lê Đắc Nhường ● Hashed Message Authentication Code (MAC)  Merkle-Damgård  Tác giả: Ralph Merkle, Ivan Damgård  Hầu hết các hàm băm đều sử dụng cấu trúc này  Ví dụ: SHA-1, MD5 Khối 1 f Length padding f Finali- sation IV Hash Khối 2 f Khối n f 3.1 Hàm băm mã hóa Cryptographic Hash Functions
  • 28. 28 2021 © PGS.TS Lê Đắc Nhường ● Hashed Message Authentication Code (MAC)  Matyas-Meyer-Oseas  Kiến trúc “đối ngẫu” với kiến trúc Davies-Mayer  Ở khối đầu tiên, cần sử dụng giá trị khởi đầu H0  Nếu hàm E sử dụng khóa và khối kích thước khác nhau, hàm g cần biến đổi Hi -1 thành khóa phù hợp cho hàm E Hi = Eg (H ) (mi)  mi i -1 E g  Hi – 1 Hi mi 3.1 Hàm băm mã hóa Cryptographic Hash Functions
  • 29. 29 2021 © PGS.TS Lê Đắc Nhường ● Hashed Message Authentication Code (MAC)  Davies-Meyer  Kiến trúc “đối ngẫu” với kiến trúc Matyas-Meyer-Oseas  Ở khối đầu tiên, cần sử dụng giá trị khởi đầu H0  Nếu hàm E không an toàn thì có thể áp dụng phương pháp fixed point attack đế tấn công hàm băm tương ứng Hi = E (Hi –1)  Hi –1 mi E  Hi – 1 Hi mi 3.1 Hàm băm mã hóa Cryptographic Hash Functions
  • 30. 30 2021 © PGS.TS Lê Đắc Nhường ● Hashed Message Authentication Code (MAC)  Miyaguchi-Preneel  Mở rộng của kiến trúc Matyas-Meyer-Oseas  Ở khối đầu tiên, cần sử dụng giá trị khởi đầu H0  Nếu hàm E sử dụng khóa và khối kích thước khác nhau, hàm g cần biến đổi Hi -1 thành khóa phù hợp cho hàm E Hi = Eg (H ) (mi)Hi-1mi i -1 E g  Hi – 1 Hi mi 3.1 Hàm băm mã hóa Cryptographic Hash Functions
  • 31. 31 2021 © PGS.TS Lê Đắc Nhường Bitcoin uses SHA-256^2 (“SHA-256 squared”), meaning that H(x) actually means SHA256(SHA256(x)) ● Hashed in Blockchain Bitcoin 3.1 Hàm băm mã hóa Cryptographic Hash Functions #Python import hashlib def encrypt_string(hash_string): sha_signature = hashlib.sha256(hash_string.encode()).hexdigest() return sha_signature
  • 32. 32 2021 © PGS.TS Lê Đắc Nhường ● Hashed in Blockchain ETH 3.1 Hàm băm mã hóa Cryptographic Hash Functions - Ban đầu Ethereum sử dụng hàm băm SHA-3 - Hiện nay Ethereum sử dụng hàm băm KECCAK-256 Ethereum SHA3 function in Solidity = 5f16f4c7f149ac4f9510d9cf8cf384038ad348b3bcdc01915f95de12df9d1b02 Keccak-256 = 5f16f4c7f149ac4f9510d9cf8cf384038ad348b3bcdc01915f95de12df9d1b02 SHA3-256 (NIST Standard) = 7f5979fb78f082e8b1c676635db8795c4ac6faba03525fb708cb5fd68fd40c5e
  • 33. 33 2021 © PGS.TS Lê Đắc Nhường ● Hàm băm SHA-3 3.1 Hàm băm mã hóa Cryptographic Hash Functions # Generating SHA hashing using Python 3 # Import sha256 module from hashlib from hashlib import sha256 # Getting input string from the user your_data = input('Enter a string: ‘) # Generating SHA256 hash hash_result = sha256(str(your_data).encode()) result = hash_result.hexdigest() # Printing the result print('Result: ',str(result))
  • 34. 34 2021 © PGS.TS Lê Đắc Nhường ● Hashed in Blockchain ETH 3.1 Hàm băm mã hóa Cryptographic Hash Functions •git clone https://github.com/RnDevelover/Keccak256PHP.git •cd Keccak256PHP •phpize •./configure --enable-keccak256 •make •copy modules/keccak256.so to your php extension directory. •enable extension by adding extension=keccak256.so to your php.ini $a="cc"; // Hex encoded string. All characters are [0-9a-fA-F]. $hash=keccak256($a); echo $hash; // Hex encoded hash. PHP:
  • 35. 35 2021 © PGS.TS Lê Đắc Nhường 3.1 Hàm băm mã hóa Cryptographic Hash Functions Tại sao Ethereum Classic nên áp dụng Keccak256 cho Thuật toán Proof of Work
  • 36. 36 2021 © PGS.TS Lê Đắc Nhường 3.1 Hàm băm mã hóa Cryptographic Hash Functions Tại sao Ethereum Classic nên áp dụng Keccak256 cho Thuật toán Proof of Work
  • 37. 37 2021 © PGS.TS Lê Đắc Nhường LƯỢC ĐỒ CHỮ KÝ SỐ Digital Signature Scheme 3.2
  • 38. 38 2021 © PGS.TS Lê Đắc Nhường 3.2 Lược đồ chữ ký số Digital Signature Scheme ● DIGITAL SIGNATURE SCHEMES (DSS) ALICE BOB private key: public key: message: Alice uses ECDSA to generate private and public keys
  • 39. 39 2021 © PGS.TS Lê Đắc Nhường 3.2 Lược đồ chữ ký số Digital Signature Scheme ● DIGITAL SIGNATURE SCHEMES (DSS) ALICE BOB private key: public key: message: Alice's public key: Bob needs Alice's public key
  • 40. 40 2021 © PGS.TS Lê Đắc Nhường 3.2 Lược đồ chữ ký số Digital Signature Scheme ● DIGITAL SIGNATURE SCHEMES (DSS) ALICE BOB private key: public key: message: Alice's public key: Alice signs her message signature:
  • 41. 41 2021 © PGS.TS Lê Đắc Nhường 3.2 Lược đồ chữ ký số Digital Signature Scheme ● DIGITAL SIGNATURE SCHEMES (DSS) ALICE BOB private key: public key: message: Alice's public key: Alice sends message + signature signature: Alice's message: Alice's signature:
  • 42. 42 2021 © PGS.TS Lê Đắc Nhường 3.2 Lược đồ chữ ký số Digital Signature Scheme ● DIGITAL SIGNATURE SCHEMES (DSS) ALICE BOB private key: public key: message: Bob can easily verify if Alice signed signature: or
  • 43. 43 2021 © PGS.TS Lê Đắc Nhường 3.2 Lược đồ chữ ký số Digital Signature Scheme ● DIGITAL SIGNATURE SCHEMES (DSS) ALICE BOB private key: public key: message: Bob cannot easily guess Alice’s private key signature: or
  • 44. 44 2021 © PGS.TS Lê Đắc Nhường 3.2 Lược đồ chữ ký số Digital Signature Scheme ● DIGITAL SIGNATURE SCHEMES (DSS) ALICE BOB private key: public key: message: signature: EVE private key + message = signature public key + signature = message
  • 45. 45 2021 © PGS.TS Lê Đắc Nhường 3.2 Lược đồ chữ ký số Digital Signature Scheme ● DIGITAL SIGNATURE SCHEMES (DSS) ALICE BOB private key: public key: message: signature: private key + message = signature EVE public key + signature = BAD private key: public key:
  • 46. 46 2021 © PGS.TS Lê Đắc Nhường 3.2 Lược đồ chữ ký số Digital Signature Scheme ● Chữ ký được chia làm 2 lớp ○ Chữ ký kèm thông điệp (Message Appendix): đòi hỏi thông điệp đầu vào là một tham số cho quá trình xác nhận chữ ký. ○ Chữ ký khôi phục thông điệp (Message Recovery): không đòi hỏi trong quá trình xác nhận chữ ký. Signatures schemas Message Recoverty Randomized Deterministic Appendix Randomized Deterministic Elgamal DSA Schonor. RSA Rabin Nyber-Rueppel
  • 47. 47 2021 © PGS.TS Lê Đắc Nhường ● Kiểm tra toàn vẹn thông điệp (Message Integrity) 3.2 Lược đồ chữ ký số Digital Signature Scheme
  • 48. 48 2021 © PGS.TS Lê Đắc Nhường ● Trungtâmkiểmtra,xácthựckhôngchốibỏđược(Nonrepudiation) 3.2 Lược đồ chữ ký số Digital Signature Scheme
  • 49. 49 2021 © PGS.TS Lê Đắc Nhường ● Tăng thêm tính an toàn cho lược đồ kỹ số 3.2 Lược đồ chữ ký số Digital Signature Scheme
  • 50. 50 2021 © PGS.TS Lê Đắc Nhường ● Sơ đồ chữ ký số RSA Chữ ký RSA trực tiếp 3.2 Lược đồ chữ ký số Digital Signature Scheme
  • 51. 51 2021 © PGS.TS Lê Đắc Nhường ● Sơ đồ chữ ký số RSA Chữ ký RSA kết hợp với hàm băm 3.2 Lược đồ chữ ký số Digital Signature Scheme
  • 52. 52 2021 © PGS.TS Lê Đắc Nhường ● Sơ đồ chữ ký số Elgamal 3.2 Lược đồ chữ ký số Digital Signature Scheme
  • 53. 53 2021 © PGS.TS Lê Đắc Nhường ● Sơ đồ chữ ký số Schnorr 3.2 Lược đồ chữ ký số Digital Signature Scheme
  • 54. 54 2021 © PGS.TS Lê Đắc Nhường ● Sơ đồ chữ ký số Schnorr 3.2 Lược đồ chữ ký số Digital Signature Scheme
  • 55. 55 2021 © PGS.TS Lê Đắc Nhường ● Sơ đồ chữ ký mù 3.2 Lược đồ chữ ký số Digital Signature Scheme
  • 56. 56 2021 © PGS.TS Lê Đắc Nhường ● Sơ đồ chữ ký mù Chaum’s Blind RSA 3.2 Lược đồ chữ ký số Digital Signature Scheme
  • 57. 57 2021 © PGS.TS Lê Đắc Nhường ● Sơ đồ chữ ký mù ECC 3.2 Lược đồ chữ ký số Digital Signature Scheme
  • 58. 58 2021 © PGS.TS Lê Đắc Nhường ● GENERATING PUBLIC/PRIVATE KEYS 3.2 Lược đồ chữ ký số Digital Signature Scheme ALICE private key: public key: message: signature:
  • 59. 59 2021 © PGS.TS Lê Đắc Nhường ● ECDSA PUBLIC/PRIVATE KEYS 3.2 Lược đồ chữ ký số Digital Signature Scheme Private Key Public Key Bitcoin Address ECDSA ECDSA Hash Functions Public Key Hash RIPEMD160 SHA-256 Base58Check
  • 60. 60 2021 © PGS.TS Lê Đắc Nhường ● ELLIPTIC CURVE CRYPTOGRAPHY 3.2 Lược đồ chữ ký số Digital Signature Scheme ● Bitcoin uses ECDSA (Elliptic Curve Digital Signature Algorithm) to produce private and public keys ● The Elliptic Curve is defined by some mathematical function ○ Bitcoin’s Elliptic Curve: secp256k1 : Y2 = ( X3 + 7 ) over ( Fp ) ● For cryptographic purposes, we use elliptic curves over a finite field (for key size)
  • 61. 61 2021 © PGS.TS Lê Đắc Nhường R Q P P × Q ELLIPTIC CURVE CRYPTOGRAPHY CHORD-TANGENT PROCESS ● We can do “point addition” using lines and points on our elliptic curve ○ This will allow us to define a trapdoor function, meaning that it’s difficult to invert the function ○ “Point multiplication” is repeatedly performing this addition ■ Our private key will be the number of times we perform the addition
  • 62. 62 2021 © PGS.TS Lê Đắc Nhường ELLIPTIC CURVE CRYPTOGRAPHY ● Define point addition as the following (known as the chord-tangent process): ○ Draw a line between two points P and Q. If they’re the same point, draw a line tangent to the curve at that point. ○ The point the line intersects on the curve other than P and Q is -(P+Q) ○ Flip over the x-axis to get P+Q ● nP = P dot P dot P dot P dot P dot P … ○ This is elliptic curve scalar multiplication P -2P 2P P -3P 3P “POINT MULTIPLICATION”
  • 63. 63 2021 © PGS.TS Lê Đắc Nhường ● ECDSA generates private and public keys in Bitcoin: private key = n public key = nP = P + P + P + P + … + P address = RIPEMD160(SHA256(nP)) ● How can we get n from nP? Divide nP by n. This operation can be considered taking the log of nP: n = logP( nP ) ? ● Discrete Logarithm Problem is computationally infeasible (over certain fields and curves), thus ECC is a “trapdoor function” ○ no sub-exponential time algorithm ELLIPTIC CURVE CRYPTOGRAPHY SECURITY OF ECC - TRAPDOOR FUNCTION
  • 64. 64 2021 © PGS.TS Lê Đắc Nhường ELLIPTIC CURVE CRYPTOGRAPHY TIME COMPLEXITY Input: public key Output: corresponding private key 256 bit private key, takes O(sqrt(n)) operations to crack 15 * pow(2,40) hashes per second on the ENTIRE Bitcoin network pow(2,128) / (15 * pow(2,40)) / 3600 / 24 / 365.25 = 0.6537992112229596e18 650 million billion years
  • 65. 65 2021 © PGS.TS Lê Đắc Nhường ELLIPTIC CURVE CRYPTOGRAPHY TIME COMPLEXITY N ← P Q ← 0 for i from 0 to m do if di = 1 then Q ← point_add(Q, N) N ← point_double(N) return Q O(log_2(N))!
  • 66. 66 2021 © PGS.TS Lê Đắc Nhường PUBLIC KEY PUBLIC KEY HASH BITCOIN ADDRESS PUBLIC KEY TO BITCOIN ADDRESS SHA256 RIPEMD160 Base58Check Encode }“Double Hash” or HASH160 PUBLIC KEY TO PUBKEYHASH PUBKEYHASH = RIPEMD160(SHA256(K)) ● SHA-256 (Secure Hashing Algorithm) ○ Used extensively in bitcoin scripts and mining ● RIPEMD (RACE Integrity Primitives Evaluation Message Digest) ○ Produces 160-bit (20-byte) number The name of the game is TAMPER EVIDENT {
  • 67. 67 2021 © PGS.TS Lê Đắc Nhường PUBLIC KEY PUBLIC KEY HASH BITCOIN ADDRESS PUBLIC KEY TO BITCOIN ADDRESS SHA256 RIPEMD160 Base58Check Encode } PUBLIC KEY HASH TO ADDRESS ○ Bitcoin Addresses are Base58Check Encoded ■ Base-58 alphabet: 1234567890ABCDEFGHIJKLMNOPQRSTUV WXYZabcdefghijklmnopqrstuvwxyz ■ 58 characters (omits 0, O, I, l) ○ prefix: “version byte” based on type of data ■ makes it easy for people to read address ■ depends on which network (main or test) you are on ○ checksum: 4-byte error-checking code appended to the end of an address ■ checksum = SHA256(SHA256(prefix + data), first 4 bytes {
  • 68. 68 2021 © PGS.TS Lê Đắc Nhường 3.2 Lược đồ chữ ký số Digital Signature Scheme ● Ứng dụng cơ sở hạ tầng khóa công khai phi tập trung
  • 69. 69 2021 © PGS.TS Lê Đắc Nhường CÂY MERKLE Merkle Tree 3.3
  • 70. 70 2021 © PGS.TS Lê Đắc Nhường 3.3 Cây Merkle Merkle Tree ● Lịch sử ra đời cây Merkle  Ralph Merkle học tại trường đại học Stanford, Merkle đã viết một bài báo học thuật có tên là “Chữ ký số được chứng nhận” “A Certified Digital Signature” năm 1997. Thiết kế một quy trình xác minh dữ liệu cho phép máy tính thực hiện công việc của mình nhanh hơn nhiều so với trước đây.  Merkle Tree được nhắc đến nhiều lần trong bài luận 2008 của Satoshi Nakamoto để giới thiệu Bitcoin với thế giới và được sử dụng rộng rãi trong Blockchain.
  • 71. 71 2021 © PGS.TS Lê Đắc Nhường 3.3 Cây Merkle Merkle Tree ● Cấu trúc cây Merkle  Cây Merkle là một cấu trúc dữ liệu dạng cây trong đó mọi nút lá được dán nhãn bằng giá trị băm của khối dữ liệu và mọi nút không phải là nút lá được dán nhãn bằng giá trị băm của nhãn của các nút con của nó.  Cây băm cho phép xác minh hiệu quả và an toàn nội dung của các cấu trúc dữ liệu lớn. Cây băm là một dạng tổng quát của danh sách băm và chuỗi băm.  Số lượng phép tính toán hàm băm tỷ lệ với logarit của số nút là của cây. Trong khi với các danh sách băm thì số lượng này tỷ lệ với số lượng nút của chính nó
  • 72. 72 2021 © PGS.TS Lê Đắc Nhường 3.3 Cây Merkle Merkle Tree ● Cấu trúc cây Merkle Nút lá Hash 0-0 và Hash 0-1 có nhãn là giá trị băm của hai khối dữ liệu L1 và L2 Nút không phải là nút lá Hash 0 có nhãn là giá trị băm của Hash 0-0 và Hash 0-1.
  • 73. 73 2021 © PGS.TS Lê Đắc Nhường ● Hoạt động của cây Merkle  Merkle tree tóm tắt tất cả các giao dịch trong một khối bằng cách tạo dấu hiệu đặc trưng (giá trị băm) của toàn bộ các giao dịch, từ đó cho phép người dùng dễ dàng xác minh xem một giao dịch có tồn tại trong một khối hay không?  Merkle tree được tạo bằng cách liên tục băm các cặp nút cho đến khi chỉ còn lại một giá trị băm (giá trị băm này được gọi là Hash Root hoặc Merkle Root). Các giá trị băm được tính từ dưới lên, bắt đầu từ các giao dịch riêng lẻ (ID giao dịch). 3.3 Cây Merkle Merkle Tree
  • 74. 74 2021 © PGS.TS Lê Đắc Nhường ● Hoạt động của cây Merkle  Đa phần các Merkle tree là các cây nhị phân, có nghĩa là mỗi nút cha có thể có tối đa hai nhánh con.  Về mặt kỹ thuật, có thể tăng tăng số nút con của cây lên và tạo thành những dạng cây Merkle không phải dạng nhị phân. Tuy nhiên trên thực tế cây nhị phân vẫn được sử dụng phổ biến nhất.  Với Merkle tree nhị phân yêu cầu số nút lá chẵn. Nếu số lượng giao dịch là số lẻ, hàm băm cuối cùng sẽ được nhân đôi một lần để tạo số nút chẵn.  Merkle Root tóm tắt tất cả dữ liệu trong các giao dịch liên quan và được lưu trữ trong tiêu đề khối → Duy trì tính toàn vẹn của dữ liệu. 3.3 Cây Merkle Merkle Tree
  • 75. 75 2021 © PGS.TS Lê Đắc Nhường ● Hoạt động của cây Merkle  Cây Merkle có thể cho phép chúng ta kiểm tra tính toàn vẹn của dữ liệu chỉ bằng cách duyệt cây Merkle từ Hash Root với độ phức tạp logarit (quá trình này còn được gọi là Bằng chứng Merkle).  Bằng chứng Merkle hoạt động bằng cách tạo lại nhánh chứa đoạn dữ liệu từ gốc đến đoạn dữ liệu cần được kiểm chứng. 3.3 Cây Merkle Merkle Tree
  • 76. 76 2021 © PGS.TS Lê Đắc Nhường ● Độ phức tạp của cây Merkle 3.3 Cây Merkle Merkle Tree
  • 77. 77 2021 © PGS.TS Lê Đắc Nhường ● Ví dụ 3.3 Cây Merkle Merkle Tree
  • 78. 78 2021 © PGS.TS Lê Đắc Nhường ● Ví dụ 3.3 Cây Merkle Merkle Tree
  • 79. 79 2021 © PGS.TS Lê Đắc Nhường ● Ví dụ 3.3 Cây Merkle Merkle Tree
  • 80. 80 2021 © PGS.TS Lê Đắc Nhường ● Ví dụ 3.3 Cây Merkle Merkle Tree
  • 81. 81 2021 © PGS.TS Lê Đắc Nhường ● Ví dụ 3.3 Cây Merkle Merkle Tree
  • 82. 82 2021 © PGS.TS Lê Đắc Nhường ● Ví dụ 3.3 Cây Merkle Merkle Tree
  • 83. 83 2021 © PGS.TS Lê Đắc Nhường ● Ví dụ: 3.3 Cây Merkle Merkle Tree
  • 84. 84 2021 © PGS.TS Lê Đắc Nhường ● Chain of blocks in Blockchain: Linked List Type 3.3 Cây Merkle Merkle Tree
  • 85. 85 2021 © PGS.TS Lê Đắc Nhường ● Chain of blocks in Blockchain: Linked List Type 3.3 Cây Merkle Merkle Tree
  • 86. 86 2021 © PGS.TS Lê Đắc Nhường ● Chain of blocks in Blockchain: Linked List Type 3.3 Cây Merkle Merkle Tree
  • 87. 87 2021 © PGS.TS Lê Đắc Nhường ● Ví dụ chi tiết Block bitcoin 3.3 Cây Merkle Merkle Tree
  • 88. 88 2021 © PGS.TS Lê Đắc Nhường ● Ví dụ chi tiết Block bitcoin 3.3 Cây Merkle Merkle Tree
  • 89. 89 2021 © PGS.TS Lê Đắc Nhường Lý thuyết trò chơi và cân bằng Nash Game Theory 3.4
  • 90. 90 2021 © PGS.TS Lê Đắc Nhường 3.4 Lý thuyết trò chơi và cân bằng Nash Game Theory ● Khái niệm ○ Lý thuyết trò chơi là cách phân tích về những sự phụ thuộc lẫn nhau chiến lược. ○ Lý thuyết trò chơi cung cấp một phương pháp logic và bài bản trong việc nghiên cứu những tình huống kinh doanh hay "trò chơi“. ○ Lý thuyết trò chơi có thể mô hình hiện thực hóa những tình huống kinh doanh giúp đưa ra quyết định tối ưu và chọn những hành động tối ưu.
  • 91. 91 2021 © PGS.TS Lê Đắc Nhường 3.4 Lý thuyết trò chơi và cân bằng Nash Game Theory ● Khái niệm ○ Trò chơi là tình huống trong đó các người chơi đưa ra những quyết định chiến lược có tính đến hành động và phản ứng của đối thủ. ○ Chiến lược là một qui tắc hay kế hoặc hành động trong trò chơi khi mà các đối thủ tích cực nghiên cứu những tác động qua lại với nhau khi đưa ra những quyết định. ○ Lý thuyết trò chơi là một tập hợp các ý tưởng và nguyên lý để dẫn dắt tư duy chiến lược.
  • 92. 92 2021 © PGS.TS Lê Đắc Nhường 3.4 Lý thuyết trò chơi và cân bằng Nash Game Theory ● 3 yếu tố cần thiết lý thuyết trò chơi ○ Những người chơi ○ Những chiến lược và hành động ○ Những kết quả ● 2 thể loại trò chơi ○ Trò chơi dưới dạng chiến lược (Game in Strategic Form): Được sử dụng trong tình huống khi những người chơi phải đưa ra quyết định cùng lúc. ○ Trò chơi dưới dạng phạm vi mở rộng (Game in Extensive Form): Được sử dụng trong tình huống khi những người chơi đưa ra quyết định theo thứ tự.
  • 93. 93 2021 © PGS.TS Lê Đắc Nhường 3.4 Lý thuyết trò chơi và cân bằng Nash Game Theory
  • 94. 94 2021 © PGS.TS Lê Đắc Nhường 3.4 Lý thuyết trò chơi và cân bằng Nash Game Theory ● Ứng dụng trong Blockchain ○ Loại bỏ giao dich không hợp lệ khi mở rộng khác khối ○ Các khối màu xanh lam là chuỗi chính. Bây giờ, giả sử có một thợ mỏ, trong khối màu xanh lam 51, chi 20 bitcoin để nhận được 500 litecoin. Bây giờ anh ta muốn tạo một chuỗi song song với một khối mới 51 (màu đỏ), nơi anh ta chưa từng thực hiện giao dịch này. ○ Trong khối màu xanh lam 51 chi 20 bitcoin để nhận được 500 litecoin. ○ Tạo một chuỗi (fork) mới từ khối 50 và trong khối 51 thay thế, anh ta không thực hiện giao dịch litecoin. ○ Cuối cùng, anh ấy xuất hiện với 20 BTC ban đầu và 500 litecoin mới.
  • 95. 95 2021 © PGS.TS Lê Đắc Nhường 3.4 Lý thuyết trò chơi và cân bằng Nash Game Theory ● Ứng dụng trong Blockchain ○ Điểm cân bằng Nash giúp thúc đẩy các thợ đào làm nhiều việc hơn là tạo ra bitcoin mới. Mỗi người khai thác không có lựa chọn nào khác ngoài việc đóng một vai trò trong việc đảm bảo mạng hoạt động như bình thường. Đây là một phần của "pile of stones" mà mỗi người thợ mỏ đồng ý đào.
  • 96. 96 2021 © PGS.TS Lê Đắc Nhường 3.4 Lý thuyết trò chơi và cân bằng Nash Game Theory ● Ứng dụng trong Blockchain ○ Ở trạng thái cân bằng Nash, mặc dù những người tham gia cá nhân muốn nhận được nhiều phần thưởng hơn hoặc một loại phần thưởng khác, họ đồng ý quyết định nhận được thứ gì đó có giá trị hơn là không có gì. ○ Mạng Bitcoin buộc những người khai thác phải chơi theo một bộ quy tắc đã đồng ý để thêm các giao dịch vào sổ cái phân tán, nếu không công việc của họ sẽ bị từ chối ngay lập tức. Đồng thời, các thợ đào tăng cường bảo mật cho mạng bằng cách sử dụng năng lượng đắt đỏ liên kết từng khối mới với khối trước đó thông qua một thuật toán toán học được thiết lập tốt.
  • 97. 97 2021 © PGS.TS Lê Đắc Nhường 3.4 Lý thuyết trò chơi và cân bằng Nash Game Theory ● Ứng dụng trong Blockchain Tổng lợi nhuận của một thợ đào tại điểm cân bằng Nash và mức tối ưu xã hội