Vì ra đời sau Bitcoin nên Ethereum có khá là nhiều ưu điểm so với Bitcoin như phí giao dịch thấp, tốc độ tạo một block nhanh hơn, có sự kết hợp của hợp đồng thông minh, và được áp dụng v
Các loại và các phiên bản công nghệ Blockchain
Hệ thống công nghệ Blockchain chia thành 3 loại chính e Public: Ai cũng có quyén đọc, ghi dit liệu Quá trình xác thực giao dich đòi hỏi phải có hàng nghìn hay hàng vạn nút tham gia Do đó tấn công vào hệ thống Blockchain này là điều không thể vì chỉ phi khá cao. e©_ Private: Người dùng chỉ có quyền đọc dit liệu Tổ chức này có thé hoặc không cho phép người dùng đọc đữ liệu trong một số trường hợp 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. e Permissioned: Một dang của private nhưng bồ sung thêm một số tính năng nhất định.
Phiên bản của công nghệ Blockchain e Bản 1.0: Tiên tệ, thanh toán: gồm chuyên đôi tiền tệ, lập hệ thống thanh toán kỹ thuật sé. e Bản 2.0: Tài chính, thị trường: xử lý tài chính và ngân hàng: mở rộng quy mô của Blockchain, đưa vào các ứng dụng tài chính va thị trường Các tải san: cô phiếu, chi phiếu, nợ, quyền sở hữu và các điều liên quan đến thỏa thuận/hợp đồng. e_ Bản3.0: Thiết kế, giám sát: Đưa Blockchain đi vào các lĩnh vực như giáo dục, chính phủ, y tế và nghệ thuật
Các công nghệ hình thành nên công nghệ Blockchain
Các công nghệ hình thành nên công nghệ blockchain gồm 3 công nghệ là: mật mã học, câu trúc mạng ngang hang va cơ chê đông thuận.
Blockchain sử dụng cặp khóa (public key va private key) và hàm hash function dé giải mã và mã hóa dit liệu, nhằm đảm bao tính an toàn của dit liệu khi giao dịch. Theo đó, giải thuật mã hóa bat đối xứng được sử dụng trong thuật toán tạo chữ ký sỐ của blockchain dé ký và ủy quyền thực hiện các giao dịch tiền điện tử.
Giải thuật mã hóa bat đối xứng là thuật toán giải mã và mã hóa sử dụng cặp khóa public key và private key Nếu một văn bản được mã hóa với public key thi văn ban đó sẽ được giải mã bởi private key tương ứng Ngược lại, nêu một văn bản được mã hóa với private key thì văn bản đó sẽ được giải mã bởi public key tương ứng. À N N `
X Encryption Y Encryption r4 LZJ Decryption LY] Decryption x
Hình 2.1 Giải thuật mã hóa bat đối xứng
Hình 2.1 là mô hình giải thuật mã hóa bat đối xứng Khi người A gửi dữ liệu plaintext X cho người B, X sẽ được mã hóa thành ciphertext Z bởi 2 lớp mã hóa Lớp mã hóa thứ nhất sử dụng private key của người A và lớp mã hóa thứ hai sử dụng public key của người B Dữ liệu được ghi vào blockchain chính là ciphertext Z Lúc này, để đọc được plaintext X thi ciphertext Z sẽ được giải mã bởi các khóa tương ứng với khi mã hóa Đầu tiên, Z sẽ được giải mã bởi private key B (tương ứng với public key B) tạo ra Y Sau đó, Y sẽ được giải mã bởi public key A (tương ứng với private key A) Như vậy, khi người A gửi dit liệu cho người B thì chỉ duy nhất người B (có private key B) mới có thé đọc được dữ liệu plaintext X Hơn nữa, người B có thé giải mã với public key của người A thì có thể chắc chắn rang dit liệu thực sự được gửi bởi người A (gắn với public key A).
Blockchain được xây dựng chủ yếu dựa trên mang ngang hang Day là một trong những công nghệ cốt lõi trong mạng lưới Blockchain.
Trong giai đoạn đầu của Bitcoin, Satoshi Nakamoto (là một nhân vật hoặc tô chức ân danh đã sáng tạo ra Bitcoin, mở đầu cho công nghệ tiền điện tử) định nghĩa nó là một “Hệ thống tiền mặt điện tử ngang hàng” Bitcoin ban đầu được tạo ra như một dạng tiền kỹ thuật số Nó có thé được chuyền từ người dùng này sang người dùng khác thông qua mạng ngang hang, mạng nay quản lý một cuốn số cái phân tán được gọi là Blockchain Ethereum là đồng tiền điện tử ra đời sau này, cho nên cốt lõi của nó vẫn giống so với các đồng tiền tiện tử đời đầu như Bitcoin (2007).
Chính kiến trúc ngang hàng, một công nghệ trung tâm của blockchain cho phép người dùng có thê giao dịch các loại tiền mã hóa trên toàn thế giới mà không cần đến trung gian cũng như bat kỳ máy chủ trung tâm nào Vì vậy, không có ngân hàng nao dé xử lý hoặc ghi lại các giao dịch Thay vào đó, Blockchain hoạt động như một số cái kỹ thuật số ghi lại công khai tất cả hoạt động Về cơ bản, mỗi nút giữ một bản sao của blockchain và so sánh nó với các nút khác dé đảm bảo dữ liệu chính xác Mạng nhanh chóng từ chối mọi hoạt động độc hại hoặc không chính xác.
Trong bối cảnh của các blockchain của tiền mã hóa, các nút có thể đảm nhận các vai trò khác nhau Ví dụ, các nút đầy đủ là các nút giúp duy trì tính bảo mật cho mạng bang cách xác minh các giao dịch theo các quy tắc đồng thuận (sẽ được trình bày ở mục tiếp theo) của hệ thống.
Mỗi nút đầy đủ duy trì một bản sao hoàn chỉnh, cập nhật của blockchain - cho phép họ tham gia vào công việc chung dé xác minh trạng thái thực của số cái phân tán.
Hình 2.2 thé hiện cau trúc mạng tập trung va mạng ngang hàng Cấu trúc ngang hàng của blockchain mang lại tính bảo mật cao hơn so với cấu trúc máy khách-máy chủ truyền thống Kẻ tan công bên ngoài có thé tiêu diệt một số lượng lớn các node trong hệ thống nhưng dữ liệu của Blockchain luôn luôn còn tồn tại ở tất cả các node còn tổn tại trên hệ thống Các node mới có thê tiếp tục kết nối vào hệ thống và phục hồi lại cả hệ thống ở quy mô ban đầu Do đó Blockchain gần như không thé bị đánh sập và chỉ cần một node còn tôn tại là có thê hồi phục lại cả hệ thống Điều này giup chống lại các cuộc tan công Từ chối Dịch vụ (DoS) đã được sử dụng dé tan công nhiều hệ thống tập trung.
3) Cơ chế đồng thuận (Consensus Mechanism)
Cơ chế đồng thuận là một cơ chế chịu lỗi được sử dụng trong các hệ thống máy tính và blockchain dé đạt được thỏa thuận cần thiết về một giá trị dữ liệu hoặc một trạng thái duy nhất của mạng giữa các quy trình phân tán hoặc hệ thống đa tác nhân.
Trong bat kỳ hệ thống tập trung nào, như cơ sở dữ liệu chứa thông tin chính về giấy phép lái xe ở một quốc gia, quản trị viên trung tâm có quyên duy trì và cập nhật cơ sở dữ liệu Nhiệm vụ thực hiện bất kỳ cập nhật nao — như thêm / xóa / cập nhật tên của những người đủ điều kiện cho một số giấy phép nhất định — được thực hiện bởi một cơ quan trung ương, người duy nhất chịu trách nhiệm duy trì hồ sơ chính hãng.
Các blockchain công cộng hoạt động như các hệ thong phi tập trung, tự điều chỉnh hoạt động trên quy mô toàn cầu mà không có bat kỳ cơ quan nào Chúng liên quan đến sự đóng góp của hàng trăm ngàn người tham gia làm việc xác minh và xác thực các giao dịch xảy ra trên blockchain và trên các hoạt động khai thác khối.
Trong trang thái thay đối linh hoạt của blockchain, các số cái được chia sẻ công khai này cần một cơ chế hiệu quả, công bằng, thời gian thực, chức năng, đáng tin cậy và an toàn dé đảm bảo răng tat cả các giao dịch xảy ra trên mạng là chính hãng và tat cả người tham gia đồng ý về sự đồng thuận về tình trạng của số cái Tất cả nhiệm vụ quan trọng này được thực hiện bởi cơ chế đồng thuận, là một bộ quy tắc quyết định sự đóng góp của những người tham gia khác nhau của blockchain.
Hình 2.3 Mô hình cơ bản của co chế đồng thuận (nguồn: alamy.com)
Hình 2.3 trình bày một cách tổng quan nhất về cách mà cơ chế đồng thuận vận hành Mọi nút tham gia mạng Blockchain đều có quyền bình dang như nhau, do đó cách hoạt động khá giống với nguyên tắc phô thông đầu phiếu, nêu đạt hơn 50% thì thông tin cân xác thực sé được chap nhận và được cập nhật vào Blockchain.
Hai thuật toán đồng thuận pho biến e Proof-of-Work (POW) là một thuật toán đồng thuận đầu tiên được tạo ra
(2007) và được sử dụng bởi các mạng tiền điện tử phô biến nhất như Bitcoin
(SHA256), Litecoin (Scrypt) và Ethereum (Ehash) Dao coin dùng PoW liên quan đến nhiều nỗ lực băm, vì vay khả năng tính toán càng lớn có nghĩa là thực hiện được nhiều phép thử hơn trên mỗi giây Nói cách khác, thợ đào có tỷ lệ băm cao có cơ hội tốt hơn để tìm một lời giải hợp lệ cho khối tiếp theo. Thuật toán đồng thuận PoW đảm bảo rằng các miners (thợ mỏ) chỉ có thể xác nhận một khối giao dịch mới và thêm nó vào Blockchain nếu các nút phân tán của mạng đạt được sự đồng thuận và đồng ý rằng hàm băm khối được đưa ra bởi thợ mỏ là một bằng chứng công việc hợp lệ. e© Thuật toán đồng thuận Proof-of-Stake (PoS) được phát triển vào năm
2011 như là một giải pháp thay thế cho PoW Mặc du PoS và PoW có các mục tiêu giống nhau, chúng có một số khác biệt và đặc thù cơ bản, đặc biệt là trong quá trình xác nhận khối mới PoS thay thế PoW bằng một cơ chế mà trong đó các khối được xác nhận theo tỷ lệ cô phần của những người tham gia Trình xác nhận hợp lệ của mỗi khối được xác định bằng tỉ lệ cổ phần của đồng tiền điện tử chứ không phải bằng lượng công suất tính toán được phân bổ Mỗi hệ thống PoS có thé thực hiện thuật toán theo nhiều cách khác nhau, nhưng nói chung, blockchain được bảo đảm bằng một quá trình bầu chọn giả ngẫu nhiên dựa trên việc xem xét tài sản của nút và độ tuổi của coin (thời gian các đông coin được khóa hoặc đặt cọc) - cùng với một hệ sô ngẫu nhiên.
Giới thiệu về Ethereum . -cc+ccxtrerrtrrrrrrtrrrrrrrrrrrrrree 17 2.2.2 Khối Block Ethereum ¿ 2¿©-++2+++EE2EEt2EEEEEESEEEEkrrkrerkree 17 2.2.3 Hợp đồng thông minh ¿52 t+k‡EEeEEEEEEEE2E12112E21 21212, 22 2.2.4 — Proof-of-Work (PO W) cccc n ng HH Hy HH ng Hệ 23 2.2.5 Target va diIffiCulfy -S- Snt St SH 1H TH H11 1 Hy rệt 23 2.2.6 Quá trình block được thêm vào Ethereum blockchain
Ethereum là một nền tảng máy tính phi tập trung Bạn có thể nghĩ nó giống như một chiếc máy tính xách tay hoặc PC, nhưng nó không chạy trên một thiết bị duy nhất. Thay vào đó, nó chạy đồng thời trên hàng nghìn máy tính trên khắp thế giới, có nghĩa là nó không có chủ sở hữu duy nhất.
Giống như Bitcoin và các loại tiền mã hoá khác, Ethereum cho phép bạn chuyên tiền mã hoá thông qua mạng blockchain Tuy nhiên, Ethereum còn có nhiều khả năng hơn nữa — bạn có thê triển khai code của riêng mình và tương tác với các ứng dụng do người dùng khác tao ra trên mạng này Bởi vì Ethereum rat linh hoạt, tat cả chương trình dù thuộc loại nào, phức tạp hay không, đều có thể được khởi chạy trên Ethereum Logo của Ethereum được thé hiện ở hình 2.6. ae Ỹ
Hình 2.6 Logo của Ethereum (nguồn: tek4.vn) e†hereum
Nói một cách đơn giản, Ethereum là nơi mà các nhà phát triển có thê tạo và khởi chạy code trên một mạng phân tán, thay vì tồn tại trên một máy chủ tập trung Điều này có nghĩa là về lý thuyết, các ứng dụng trên Ethereum không thể bị tắt hoặc bị kiểm duyệt.
Don vị được sử dụng trong Ethereum không được gọi là Ethereum hoặc
Ethereums Ethereum là tên giao thức, tên của đồng tiền cung cấp năng lượng cho nó được gọi đơn giản là Ether (hoặc ETH).
Blockchain là công nghệ cốt lõi được sử dụng trong Ethereum cho nên một Block trong Ethereum blockchain cũng có các phần tương tự như Blockchain.
Trong Ethereum, một block bao gồm:
STT Trường Kích thước Mô tả parentHash Giá trị băm block header của block phía
2 256 bits | Giá trị băm của các block uncle.
(sha3Uncles) beneficiary Dia chỉ tài khoản của thợ dao sẽ nhận phần
Giá trị băm nút gốc của cây trạng thái gồm tất cả số dư tài khoản, lưu trữ hợp đồng, mã hợp đồng và tài khoản các nút ở bên trong. Mục đích của việc tạo ra trường này nhằm để nó cho phép một nút chỉ được cung cấp khối cuối cùng, cùng với một số đảm bảo
: rằng khối cuối cùng thực sự là khối gần đây
4 stateRoot 256 bits nhất, dé “đồng bộ hóa” với blockchain cực kỳ nhanh chóng mà không cần xử lý bất kỳ giao dich lịch sử nao, chi bang cach tai xuống phan còn lai của cây từ các nút trong mạng, xác minh rang cây là chính xác bang cách kiểm tra xem tất cả các băm có khớp với nhau không và sau đó tiép tục từ đó.
Giá trị băm nút gốc của cây Merkle tất cả
5 | transactionsRoot 256 bits | giao dich co trong block Transaction trie là nơi ghi lại các vector yêu cầu giao dịch.
Giá trị băm nút gốc của cây receipt Receipt
6 receiptsRoot 256 bits ơ ơơ oo tries là nơi ghi lai các kêt qua sau giao dịch.
Câu trúc dữ liệu Bloom Filter Bộ lọc
Bloom, phát minh bởi Burton Howard
7 logsBloom 256 bytes |Bloomnăm 1970,là mộtcấu trúc đữ liệu xác suất dé kiểm tra xem một phần tử có nằm trong một tập hợp hay không. Độ khó của block Đây chính là trường
8 difficulty big int quyết định điều kiện cần thỏa mãn của hệ thống. x Số thứ tự của block, tính từ block nguyên
9 number big int thủy là 0.
_ Giá trị gas tối đa có thê sử dụng của các giao
10 gasLimit big int ; dich trong block. ơ Tổng số gas mà cỏc giao dịch trong block
11 gasUsed big int tiéu thu. ơ Thời gian block được tim ra (tinh theo unix
13 extraData 256 bits | Dữ liệu bổ sung liên quan đến khối. hàm băm của block header trước khi tìm ra
Khác với số nonce trong giao dịch, đây là số nonce mà thợ đào cần tìm trong quá trình
15 nonce 64 bits đào block Block được khai thác thành công khi số băm keccack256 mixHash và số nonce bé hơn một giá tri mục tiêu cho trước
Bang 2.1 Cấu trúc của Block Header trong Ethereum Block header là thành phan thiết yếu của khối, cũng chính là đữ liệu quan trong cho hệ thống đào Ether Cấu trúc của Block header gồm 15 trường được trình bày ở bảng 2.1 Mỗi khối đều chứa một giá trị tham chiếu đến khối trước đó (parentHash) trong Block Header.
2) Thông tin các giao dịch
Giao dịch Ethereum đề cập đến một hành động được thực hiện bởi một tài khoản thuộc sở hữu bên ngoài, nói cách khác là một tai khoản được quan lý bởi con người, không phải một hợp đồng Vi dụ: nếu Bob gửi cho Alice 1 ETH, tài khoản của Bob phải được ghi nợ và của Alice phải được ghi có Hành động thay đổi trạng thái này diễn ra trong một giao dịch.
Bất kỳ nút nào cũng có thể phát yêu cầu thực hiện một giao dịch; sau khi điều này xảy ra, một miner (thợ đào) sẽ thực hiện giao dịch và tuyên truyền sự thay đổi trạng thái kết quả cho phần còn lại của mạng.
Một giao dịch được gửi đi sẽ gồm các trường sau (được minh họa ở hình 2.7): e recipient: Địa chỉ người nhận (nếu là tài khoản thường thì giao dịch sẽ chuyền value Nếu là tài khoản hợp dong thì giao dịch sẽ được thực thi theo mã hợp đồng). e signature: Định danh của người gửi Nó được tạo khi khóa riêng tư của người gửi ký vào giao dịch và xác nhận rằng gửi người đã ủy quyền giao dịch này. e_ value: Số lượng ETH mà người gửi muốn chuyên
20 e data/input: Trường tùy chọn, chứa các dữ liệu tùy ý. e ứasLimit: Số lượng đơn vị gas tối đa cú thộ được tiờu thụ trong giao dich. e gasPrice: Phí người gửi trả cho mỗi đơn vị gas
Gas là một tham chiếu đến tính toán cần thiết để xử lý giao dịch bởi một miner. Người dùng phải trả một khoản phí cho việc tính toán này gasLimit và gasPrice quyết định phí giao dịch tối đa cần trả cho miner theo công thức sau:
Transaction fee (gwei) = gasLimit * gasPrice (gwei) (2.1)
1 ETH = 1.000.000.000 gwei from: ”8xEA674fdDe714†d379de3EdiFBF56AA3716B898ec8", to: ”8xac83hh73b6a9e188538af††4d†5877c2h3d481e5a”, gasLimit: "216008", gasPrice: "280", nonce: ”8”, value: “leaeEeEeneR”,
Hình 2.7 Hình anh minh hoa dữ liệu giao dich gửi đi (nguồn: ethereum.org)
Do cách thức Ethereum được xây dựng, thời gian khai thác một block thấp hơn nhiều (~ 15 giây) so với các blockchain khác, như Bitcoin (~ 10 phút) Điều này cho phép xử lý giao dịch nhanh hơn Tuy nhiên, một trong những nhược điểm của thời gian khai thác một block ngắn là sẽ có nhiều thợ mỏ dao ra | block trong những khoang thời gian rat gần nhau nhưng chỉ có một block được tìm ra sớm nhất được đưa vào nhánh chính, vì vậy sẽ rất lãng phí với các block khác vì chúng cũng hợp lệ nhưng lại không được đưa vào nhánh chính vì chậm hơn về mặt thời gian (1 đến 2 giây !) Các khối như vậy được gọi là các block mồ côi (orphaned blocks) hoặc uncle blocks.
Mục đích của ommers là dé thưởng cho những người khai thác những khối mô côi này Các ommers phải là hợp lệ, nghĩa là một block trong nhánh chính chỉ được có tối đa 2 ommer, ngoài ra, một ommer được xác nhận là hợp lệ khi nó ở trong 6 thế hệ so với block hiện tai và các ommer chỉ được giới hạn 6 ommer trong 6 thế hệ Cac block Ommer nhận được phan thưởng nhỏ hơn một block trong nhánh chính.
1 block chứa tối đa 2 uncle
Hình 2.8 Blockchain khi có các ommers (nguồn: viblo.asia)
Hình 2.8 thé hiện chuỗi Blockchain gồm các ommers, đồng thời cũng minh họa ommers nào là hợp lệ Block ommer 3’ nằm ngoài 6 thế hệ do với block hiện tại (block
10) nên không được chap nhận, block 10’ cũng không được chấp nhận do đã có đủ 6 ommer.
Ethereum mining 0111777
Ethereum mining thực chat là một quá trình ma các miners sẽ giải quyét bai toán
POW (Ethash) tìm ra số nonce sao cho kết quả nhỏ hơn hoặc bằng target.
Các giao dịch khi được thực hiện, sẽ được lưu trữ vào memory pool Từ memory pool, các miners lựa chọn các transaction va gói vào trong một khối tạm, gọi là candidate block Sau đó thông tin về các transaction này được mã hóa để tính ra các trường stateRoot, transactionRoot va receiptsRoot.
Ethereum mining: nonce = EtherMining (full size, DAG, header, difficulty) nonce = 0 target = 27° // difficulty while (nonce < 2%) : hash = Ethash (full_ size, DAG, header, nonce) if (hash