Blockchain là gì
1: Blockchain là gì
“A blockchain is a growing list of records, called blocks, that are linked together using cryptography. Each block contains a cryptographic hash of the previous block, a timestamp, and transaction data (generally represented as a Merkle tree).”- theo Wikipedia
1.1 1.1 Nguồn gốc
- Lịch sử
Bắt nguồn vấn đề từ bài toán các vị tướng Byzantine. Bài toán các vị tướng Byzantine được đưa ra bởi 3 nhà khoa học máy tính Leslie Lamport, Robert Shostak và Marshall Pease trong một báo cáo khoa học mang tên "The Byzantine Generals Problem" vào năm 1982. Đây là bài toán tổng quát hoá của bài toán 2 vị tướng quân. Bài toán các vị tướng Byzantine miêu tả về một nhóm các vị tướng trong đội quân Byzantine (quân đội đế quốc Đông La Mã), tiến hành vây hãm 1 thành phố. Các vị tướng cần trao đổi để đạt được đến 1 thoả thuận về kế hoạch tấn công thành phố đó. Trong trường hợp đơn giản nhất, họ thoả thuận về việc nên tấn công hay rút lui. Một số có thể muốn tấn công, nhưng một số thì lại muốn rút lui, và vấn đề là nếu chỉ có một bộ phận tấn công riêng lẻ, thì họ sẽ gặp thất bại, và đó là kế hoạch tồi tệ hơn việc cùng tấn công hoặc cùng rút lui. Vấn đề này sẽ trở nên phức tạp khi ví dụ có 5 tướng quân trong đó có hai tướng quân phát lệnh tấn công còn hai tướng quân phát lệnh rút lui và còn lại một ông chơi hai mang truyền tín hiệu bên tấn công là tấn công còn bên rút lui cũng là rút lui. Và trong quá trình truyền tin vấn đề bảo mật của người đưa thư cũng có thể gặp vấn đề lớn nếu bị bắt hoặc bị thay đổi thông tin
- Giải quyết bài toán
Trong
một báo cáo khoa học, ba nhà khoa học máy tính Lamport, Shostak và Pease đưa ra
phương pháp giải bài toán các vị tướng Byzantine, có thể giải quyết bằng cách
quy về bài toán "Commander and Lieutenants" (chỉ huy & trung uý).
Để đưa ra quyết định cuối cùng các vị tướng quân trung thành họ cần đạt tới một
thỏa thuận thống nhất và thuật toán Oral Messages (OM) ra đời để giải quyết vấn
đề này. Để cho tất cả đạt được 1 sự đồng thuận, ta cần dựa vào sự lựa chọn của
số đông.
Tuy nhiên, trước hết cần giả định rằng:
- Mọi message khi được gửi, đều sẽ được gửi đến đích một cách chính xác
- Người nhận message sẽ biết được chính xác họ nhận từ ai
- Có thể phát hiện ra sự vắng mặt của một message (chẳng hạn như ai đó
không gửi)
Chúng ta có thể hiểu rằng nếu có n vị tướng quân
thì thuật toán OM đạt được thỏa thuận khi có 2/3 trung thành hay không quá 1/3
phản bội
Để dễ tưởng tượng, chúng ta hãy cùng xem qua trường hợp đơn giản, với 4 vị tướng (gồm A, B, C, D), và 1 kẻ phản bội, như sau:
- Trường hợp 1, kẻ phản bội là D. A sẽ broadcast
message với nội dung T cho B, C, D. D phản bội nên sẽ
sửa đổi nội dung, và gửi R cho C. Tuy nhiên, C sẽ nhận được T từ B và C và sẽ
thấy là phần đông đã lựa chọn T. Từ đó những vị tướng trung thành, gồm A, B và C
sẽ đạt được sự đồng thuận là phương án T, mặc cho D có broadcast message R.
Từ
minh họa trên có thể thấy kẻ phản bội là D nhưng phần đông vẫn lựa chọn là T
nên thỏa thuận [T] vẫn diễn ra.
Hình 2: Bài toán các tướng quân Byzantine trường hợp 2
- Trường hợp 2, kẻ phản bội là A. A có thể gửi x cho L1, gửi y cho L2 và gửi z cho L3. L1, L2, L3 đều trung thành, nên sẽ broadcast message mà họ nhận được cho những người khác. Như vậy L1 sẽ nhận được đủ cả 3 lệnh là x (từ C), y (từ L2) và z (từ L3). Trông có vẻ như không thể quyết định được đấy, nhưng thực chất, quyết định của cả 3 người sẽ là giống nhau, vì cùng là majority(x,y,z). Nếu x, y, z mang những nội dung hoàn toàn khác nhau, và không thể tính trọng số, tất cả sẽ theo lựa chọn default, ở đây có thể là rút quân chẳng hạn
Xây dựng lên hệ thống chịu lỗi Byzantine là một điều cần thiết, nhưng là rất khó khi đó là hê thống phân tán. Năm 1999, 2 nhà khoa học máy tính Miguel Castro và Barbara Liskov giới thiệu thuậnt toán "Practical Byzantine Fault Tolerance" (PBFT) có thể quản lý các trạng thái Byzantine với một hiệu suất cao, có thể xử lý hàng nghìn requests một giây với độ trễ cực thấp. Sau sự ra đời của PBFT, hàng loại các BFT protocols khác cũng được giới thiệu với nhiều sự cải tiến về mặt hiệu năng, và được ứng dụng rộng rãi hơn. Byzantine Fault Tolerance hiện hữu trong những hệ thống engine của máy bay, tên lửa, nhà máy hạt nhân ... những thứ cần phải đưa ra quyết định dựa vào thông tin nhận được từ rất nhiều các cảm biến khác nhau.
1.2 Khái niệm
Hình 3: Công nghệ sổ cái phân tán Blockchain
a. Bằng chứng công việc-Proof of Work (PoW)
Là một cơ chế để ngăn chặn chi tiêu kép,
được dùng như một phương pháp để bảo mật cho sổ cái.”
- Proof of Work là thuật toán đồng thuận
đầu tiên xuất hiện và cho đến nay vẫn là thuật toán thống trị. Nó được giới
thiệu bởi Satoshi Nakamoto trong sách trắng Bitcoin năm 2008, nhưng bản thân
công nghệ này đã được hình thành từ lâu trước đó
- Chi tiêu kép: xảy ra khi cùng một khoản
tiền nhưng được chi tiêu nhiều lần.
Vd: Khi bạn mua một ly coffee ở Trung
Nguyên Legend và chi trả 50 ngàn đồng, bạn trả tiền mặt cho một nhân viên thu
ngân, người có thể khóa nó vào trong sổ. Bạn không thể đến quán Ông Bầu coffee bên
kia đường và trả tiền cho một ly cà phê khác với cùng hóa đơn. Trong các cơ chế
tiền kỹ thuật số, khả năng thực thi là có thể. Bạn chỉ cần nhân bản một tập tin
máy tính trước đó - bằng cách sao chép và dán. Bạn có thể gửi cùng một tệp qua
email cho mười, hai mươi, năm mươi người.
-Trong quá khứ HashCash của Adam Back là
một ví dụ sớm về thuật toán Proof of Work trước khi sự ra đời của tiền mã hóa. Bằng
cách yêu cầu người gửi thực hiện một phép tính nhỏ trước khi gửi email, người
nhận có thể giảm thiểu thư rác.
b. Bằng chứng cổ phần-Proof of Stake (PoS)
1.3 Ứng dụng
- Công nghệ ô tô Automotive (Automotive)
- Chế tạo (Manufacturing)
- Công nghệ, truyền thông và viễn thông
(Tech, media & Telecommunications)
- Dịch vụ tài chính (Financial Services)
- Nghệ thuật & Giải trí (Art &
Recreation)
- Chăm sóc sức khỏe (Healthcare)
- Bảo hiểm (Insurance)
- Bán lẻ (Retail)
- Khu vực công (Public Sector)
- Bất động sản (Property)
- Nông nghiệp (Agricultural)
- Khai thác (Mining)
- Vận tải và Logistics (Transport & Logistics)
- Công trình hạ tầng kỹ thuật (Utility)
Không có nhận xét nào: