ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
Xây dựng ứng dụng mạng
blockchain dựa trên Ethereum
Virtual Machine và Solidity
Môn học: Đồ án 1
Giảng viên hướng dẫn: ThS. Nguyễn Thị Thanh
Trúc
Sinh viên thực hiện:
19522183 – Trương Gia Thạch
19522339 – Nguyễn Tấn Tiến
Thành phố Hồ Chí Minh, tháng 03 năm 2022
Danh mục hình ảnh
1
Danh mục bảng biểu
2
Mục lục
GIỚI THIỆU CHUNG .................................................................................................. 6
A.
1.
Tổng quan tình hình nghiên cứu .............................................................................. 6
2.
Lý do lựa chọn đề tài................................................................................................ 7
3.
Mục tiêu nghiên cứu ................................................................................................ 7
B.
BLOCKCHAIN ............................................................................................................. 8
1.
Giới thiệu ................................................................................................................. 8
2.
Tại sao cần blockchain ............................................................................................. 8
2.1.
Dữ liệu động, cần cập nhật liên tục, cần lưu trữ tất cả lịch sử trước đây ...................................... 8
2.2. Thông tin, dữ liệu cần bảo mật cực cao và bạn lo sợ mơ hình mạng có trung gian thứ ba khơng
thể đảm bảo an tồn .................................................................................................................................. 9
3.
Lịch sử Blockchain .................................................................................................. 9
4.
Kiến trúc blockchain .............................................................................................. 10
5.
Nguyên lý hoạt động của Blockchain .................................................................... 11
5.1.
Nguyên lý mã hoá ....................................................................................................................... 11
5.2.
Quy tắc của sổ cái ....................................................................................................................... 18
5.3.
Nguyên lý tạo khối ...................................................................................................................... 18
5.4.
Thuật toán bảo mật Blockchain .................................................................................................. 19
Đặc điểm ................................................................................................................ 19
6.
6.1.
Ưu điểm ...................................................................................................................................... 19
6.2.
Nhược điểm ................................................................................................................................ 20
7.
Phân loại ................................................................................................................. 20
8.
Các phiên bản ......................................................................................................... 21
9.
Cơ chế đồng thuận ................................................................................................. 22
10.
Ứng dụng Blockchain trong đời sống .................................................................... 23
10.1.
Ứng dụng trong ngành công nghiệp và dịch vụ ...................................................................... 23
10.2.
Ứng dụng trong ngành nông nghiệp, thủy hải sản .................................................................. 24
10.3.
Ứng dụng Blockchain trong xây dựng .................................................................................... 24
10.4.
Ứng dụng blockchain trong vận tải kho bãi ............................................................................ 25
10.5.
Ứng dụng trong hoạt động tài chính, ngân hàng và bảo hiểm. ............................................... 25
10.6.
Ứng dụng blockchain trong khai khoáng ................................................................................ 26
C.
ETHEREUM ............................................................................................................... 28
1.
1.1.
Giới thiệu chung ..................................................................................................... 28
Ethereum là gì ? .......................................................................................................................... 28
3
1.2.
Lịch sử ........................................................................................................................................ 28
1.3.
Ethereum Blockchain .................................................................................................................. 29
1.4.
Ethereum và Bitcoin ................................................................................................................... 30
Các khái niệm trong Ethereum .............................................................................. 30
2.
2.1.
Ether (ETH) ................................................................................................................................ 30
2.2.
Web3 ........................................................................................................................................... 31
2.3.
Ether.js ........................................................................................................................................ 32
2.4.
Accounts ..................................................................................................................................... 33
2.5.
Transactions ................................................................................................................................ 35
2.6.
Nodes .......................................................................................................................................... 36
2.7.
GAS ............................................................................................................................................ 38
2.8.
Máy ảo Ethereum (EVM) ........................................................................................................... 39
2.9.
Geth (Go ethereum ) & Mist ....................................................................................................... 41
2.10.
Hợp đồng thông minh (Smart Contract) ................................................................ 42
3.
3.1.
Smart contract là gì? ................................................................................................................... 42
3.2.
Smart contract hoạt động như thế nào? ....................................................................................... 43
3.3.
Lợi ích của smart contract........................................................................................................... 44
3.4.
Ưu nhược điểm ........................................................................................................................... 44
Ứng dụng phi tập trung (Dapps) ............................................................................ 45
4.
4.1.
Dapps là gì? ................................................................................................................................ 45
4.2.
Phân loại Dapps .......................................................................................................................... 47
4.3.
Dapps hoạt động như thế nào? .................................................................................................... 47
LẬP TRÌNH SOLIDITY ............................................................................................. 48
D.
E.
Parity ....................................................................................................................................... 42
1.
Solidity là gì? ......................................................................................................... 48
2.
Kiểu dữ liệu ............................................................................................................ 48
3.
Contract .................................................................................................................. 50
4.
Phương thức ........................................................................................................... 50
5.
Thuộc tính .............................................................................................................. 52
6.
Các cơng cụ mà Solidity cung cấp ......................................................................... 52
7.
Các trường hợp sử dụng Solidity ........................................................................... 53
8.
Ưu điểm và nhược điểm của Solidity .................................................................... 53
8.1.
Ưu điểm của Solidity .................................................................................................................. 53
8.2.
Nhược điểm của Solidity ............................................................................................................ 54
ỨNG DỤNG MINH HOẠ .......................................................................................... 55
4
1.
Giới thiệu bài toán .................................................................................................. 55
2.
Kiến trúc hệ thống .................................................................................................. 55
3.
Công nghệ sử dụng ................................................................................................ 56
KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN ............................................... 57
F.
G.
1.
Kết quả đạt được .................................................................................................... 57
2.
Hướng phát triển .................................................................................................... 57
TÀI LIỆU THAM KHẢO ........................................................................................... 58
5
A. GIỚI THIỆU CHUNG
1. Tổng quan tình hình nghiên cứu
Sự xuất hiện của hệ thống web dùng trên Internet đã hiện thực hóa việc trao đổi thơng
tin trên tồn thế giới. Trong khi đó, hệ thống blockchain lại giúp thực hiện các giao dịch trao
đổi giá trị toàn cầu trên Internet. Bởi vậy, hai hệ thống này tuy song song tồn tại nhưng lại
khác nhau về bản chất. Sau khi Satoshi Nakamoto công bố luận văn về đồng tiền ảo bitcoin
vào năm 2009, nền tảng công nghệ của bitcoin – blockchain – đã trở thành tâm điểm chú ý.
Với khởi đầu như vậy nên hiển nhiên giá trị tiền tệ của blockchain, tức là chức năng
trao đổi và tích lũy giá trị, sẽ được chú ý nhiều nhất. Nhưng từ khoảng năm 2012-2013, không
chỉ tiền kỹ thuật số, công nghệ blockchain bắt đầu được kỳ vọng có thể mạng lại thay đổi lớn
trong cách vận hành kinh doanh (không chỉ trong ngành tài chính) cũng như ứng dụng trong
lĩnh vực hành chính cơng.
Trong xu thế đó, các ứng dụng sử dụng công nghệ blockchain được phát triển ngày càng
nhiều. Các ứng dụng này không được sử dụng trên hệ thống blockchain mà cịn có khả năng
tích hợp vào các ứng dụng hiện có trên web. Điều này có nghĩa là blockchain không chỉ đơn
thuần là một công nghệ mới mà nó cịn có thể bổ trợ hoặc thay thế các cơng nghệ hiện hữu.
Vì khả năng cho phép hồn thành thanh tốn mà khơng cần bất kỳ ngân hàng hay trung
gian nào, Blockchain được dùng trong các dịch vụ tài chính khác nhau như tài sản kỹ thuật
số, chuyển tiền hay thanh tốn. Thêm vào đó, nó cịn có thể áp dụng cho các lĩnh vực khác
như hợp đồng thông minh, dịch vụ công cộng, Internet vạn vật, hệ thống danh tiếng và dịch
vụ bảo mật [8].
Sự phát triển của Internet cũng đồng hành với những tổn thất sau các cuộc tấn công
mạng, gây ảnh hưởng lớn đến nền kinh tế cũng như xã hội. Theo cuộc khảo sát của hãng phân
tích Grant Thornton, khoản tiền mà doanh nghiệp mất vào tay tin tặc ở Châu Á-Thái Bình
Dương lên tới 81,3 tỉ đơ la trong vịng 12 tháng (tính đến cuối tháng 9/2015). Mức tổn thất
từ các đợt tấn công mạng ở châu Á nhiều hơn Bắc Mỹ tới 20 tỉ USD và EU với con số tương
tự, và chiếm đến hơn 25% tổng mức tổn thất của thế giới (315 tỉ USD).... Tại Việt Nam cũng
xảy ra tình trạng mất an toàn với các tài khoản gửi ngân hàng, điển hình như vụ tấn cơng vào
Vietcombank. Tháng 2/2016, thơng tin về việc Ngân hàng Trung ương Bangladesh bị tin tặc
đánh cắp 101 triệu USD gây chấn động thế giới là một bài học cho bất cứ tổ chức nào. Sự cố
xảy ra được cho là do Ngân hàng nước này sử dụng bộ định tuyến cũ giá 10 USD mà khơng
có bất cứ một hệ thống tường lửa nào. Số tiền tổn thất trong vụ này có thể lên đến hơn 1 tỷ
USD nếu như tin tặc không viết sai lỗi chính tả.
Từ những rủi ro từ an ninh mạng nên các tổ chức tài chính cần những cơng nghệ mới,
ví dụ như nền tảng của đồng tiền số Bitcoin, chính là Blockchain, được kì vọng khơng chỉ
6
nhằm cắt giảm chi phí ngân hàng mà cịn đảm bảo tính an tồn và xa hơn nữa là cách mạng
hóa các giải pháp bảo mật.
2. Lý do lựa chọn đề tài
Khách quan:
Trong những năm gần đây, công nghệ chuỗi khối (Blockchain) đang trở thành xu hướng
“hot” trên toàn cầu và tại Việt Nam. Cơng nghệ này có tiềm năng ứng dụng to lớn trong các
ngành từ dịch vụ tài chính, sản xuất và khu vực cơng cho đến chuỗi cung ứng, giáo dục và
năng lượng[9]. Trong đó, Ethereum là nền tảng điện toán phân tán, mã nguồn mở dựa trên
cơng nghệ chuỗi khối (Blockchain) là chuỗi khối có thể lập trình hàng đầu thế giới. Các nhà
phát triển có thể sử dụng nó để xây dựng các loại ứng dụng mới.
Chủ quan:
Trong suốt q trình học tập, nhóm chúng em muốn được trải nghiệm các đề tài khác nhau
và hoạt động trên nhiều nền tảng. Cảm thấy hứng thú và muốn tìm hiểu cơng nghệ
Blockchain nên nhóm em đã lựa chọn tìm hiểu về blockchain và cụ thể là Ethereum và
Solidity, nghiên cứu, ứng dụng công nghệ Blockchain trong việc thực hiện các giao dịch.
3. Mục tiêu nghiên cứu
Mục tiêu của đồ án này là có một cái nhìn tổng quan về công nghệ BlockChain, biết
được các nền tảng lý thuyết và các kỹ thuật chính sử dụng trong BlockChain, đặc biệt là ứng
dụng của hợp đồng thông minh trong cơng nghệ này. Bên cạnh đó hiểu được Ethereum là
nền tảng BlockChain đã và đang rất phổ biến và có được ứng dụng minh họa.
7
B. BLOCKCHAIN
1. Giới thiệu
Theo ấn bản “Mastering Bitcoin” của tác giả Antonopoulos, Blockchain được định
nghĩa là công nghệ lưu trữ và truyền tải thông tin bằng các khối (block) được liên kết với
nhau và mở rộng theo thời gian, do đó được gọi là chuỗi khối (blockchain). Mỗi block chứa
đựng các thông tin về thời gian khởi tạo, các thông tin giao dịch và được liên kết với các khối
trước đó thơng qua thơng tin hàm băm (hash) [19]. Block cũng được định nghĩa như một cấu
trúc dữ liệu, là một danh sách liên kết sử dụng hàm băm con trỏ thay vì các con trỏ thơng
thường. Hàm băm con trỏ này được sử dụng để trỏ tới khối trước đó.
Hình 1 Blockchain
Cụ thể hơn, một blockchain là một chuỗi tuyến tính gồm nhiều khối được kết nối và
được bảo đảm bằng các bằng chứng mật mã. Một blockchain thường được xây dựng như một
hệ thống phân tán có chức năng như một sổ cái phi tập trung. Điều này có nghĩa là có nhiều
bản sổ cái (phân tán) và khơng có tổ chức nào nắm quyền kiểm sốt duy nhất (phi tập trung).
Nói một cách đơn giản, mỗi người dùng tham gia vào mạng blockchain sẽ giữ một bản sao
điện tử của dữ liệu blockchain. Dữ liệu khi đã được mạng lưới chấp nhận thì sẽ khơng có
cách nào thay đổi được. Dữ liệu blockchain được cập nhật thường xuyên tất cả các giao dịch
mới nhất và đồng bộ với bản sao của người dùng.
Nói cách khác, một hệ thống phân tán được duy trì bởi cơng việc tập thể của nhiều
người dùng trên khắp thế giới. Những người dùng này còn được gọi là các node mạng, và tất
cả các node này đều tham gia vào quá trình xác minh và xác thực giao dịch theo các quy tắc
của hệ thống. Do đó, quyền lực là phi tập trung. Cơng nghệ Blockchain cũng có thể được áp
dụng trong các lĩnh vực khác khơng nhất thiết phải có các hoạt động tài chính. Trong bối
cảnh tiền điện tử, blockchain có vai trị lưu giữ hồ sơ vĩnh viễn của tất cả các giao dịch đã
được xác nhận.
2. Tại sao cần blockchain
2.1. Dữ liệu động, cần cập nhật liên tục, cần lưu trữ tất cả lịch sử trước đây
Tài liệu giấy khó có thể bị giả mạo bởi vì tính phức tạp của con dấu hoặc dấu ấn xuất bản khơng
thể nhầm lẫn. Như khắc thứ gì đó lên đá, các tài liệu giấy có thời gian tồn tại nhất định.
8
Nhưng nếu dữ liệu phải lưu thông liên tục, nếu giao dịch xảy ra thường xuyên và liên tục, thì việc
dùng tài liệu bằng giấy khó có thể giúp hệ thống lưu trữ dữ liệu dễ dàng. Vì cơng việc nhập liệu thủ
công vẫn bị hạn chế về nguồn nhân lực.
Do đó, nếu dữ liệu và thơng tin lưu trữ trước đây của nó cần thiết trong các mối quan hệ số mà
dữ liệu tạo nên, thì blockchain sẽ giúp lưu trữ linh hoạt hơn nhiều bằng cách cho phép nhiều bên
khác nhau cùng nhập liệu vào hệ thống lưu trữ và hệ thống này được nhiều phía cùng bảo quản.
2.2. Thông tin, dữ liệu cần bảo mật cực cao và bạn lo sợ mơ hình mạng có trung
gian thứ ba khơng thể đảm bảo an tồn
Chúng ta vẫn cần một bên thứ ba chịu trách nhiệm cho việc xác thực và ủy quyền giao dịch theo
nhiều lý do. Trong rất nhiều hoàn cảnh, việc để cho bên thứ ba kiểm sốt là quyết định đúng đắn và
hồn tồn phù hợp. Nếu dữ liệu phải được bảo mật cực kỳ cao, thì vẫn có cách là khơng cần kết nối
vào mạng lưới.
Nhưng nếu cơ sở hạ tầng IT có quá nhiều tài khoản và đăng nhập không đủ để đảm bảo cho việc
nhận dạng số, thì khi đó cơng nghệ blockchain có thể giải quyết được vấn đền này.
Khi Satoshi Nakamoto viết bản white paper thần thánh “Bitcoin: Một hệ thống tiền điện tử Peer – to
– Peer”[16], có nói rằng:
“Doanh nghiệp phải lưu ý khách hàng của mình cần cẩn thận, họ đã gửi đi nhiều thông tin hơn cần
thiết. Chúng ta sẽ phải chấp nhận một tỷ lệ phần trăm gian lận.”
Private key được mã hóa giúp các giao dịch chuyển đi không cần đến hệ thống tập trung và tài khoản
phức tạp để tạo mối quan hệ số. Nếu cơ sở dữ liệu này yêu cầu hàng triệu đơ la để bảo mật các giao
dịch tài chính, thì đó là cơ hội cho blockchain.
3. Lịch sử Blockchain
Ý tưởng đằng sau công nghệ blockchain được mô tả ngay từ năm 1991 khi các nhà
nghiên cứu Stuart Haber và W. Scott Stornetta giới thiệu một giải pháp thực tế về mặt tính
tốn để đánh dấu thời gian các văn bản số để chúng không bị đề lùi ngày về trước hoặc can
thiệp vào[20]. Hệ thống đã sử dụng một chuỗi gồm các khối được bảo mật bằng mật mã để
lưu trữ các văn bản được đánh dấu thời gian, và năm 1992, các cây Merkle đã được tích hợp
vào thiết kế, khiến nó trở nên hiệu quả hơn bằng cách cho phép một khối có thể tập hợp một
vài văn bản. Tuy nhiên, công nghệ này đã không được sử dụng và bằng sáng chế đã hết hạn
vào năm 2004, bốn năm trước khi Bitcoin ra đời.
Năm 2004, nhà khoa học máy tính và người theo chủ nghĩa mật mã Hal Finney (Harold
Thomas Finney II) đưa ra một hệ thống gọi là RPoW, Proof Of Work Tái sử dụng. Hệ thống
hoạt động bằng cách nhận một Hashcash không thể thay đổi hoặc không thể thay thế dựa trên
token proof of work, và đổi lại đã tạo ra một token đã được ký RSA mà sau đó có thể được
trao đổi trực tiếp từ người này sang người khác. RPoW đã giải quyết vấn đề vì tiêu dùng hai
lần bằng cách lưu giữ quyền sở hữu các token đã đăng ký trên một máy chủ đáng tin cậy;
9
máy chủ này được thiết kế để cho phép người dùng trên tồn thế giới xác minh tính chính
xác và liêm chính trong thời gian thực. RPoW có thể được xem là một thử nghiệm ban đầu
và là những bước đầu tiên quan trọng trong lịch sử tiền điện tử.
Vào cuối năm 2008, cuốn sách trắng giới thiệu về hệ thống tiền mặt điện tử mạng ngang
hàng, phi tập trung – tên là Bitcoin – đã được đăng trên danh sách nhận thư về mật mã học
bởi một người hoặc tổ chức lấy biệt danh là Satoshi Nakamoto [16]. Dựa trên thuật tốn proof
of work Hashcash, nhưng thay vì sử dụng một hàm tính tốn dựa trên phần cứng như RPoW,
tính năng chống chi tiêu hai lần trong Bitcoin được cung cấp bởi một giao thức mạng ngang
hàng để theo dõi và xác thực các giao dịch. Nói ngắn gọn, các thợ đào “đào” Bitcoin để nhận
phần thưởng bằng cách sử dụng cơ chế proof-of-work và sau đó xác minh bằng các node phi
tập trung trong mạng. Vào ngày 3 tháng 1 năm 2009, Bitcoin ra đời khi Satoshi Nakamoto
đào được khối bitcoin đầu tiên, đem lại phần thưởng 50 bitcoin. Người nhận Bitcoin đầu tiên
là Hal Finney, ông ta nhận được 10 bitcoin từ Satoshi Nakamoto trong giao dịch bitcoin đầu
tiên của thế giới vào ngày 12 tháng 1 năm 2009.
Hình 2 Trong "Khối Nguyên Thủy", Satoshi Nakamoto để lại một thông điệp: "Tờ Times, ngày 03/01/2009, Thủ tướng đứng bên bờ
vực phải viện trợ ngân hàng lần thứ hai"[21].
4. Kiến trúc blockchain
Một khối block sẽ được lưu trữ gồm 3 phần:
• Thành phần dữ liệu (Data): dữ liệu sẽ tùy thuộc vào từng loại blockchain. Chẳng
hạn như Blockchain của Bitcoin sẽ chứa giao dịch.
• Thành phần mã hóa (Hash): Hash của khối hiện tại như một đặc điểm để nhận
dạng. Nó là duy nhất và khơng trùng nhau giống như vân tay của chúng ta vậy.
• Thành phần mã hóa của node trước (Hash of previous block): các block này kết
nối với nhau thông qua mã hash của khối block trước tạo thành một chuỗi hệ thống
được gọi là Blockchain
10
Hình 3 Nội dung trong mỗi khối
5. Nguyên lý hoạt động của Blockchain
5.1. Nguyên lý mã hoá
Hệ thống Blockchain được thiết kế theo cách không yêu cầu sự tin cậy và bảo đảm bởi
độ tin cậy có được thơng qua các hàm mã hóa tốn học đặc biệt..
5.1.1. Cryptography
- Cryptography
Cryptography là một phương pháp phát triển các kỹ thuật và giao thức để ngăn chặn
bên thứ ba truy cập và thu thập kiến thức về dữ liệu từ các thông điệp riêng tư trong quá trình
giao tiếp. Mật mã cũng được tạo thành từ hai thuật ngữ Hy Lạp cổ đại, Kryptos và Graphein,
thuật ngữ trước đây có nghĩa là "ẩn" và sau là "viết". Có một số thuật ngữ liên quan đến mật
mã, được nêu như sau:
Encryption: Nó là một quá trình chuyển từ bản rõ (văn bản bình thường) sang bản mã
(chuỗi bit ngẫu nhiên).
Decryption: Quá trình ngược mã hóa, chuyển đổi bản mã sang bản rõ.
Cipher: Hàm toán học, tức là một thuật toán mật mã được sử dụng để chuyển bản rõ
sang bản mã.
Key: Một lượng nhỏ thông tin được yêu cầu để tạo ra kết quả của thuật toán mật mã.
- Các loại Cryptography
11
Để hiểu cryptography trong blockchain , người ta phải hiểu các loại mật mã. Có ba cách
khác nhau mà chúng ta có thể thực hiện các thuật tốn mật mã, đó là mật mã khóa đối xứng,
mật mã khóa bất đối xứng và hàm băm.
- Symmetric-Key Cryptography: Trong phương pháp mã hóa này, ta đưa một khóa duy
nhất, tuy nhiên một khóa đơn chung sẽ tạo ra vấn đề chuyển khóa an tồn giữa người gửi và
người nhận. Nó cịn được gọi là Mật mã khóa bí mật.
- Asymmetric-Key Cryptography: Phương pháp mã hóa này sử dụng một cặp khóa,
khóa mã hóa và khóa giải mã, được đặt tên lần lượt là khóa cơng khai và khóa riêng. Cặp
khóa được tạo bởi thuật tốn này bao gồm một khóa riêng tư và một khóa cơng khai duy nhất
được tạo bằng cùng một thuật tốn. Nó cịn được gọi là Mật mã khóa cơng khai.
- Hash Functions: Loại mã hóa này khơng sử dụng khóa. Nó sử dụng một mật mã để
tạo ra một giá trị băm có độ dài cố định từ bản rõ. Gần như không thể khôi phục nội dung
của văn bản thuần túy từ bản mã.
Hình 4 Cryptography
5.1.2.
Hàm băm và tầm quan trọng
- Hàm băm
12
Băm là quá trình chuyển đổi đầu vào gồm các chữ cái và ký tự có kích thước khơng cố
định để tạo đầu ra có kích thước cố định; bằng cách sử dụng các cơng thức tốn học như các
hàm băm (được thực hiện dưới dạng các thuật toán băm) và rất cần thiết để quản lý blockchain
trong tiền điện tử.
Không phải hàm băm nào cũng sử dụng mật mã hóa, tuy nhiên cái gọi là hàm băm mật
mã hóa chính là cốt lõi của tiền mã hóa. Nhờ chúng mà blockchain và các hệ thống phân tán
khác có thể đạt được tính tồn vẹn và bảo mật của dữ liệu ở mức độ cao. Vì tính thơng dụng
của bảng băm, ngày nay, đa số ngơn ngữ lập trình đều cung cấp thư viện ứng dụng bảng băm,
thường gọi là thư viện collection trong đó có các vấn đề như: tập hợp (collection), danh sách
(list), bảng(table), ánh xạ (mapping), từ điển (dictionary). Thơng thường, các lập trình viên
chỉ cần viết hàm băm cho các đối tượng nhằm tích hợp với thư viện bảng băm đã được xây
dựng sẵn.
SHA 256 : kết quả đầu vào bất kỳ cho ra kết quả đầu ra là 256 bit gồm 64 ký tự. Nó
được sử dụng ở mạng Bitcoin.
SHA 3 (Keccak-256): được sử dụng mạng Ethereum
Điều kiện của 1 hàm băm tốt:
✔
Tính tốn nhanh.
✔
Các khố được phân bố đều trong bảng.
✔
Ít xảy ra đụng độ.
✔
Xử lý được các loại khóa có kiểu dữ liệu khác nhau.
Hình 2.7. Hashing
13
- Tầm quan trọng của hàm băm
Các hàm băm truyền thống có nhiều trường hợp sử dụng, bao gồm tra cứu cơ sở dữ liệu,
phân tích tệp lớn và quản lý dữ liệu. Mặt khác, các hàm băm mật mã còn được sử dụng rộng
rãi trong các ứng dụng bảo mật thông tin, chẳng hạn như xác thực thông điệp và dấu vân tay
kỹ thuật số. Khi được sử dụng trong Bitcoin, các hàm băm mật mã là một phần thiết yếu của
q trình đào và cũng góp phần tạo ra các địa chỉ và khóa mới.
Băm thật sự là một công cụ mạnh mẽ khi cần xử lý một lượng thơng tin lớn. Ví dụ,
chúng ta có thể chạy một tệp hoặc tập dữ liệu lớn thông qua hàm băm và sau đó sử dụng kết
quả đầu ra từ của nó để nhanh chóng xác minh tính chính xác và tính tồn vẹn của dữ liệu.
Điều này là có thể bởi vì tính chất tất định của các hàm băm: đầu vào sẽ luôn dẫn đến một
đầu ra ngắn gọn, đơn giản hóa (băm). Nhờ vào kỹ thuật này, sẽ khơng cịn phải lưu trữ và
“ghi nhớ” một lượng thơng tin lớn nữa.
Băm là quy trình đặc biệt hữu ích trong cơng nghệ blockchain. Blockchain Bitcoin có
một số hoạt động sử dụng quy trình băm, hầu hết các hoạt động đó là trong q trình đào.
Trên thực tế, gần như tất cả các giao thức tiền mã hóa đều dựa vào băm để liên kết và rút gọn
các nhóm giao dịch thành các khối và cũng để tạo ra các liên kết mật mã giữa mỗi khối, tạo
ra một blockchain một cách hiệu quả.
5.1.3. Chữ kí số
Chữ kí số là sự kết hợp của kĩ thuật hashing với asymmetric encryption. Message đầu
vào, trước tiên sẽ được hash, và sau đó thì được mã hóa tiếp với private key của người gửi.
Đầu ra sẽ là chứ kí, được gửi kèm với message.
Bên nhận sẽ sử dụng public key được bên gửi cung cấp đề decrypt ra mã hash của chữ
kí, và sau đó message cũng lại được hash để so sánh với chuỗi vừa decrypt kia. Trong
trường hợp ta biết chắc public key là chính xác (là key chuẩn do bên gửi tạo ra), và việc
decrypt thành cơng, vậy thì ta có thể đảm bảo message vừa nhận được chính xác là message
do bên gửi đưa tới. Và nếu mã hash lấy được khớp với mã hash khi ta hashing message, vậy
ta có thể đảm bảo tiếp sự tồn vẹn của message.
Để có thể thực hiện các giao dịch trên blockchain, bạn cần một ví tiền điện tử, đây là
một chương trình phần mềm sẽ cho phép bạn lưu trữ và trao đổi các đồng Bitcoin của bạn.
Vì chỉ có bạn mới có thể chi tiêu các đồng Bitcoin của mình do vậy mỗi chiếc ví tiền điện tử
này được bảo vệ bằng một phương pháp mã hóa đặc biệt sử dụng một cặp khóa bảo mật duy
nhất: khóa riêng tư (private key) và khóa cơng khai (public key).
Nếu một thơng điệp được mã hóa bằng một khóa cơng khai cụ thể thì chỉ chủ sở hữu
của khóa riêng tư là một cặp với khóa cơng khai này mới có thể giải mã và đọc nội dung
thông điệp. Khi David muốn gửi Bitcoin, anh ta cần phát một thông điệp được mã hóa bằng
khóa riêng của ví điện tử của mình, vì thế anh ta chỉ có thể dùng Bitcoin mà anh ta sở hữu vì
David là người duy nhất biết khóa riêng tư của anh cần thiết để mở ví điện tử của mình. Mỗi
nút trong mạng có thể kiểm tra chéo các yêu cầu giao dịch được gửi từ David là chính xác
14
hay không bằng cách giải mã thông điệp yêu cầu giao dịch bằng khóa cơng khai của David.
Hình 5 Digital Signature transaction encryption simplified [22]
5.1.4. Merkle Tree and Merkle Root
- Câu chuyện về Merkle Tree bắt đầu từ năm 1979 với một thanh niên tên Ralph Merkle.
Khi còn 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ói cách khác, anh ta đã 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.
- Ý tưởng của Merkle, hiện được biết đến với tên Merkle Tree, đã cách mạng hóa thế
giới mã hóa bằng cách mở rộng cách thức mà giao thức máy tính mã hóa hoạt động. Trên
thực tế, Merkle Tree được nhắc đến nhiều lần trong bài luận năm 2008 của Satoshi Nakamoto
để giới thiệu Bitcoin với thế giới. Chúng cũng được sử dụng rộng rãi trong mã Bitcoin.
15
- Vậy, Merkle Tree là gì? Hiểu một cách đơn giản, Merkle Tree là một phương pháp
cấu trúc dữ liệu cho phép một khối lượng lớn thông tin được xác minh tính chính xác cực kỳ
nhanh chóng và hiệu quả.
- Bây giờ ta xem xét nó trên blockchain. Đầu tiên, điều quan trọng cần lưu ý là mỗi giao
dịch trên một blockchain có ID giao dịch là duy nhất. Với hầu hết các blockchain, mỗi ID
giao dịch là một mã 64 ký tự chiếm 256 bit (32 byte) bộ nhớ.
- Các blockchain thường được tạo thành từ hàng trăm nghìn khối, mỗi khối chứa tới vài
nghìn giao dịch, bạn có thể tưởng tượng không gian bộ nhớ trở thành vấn đề như thế nào. Do
đó, nó tối ưu hóa để sử dụng càng ít dữ liệu càng tốt khi xử lý và xác minh giao dịch. Điều
này giảm thiểu thời gian xử lý CPU đồng thời đảm bảo mức độ bảo mật cao nhất.
- Đó chính xác là những gì Merkle Tree làm. Một cách đơn giản, Merkle Tree lấy một
số lượng lớn ID giao dịch và đưa chúng qua một quy trình tốn học dẫn đến một mã 64 ký
tự.
- Mã này cực kỳ quan trọng vì nó cho phép bất kỳ máy tính nào nhanh chóng xác minh
rằng một giao dịch xác định đã diễn ra trên một khối cụ thể một cách hiệu quả nhất có thể.
Mã này được gọi là Merkle Root (Rễ Merkle).
- Mã duy nhất mà Merkle Tree tạo ra được gọi là Merkle Root. Mỗi khối trong một
blockchain có duy nhất chỉ một Merkle Root. Merkle Root là một phần dữ liệu quan trọng vì
nó cho phép các máy tính xác minh thơng tin với tốc độ và hiệu quả đáng kinh ngạc.
- Tìm hiểu sâu hơn một chút để hiểu Merkle Root được tạo ra như thế nào? Bước đầu
tiên là tổ chức tất cả các dữ liệu đầu vào.
16
- Merkle Tree, theo thiết kế, ln nhóm tất cả các đầu vào thành cặp. Nếu có một số
lượng đầu vào lẻ, đầu vào cuối cùng được sao chép và sau đó được ghép nối với chính nó.
Điều này đúng với tất cả các ID giao dịch được viết trên một khối của blockchain.
- Chẳng hạn, giả sử rằng một khối duy nhất chứa tổng số 512 giao dịch. Merkle Tree sẽ
bắt đầu bằng cách nhóm 512 ID giao dịch đó thành 256 cặp. Sau đó, 256 cặp ID giao dịch đó
sẽ trải qua một q trình tốn học, được gọi là băm hoặc thuật toán băm, sẽ tạo ra 256 mã
chữ và số 64 ký tự mới.
Q trình chính xác tương tự sẽ xảy ra một lần nữa. 256 mã mới đó sẽ được ghép nối
và biến thành 128 mã. Quá trình sẽ được lặp lại, cắt giảm một nửa số mã mỗi lần, cho đến
khi chỉ còn lại một mã. Mã duy nhất đó là Merkle Root (Merkle Root). Gốc Merkle của một
khối nhất định được lưu trữ trong tiêu đề: Ví dụ, gốc Merkle của khối #482819
là e045b18e7a3d708d686717b4f44db2099aabcad9bebf968de5f7271b458f71c8.
Gốc Merkle được kết hợp với các thông tin khác (phiên bản phần mềm, hàm băm của khối
trước, dấu thời gian (timestamp), mục tiêu độ khó và số được sử dụng một lần (nonce)) và
sau đó chạy qua hàm băm để tạo ra hàm băm duy nhất của khối:
000000000000000000bfc767ef8bf28c42cbd4bdbafd9aa1b5c3c33c2b089594 (kết quả trong
trường hợp của khối #482819). Hàm băm này không thực sự được bao gồm trong khối có
liên quan mà là của khối tiếp theo; nó dễ nhận thấy từ gốc Merkle.
17
- Cây Merkle rất hữu ích vì nó cho phép người dùng xác minh một giao dịch cụ thể mà
không cần tải xuống toàn bộ blockchain (hơn 130 gigabyte vào cuối tháng 8 năm 2017). Ví
dụ: giả sử bạn muốn xác minh rằng TD giao dịch được bao gồm trong khối trong sơ đồ trên,
"T" là một giao dịch, "H" là một hàm băm. Lưu ý rằng hình ảnh này đã được đơn giản hóa
cao; một khối trung bình chứa hơn 500 giao dịch, không phải là 8 giao dịch. Nếu bạn có hàm
băm gốc (HABCDEFGH), q trình này giống như một trò chơi của sudoku: bạn truy vấn mạng
về HD và nó trả về HC, HAB và HEFGH. Cây Merkle cho phép bạn xác minh rằng tất cả mọi thứ
được tính bằng ba giá trị băm: HAB, HC, HEFGH và HABCDEFGH, HD gốc (hàm băm duy nhất bị
thiếu) phải có trong dữ liệu.
5.2. Quy tắc của sổ cái
Mỗi nút trong blockchain đều đang lưu giữ một bản sao của cuốn sổ cái công khai. Do
vậy, mỗi nút đều biết số dư tài khoản cũng như các giao dịch đã thực hiện của các địa chỉ.
Hệ thống blockchain chỉ ghi lại mỗi giao dịch được yêu cầu chứ không hề theo dõi số dư tài
khoản.
5.3. Nguyên lý tạo khối
Đầu tiên, người dùng sẽ bắt đầu một giao dịch và ký kết bằng khóa riêng(private key)
của nó. Khóa riêng về cơ bản sẽ tạo ra một chữ ký số duy nhất và đảm bảo rằng khơng ai có
thể thay đổi nó. Và nếu có bất cứ ai cố gắng thay đổi thơng tin giao dịch thì chữ ký số sẽ tự
thay đổi và khơng thể xác minh nó và sau đó bị loại bỏ. [11]
Các giao dịch sau khi được gửi lên trên mạng lưới blockchain sẽ được nhóm vào các
khối và các giao dịch trong cùng 1 khối (block) được coi là đã xảy ra cùng thời điểm. Các
giao dịch chưa được thực hiện trong 1 khối được coi là chưa được xác nhận.
Mỗi nút (node) có thể nhóm các giao dịch với nhau thành một khối và gửi nó vào mạng
lưới như một hàm ý cho các khối tiếp theo được gắn vào sau đó.
Để được thêm vào blockchain, mỗi khối phải chứa một đoạn mã đóng vai trị như một
đáp án cho một vấn đề toán học phức tạp được tạo ra bằng hàm mã hóa băm khơng thể đảo
ngược.
Cách duy nhất để giải quyết vấn đề toán học như vậy là đoán các số ngẫu nhiên, những
số khi mà kết hợp với nội dung khối trước tạo ra một kết quả đã được hệ thống định nghĩa.
Điều này nhiều khi có thể mất khoảng một năm cho một máy tính điển hình với một cấu hình
cơ bản có thể đốn đúng các con số đáp án của vấn đề tốn học này. Khi nút đầu tiên tìm ra
kết quả thì các nút cịn lại kiểm tra kết quả đó và nếu hơn 1 nửa số node cơng nhận là đúng
thì GD được thơng qua. Nút tìm được kết quả đúng sẽ được trả công bằng coin.
18
5.4. Thuật tốn bảo mật Blockchain
Nếu có bất kỳ sự bất đồng về khối đại diện sau cùng của chuỗi thì điều này sẽ dẫn đến
khả năng gian lận. Nếu một giao dịch xảy ra trong 1 khối thuộc về đuôi ngắn hơn khi khối
tiếp theo được giải quyết, giao dịch đó sẽ trở lại thành giao dịch chưa được xác nhận vì tất cả
các giao dịch khác được nhóm vào trong khối kia.
Mỗi block chứa một tham chiếu đến khối trước đó, và tham chiếu đó là một phần của
vấn đề toán học cần được giải quyết để truyền khối sau tới mạng lưới. Vì vậy, rất khó để tính
tốn trước một loạt các block bởi nó cần tính ra một số lượng lớn các số ngẫu nhiên cần thiết
để giải quyết một khối và đặt nó trên blockchain.
Các giao dịch trong mạng lưới blockchain của bitcoin được bảo vệ bởi một cuộc chạy
đua tính tốn tốn học: với bất kỳ kẻ tấn công nào muốn cạnh tranh với tồn bộ mạng lưới.
Do đó, giao dịch ngày càng an toàn hơn theo thời gian. Và những khối đã được thêm
vào chuỗi trong quá khứ bao giờ cũng an toàn hơn so với những khối mới được thêm vào.
Bởi một block được thêm vào chuỗi trung bình cứ 10p một lần cho nên trong khoảng 1h kể
từ khi giao dịch được nhóm vào trong khối đầu tiên của nó sẽ tạo ra một xác suất khá cao
rằng giao dịch đã được xử lý và không thể đảo ngược.
6. Đặc điểm
6.1. Ưu điểm
Cơng nghệ Blockchain (Blockchain technology) đóng vai trị giống như một cuốn sổ
cái ghi lại tất cả các giao dịch xảy ra trong hệ thống. Các đặc điểm chính của blockchain có
thể kể đến như:
•
Khơng thể làm giả, khơng thể phá hủy các chuỗi blockchain: Các chuỗi
Blockchain gần như không thể bị phá hủy được, và theo lý thuyết thì chỉ có máy
tính lượng tử mới có thể can thiệp vào và giải mã chuỗi blockchain và nó chỉ bị
phá hủy hồn tồn khi khơng cịn internet trên tồn cầu
•
Bất biến: Dữ liệu trong blockchan gần như khơng thể sửa đổi được (chỉ có thể
sửa đổi được bởi chính người đã tạo ra nó, nhưng phải được sự đồng thuận của
các nút trên mạng) . Mỗi node trong mạng có khả năng sao chép và lưu trữ một
bản sao của cơ sở dữ liệu nên dữ liệu sẽ không bị mất mà vẫn được bảo tồn.
•
Bảo mật Dữ liệu: Các thông tin, dữ liệu trong các chuỗi blockchain được phân
tán và an tồn tuyệt đối chỉ có người nắm giữ private key mới có quyền truy xuất
dữ liệu đó
•
Minh bạch: Ai cũng có thể theo dõi được đường đi của dữ liệu trong blockchain
từ địa chỉ này tới địa chỉ khác và có thể thống kê tồn bộ lịch sử trên địa chỉ đó.
•
Hợp đồng thơng minh: là các kỹ thuật số được nhúng bởi một đoạn code if-thisthen-that (IFTTT) trong hệ thống, cho phép chúng tự thực thi mà không cần bên
thứ ba. Blockchain không cần bên thứ ba tham gia vào hệ thống, và nó bảo đảm
19
rằng tất cả các bên tham gia đều biết được chi tiết hợp đồng và các điều khoản
sẽ được tự động thực hiện một khi các điều kiện được bảo đảm.
6.2. Nhược điểm
− Tấn cơng 51%: Blockchain có tính an tồn cao tuy nhiên vẫn có thể bị tấn cơng, trong
đó đặc biệt được nhắc tới nhiều là tấn cơng 51%. Cuộc tấn cơng như vậy sẽ xảy ra nếu
có một đơn vị kiểm soát hơn 50% sức mạnh của mạng lưới. Điều này sẽ cho phép đơn
vị này phá vỡ mạng lưới bằng cách cố ý ngăn chặn hoặc sửa đổi việc đặt các giao dịch.
− Rất khó sửa đổi dữ liệu: Một khi dữ liệu đã được thêm vào Blockchain thì việc sửa
đổi là rất khó. Việc thay đổi dữ liệu hoặc mã Blockchain thường rất phức tạp và thường
cần có một hard fork (trong đó một chuỗi sẽ bị bỏ và một chuỗi mới được đưa lên).
− Chìa khóa cá nhân: Người dùng cần chìa khóa cá nhân để truy cập vào block của họ,
nghĩa là tự họ đóng vai trị như một ngân hàng tự giữ tiền. Nếu người dùng mất chìa
khóa cá nhân, tiền sẽ bị mất và khơng thể mở khóa để lấy lại.
− Rất tốn điện: Quy trình này sử dụng rất nhiều điện. Vì mỗi Blockchain đã sao chép
chính mình đến mọi nút trên Blockchain nên đã tạo ra một số lượng lớn những sự dư
thừa.
− Hiệu suât: Blockchain sẽ luôn chậm hơn so với các cơ sở dữ liệu tập trung. Khi một
giao dịch được xử lý một blockchain cần được xử lý độc lập bởi mọi node trong
mạng lưới, xác nhận chữ ký và cần đạt được sự đồng thuận giữa các node trong
mạng.
7. Phân loại
20
Hình 6 Phân loại blockchain
Trong hệ thống Blockchain chia thành 4 loại chính gồm: Public, Private, Permissioned
và Hybrid Blockchain [13]
Public: Đây là hệ thống blockchain mà bất kỳ ai cũng có quyền đọc và ghi dữ liệu trên
Blockchain được. Quá trình xác thực giao dịch trên Blockchain này địi hỏi phải có hàng
nghìn hay thậm chí là hàng vạn nút tham gia. Do đó để tấn cơng vào hệ thống Blockchain
này là điều bất khả thi vì chi phí rất cao. Ví dụ về public blockchain: Bitcoin, Ethereum…
Private: Đây là hệ thống blockchain cho phép người dùng chỉ được quyền đọc dữ liệu,
khơng có quyền ghi vì điều này thuộc về một bên thứ ba tuyệt đối tin cậy. Bên thứ ba này có
thể hoặc khơng cho phép người dùng đọc dữ liệu trong một số trường hợp. Bên thứ ba tồn
quyền quyết định mọi thay đổi trên Blockchain. Vì đây là một Private Blockchain, cho nên
thời gian xác nhận giao dịch khá nhanh vì chỉ cần một lượng nhỏ thiết bị tham gia xác thực
giao dịch. Ví dụ: Ripple là một dạng Private Blockchain, hệ thống này cho phép 20% các nút
là gian dối và chỉ cần 80% còn lại hoạt động ổn định là được.
Permissioned: Hay còn gọi là Consortium, là một dạng của Private Blockchain nhưng
bổ sung thêm một số tính năng nhất định, kết hợp giữa “niềm tin” khi tham gia vào Public và
“niềm tin tuyệt đối” khi tham gia vào Private. Ví dụ: Các ngân hàng hay tổ chức tài chính
liên doanh sẽ sử dụng Blockchain cho riêng mình.
Hybrid: Đây là blockchain kết hợp các đặc điểm giữa private và public blockchain.
Đảm bảo ẩn danh trong khi vẫn được liên kết với mạng công cộng. Nó hoạt động trong một
hệ sinh thái khép kín và cũng bảo vệ quyền riêng tư nhưng cho phép giao tiếp với bên thứ
ba.
8. Các phiên bản
21
Hiện tại thì cơng nghệ blockchain có 3 phiên bản chính gồm:
Blockchain 1.0 – Tiền tệ và Thanh tốn: Là phiên bản sơ khai và đầu tiên của
blockchain, ưng dụng chính của phiên bản này là các cơng việc liên quan đến tiền mã hoá:
bao gồm việc chuyển đổi tiền tệ, kiều hối và tạo lập hệ thống thanh toán kỹ thuật số. Đây
cũng là lĩnh vực quen thuộc với rất nhiều ngườt nhất, đôi khi khá nhiều người lầm tưởng
Bitcoin và Blockchain là một.
Blockchain 2.0 – Tài chính và Thị trường: Đây là phiên bản thứ 2 của blockchain. Các
vấn đề xảy ra với Bitcoin là khải thác quá lãng phí và thiếu khả năng mở rộng mạng lưới.Với
ứng dụng của blockchain 2.0 là xử lý tài chính và ngân hàng: mở rộng quy mơ của
Blockchain, đưa blockchain tích hợp vào các ứng dụng tài chính và thị trường. Các tài sản
bao gồm cổ phiếu, chi phiếu, nợ, quyền sở hữu và bất kỳ điều gì có liên quan đến thỏa thuận
hay hợp đồng. Ethereum ra đời và tạo ra sự khác biệt hơn so với bitcoin đó là vẫn giữ đầy đủ
tính chất của hệ thống trao đổi tài sản số nhưng thêm 1 tính năng mới đó là cho phép tự thực
thi (smart contract).
Blockchain 3.0 – Thiết kế và Giám sát hoạt động: Hiện tại đây đang là phiên bản cao
nhất của blockchain, với phiên bản này, công nghệ Blockchain sẽ vượt khỏi biên giới chỉ
phục vụ cho lĩnh vực tài chính, và đi vào các lĩnh vực khác như giáo dục, chính phủ, y tế và
nghệ thuật… Blockchain thế hệ thứ 3 kế thừa khái niệm của 2 thế hệ trước và đưa thêm một
khả năng mới đó là ứng dụng phân tán (Dapp viết tắt của decentralized application)[28]
Dapps được sử dụng lưu trữ phi tập trung và cơng khai, mã của nó chạy trên một mạng ngang
hàng (Peer-to-Peer). Một Dapps có thể có giao diện người dùng được lưu trữ trên các kho
lưu trữ phi tập trung và có thể được viết bằng bất kỳ ngôn ngữ nào.
9. Cơ chế đồng thuận
Cơ chế đồng thuận trong Blockchain có thể hiểu như cách thức mà mọi người quản lý
trong hệ thống blockchain có thể đồng ý cho một giao dịch xảy ra trong hệ thống. Dưới đây
là các loại cơ chế đồng thuận phổ biến trong blockchain:
Proof of Work (Bằng chứng Công việc): Đây là cơ chế đồng thuận phổ biến nhất, được
dùng trong Bitcoin, Ethereum, Litecoin, Dogecoin và hầu hết các loại tiền mã hoá. Đây là cơ
chế đồng thuận tiêu tốn khá nhiều điện năng.
Proof of Stake (Bằng chứng Cổ phần): Đây là cơ chế đồng thuận phổ biến trong Decred,
Peercoin và trong tương lai là Ethereum và nhiều loại tiền mã hoá khác. Cơ chế đồng thuận
này phân cấp hơn, tiêu hao ít năng lượng và khơng dễ gì bị đe doạ.
Delegated Proof-of-Stake (Uỷ quyền Cổ phần): Đây là cơ chế đồng thuận phổ biến
trong Steemit, EOS, BitShares. Cơ chế đồng thuận này có chi phí giao dịch rẻ; có khả năng
mở rộng; hiệu suất năng lượng cao. Tuy nhiên vẫn một phần hơi hướng tập trung vì thuật
tốn này lựa chọn người đáng tin cậy để uỷ quyền.
Proof of Authority (Bằng chứng Uỷ nhiệm): Đây là cơ chế đồng thuận phổ biến thường
thấy trong POA.Network, Ethereum Kovan testnet. Cơ chế đồng thuận này có hiệu suất cao,
có khả năng mở rộng tốt.
22
Proof-of-Weight (Bằng chứng Khối lượng /Càng lớn càng tốt): Đây là cơ chế đồng
thuận phổ biến trong Algorand, Filecoin. Cơ chế đồng thuận này có thể tùy chỉnh và khả năng
mở rộng tốt. Tuy nhiên quá trình thúc đẩy việc phát triển sẽ là một thử thách lớn.
Byzantine Fault Tolerance (Đồng thuận chống gian lận /Tướng Byzantine bao vây
Blockchain): Đây là cơ chế đồng thuận phổ biến trong Hyperledger, Stellar, Dispatch, và
Ripple. Cơ chế đồng thuận này có năng suất cao; chi phí thấp; có khả năng mở rộng. Tuy
nhiên vẫn chưa thể tin tưởng hoàn toàn.
10.Ứng dụng Blockchain trong đời sống
Ứng dụng trong ngành công nghiệp và dịch vụ
10.1.
-
Dịch vụ doanh nghiệp:
Microsoft và ConsenSys đang hợp tác để cung cấp Ethereum Blockchain dưới dạng
Dịch vụ (EBaaS) trên Microsoft Azure để khách hàng và nhà phát triển Doanh nghiệp có thể
có một mơi trường phát triển blockchain.
Google cũng được cho là đang làm việc trên một blockchain độc quyền để hỗ trợ doanh
nghiệp. Công ty mẹ Alphabet đang phát triển một sổ cái phân tán mà các bên thứ ba sẽ có thể
sử dụng để lưu trữ dữ liệu, được cho là liên quan đến các dịch vụ đám mây của Google dành
cho doanh nghiệp. [12]
-
Công nghiệp năng lượng:
Một dự án đầy tập trung vào các hệ thống năng lượng và nước phân tán đang sử dụng
công nghệ blockchain ở Fremantle, Úc, . Các tấm pin mặt trời đang được sử dụng ở khu vực
có ánh nắng mặt trời để thu điện, sau đó được sử dụng để làm nóng nước và cung cấp năng
lượng và dữ liệu được ghi lại trên blockchain.
Ban Năng lượng Quốc gia Chile đã bắt đầu sử dụng công nghệ blockchain như một
phương tiện xác nhận dữ liệu liên quan đến việc sử dụng năng lượng của đất nước. Dữ liệu
nhạy cảm sẽ được lưu trữ trên blockchain như một phần của sáng kiến giúp hiện đại hóa và
bảo mật cơ sở hạ tầng điện của quốc gia Nam Mỹ.
23
Ứng dụng trong ngành nông nghiệp, thủy hải sản
- Đánh bắt cá:
Blockchain hiện đang được sử dụng để hỗ trợ đánh bắt cá bền vững. Cá đánh bắt bất
hợp pháp là một vấn đề đặc hữu trong ngành, và công nghệ sổ cái phân tán cung cấp một
phương tiện để chứng minh nơi cá được đánh bắt, chế biến và bán. Chuỗi “net-to-plate” này
cho phép các thanh tra xác định liệu cá có đến từ các khu vực khét tiếng vì vi phạm nhân
quyền hay từ các quốc gia bị ảnh hưởng bởi các lệnh trừng phạt kinh tế.
- Nông nghiệp:
Bạn có biết thực phẩm, quần áo,… của bạn đến từ đâu? Quản lý chuỗi cung ứng là
một lĩnh vực cực kỳ phức tạp và thường trải qua hàng chục bên trung gian từ sản xuất đến
mua hàng.
10.2.
Vậy làm thế nào chúng ta có thể đảm bảo được chất lượng, tính minh bạch, sự tin cậy của
các sản phẩm trên một hành trình dài từ nhà sản xuất đến tay người tiêu dùng? Câu trả lời là
blockchain.
• Food industry: Là ứng dụng Blockchain có thể cải thiện tính minh bạch và hiệu quả trong
việc tìm ra những loại thực phẩm có thể bị ơ nhiễm và ở đâu trong suốt chuỗi cung ứng.
• OriginTrail: Là một nền tảng blockchain cho phép người tiêu dùng biết hàng hóa thực
phẩm mà họ mua đến từ đâu và cách chúng được sản xuất.
Ứng dụng Blockchain trong xây dựng
- Địa ốc:
Ukraine vinh dự trở thành quốc gia đầu tiên sử dụng blockchain để tạo điều kiện cho
một thỏa thuận về tài sản. Một tài sản đã được bán bởi người ủng hộ tiền điện tử nổi tiếng và
người sáng lập TechCrunch Michael Arrington.
10.3.
Thỏa thuận này được kích hoạt với sự hỗ trợ của các hợp đồng thông minh trên
blockchain Ethereum và được dự định là hợp đồng đầu tiên trong số nhiều người hoàn thành
bởi Propy , một công ty khởi nghiệp chuyên về các giao dịch bất động sản dựa trên
blockchain.
- Đường sắt:
Nhà điều hành đường sắt Novotrans tại Nga đang sử dụng công nghệ blockchain với
mục tiêu cải thiện tốc độ hoạt động của mình. Một trong những nhà khai thác cổ phiếu lớn
nhất trong nước, sẽ sử dụng blockchain để ghi lại dữ liệu liên quan đến yêu cầu sửa chữa,
hàng tồn kho và các vấn đề khác liên quan đến hoạt động của họ. Ý tưởng là các bản ghi
blockchain sẽ có khả năng chống giả mạo và tham nhũng dữ liệu nhiều hơn.
- Quyền sử dụng đất:
Chính phủ Georgia sử dụng nó để đăng ký quyền sở hữu đất đai . Họ đã tạo ra một hệ
thống blockchain được thiết kế tùy chỉnh và tích hợp nó vào hệ thống hồ sơ kỹ thuật số của
24