Blockchain
Tìm hiểu blockchain và ứng dụng Ethereum xây dựng ứng dụng DAPPs
Last updated
Was this helpful?
Tìm hiểu blockchain và ứng dụng Ethereum xây dựng ứng dụng DAPPs
Last updated
Was this helpful?
Có nhiều định nghĩa khác nhau về blockchain; Nó phụ thuộc vào cách bạn nhìn vào nó. Cốt lõi của Blockchain là một sổ cái phân tán ngang hàng được bảo mật bằng mật mã, chỉ thêm vào, không thay đổi (cực kỳ khó thay đổi) và chỉ có thể cập nhật thông qua sự đồng thuận hoặc thỏa thuận giữa các bên liên quan.
Blockchain có thể được coi là một lớp của mạng ngang hàng phân tán chạy trên đỉnh của Internet, như có thể thấy trong sơ đồ bên dưới. Nó tương tự như SMTP, HTTP hoặc FTP chạy trên TCP / IP. Điều này được thể hiện trong sơ đồ sau:
Từ quan điểm kinh doanh, một blockchain có thể được định nghĩa là một nền tảng mà nhờ đó các bên liên quan có thể trao đổi giá trị bằng cách sử dụng các giao dịch mà không cần một trọng tài trung tâm đáng tin cậy. Đây là một khái niệm mạnh mẽ và một khi người đọc hiểu nó, họ sẽ nhận ra tiềm năng của công nghệ blockchain. Điều này cho phép blockchain trở thành một cơ chế đồng thuận phi tập trung mà không có cơ quan quyền lực duy nhất nào phụ trách cơ sở dữ liệu.
Block cơ bản bao gồm một tiêu đề chứa siêu dữ liệu và theo sau đó là một danh sách trải dài các giao dịch, và quan trọng hợn nó được link với các block trước đó (block mẹ) điều này chính là mấu chốt khiến blockchain rất khó có thể sửa, xóa khi đã được lưu vào. Cấu trúc của Block phụ thuộc vào loại và thiết kế của một blockchain, nhưng nhìn chung, có một số thuộc tính cần thiết chẳng hạn như: block header, pointers to previous blocks, the timestamp, nonce, transaction counter, transactions và các thuộc tính khác.
Blockchain là một cơ chế đồng thuận phi tập trung. Trong một chuỗi khối, tất cả các bên liên quan cuối cùng đi đến một thỏa thuận về trạng thái của một giao dịch.
Blockchain là một sổ cái được chia sẻ phân tán. Blockchain có thể được coi là một sổ cái chia sẻ các giao dịch. Giao dịch được sắp xếp và nhóm thành các khối. Hiện tại, mỗi tổ chức sẽ quản lý, duy trì trên cơ sở dữ liệu riêng trong khi sổ cái phân tán có thể phục vụ như một nguồn tin cậy duy nhất cho tất cả các tổ chức đang sử dụng blockchain.
Blockchain là một cấu trúc dữ liệu, về cơ bản nó là một danh sách được liên kết sử dụng con trỏ băm thay vì con trỏ bình thường. Con trỏ băm được sử dụng để trỏ đến block trước đó.
Địa chỉ là một mã định danh duy nhất được sử dụng trong giao dịch trong blockchain để biểu thị người gửi và người nhận. địa chỉ thường là một chuỗi khóa công khai hoặc có nguồn gốc từ khóa công khai. Mặc dù địa chỉ có thể được sử dụng lại bởi cùng một người dùng, nhưng bản thân các địa chỉ là duy nhất. Tuy nhiên, trên thực tế, một người dùng không thể sử dụng lại cùng một địa chỉ và tạo một địa chỉ mới cho mỗi giao dịch. Địa chỉ mới được tạo này sẽ là duy nhất. Như một thông lệ, người dùng nên tạo một địa chỉ mới cho mỗi giao dịch để tránh liên kết các giao dịch với chủ sở hữu chung.
Giao dịch là đơn vị cơ bản của blockchain. Một giao dịch thể hiện sự chuyển giao giá trị từ địa chỉ này sang địa chỉ khác.
Một block bao gồm nhiều giao dịch và một số yếu tố khác như previous block hash ( hash pointer ), timestamp và nonce
Như cái tên của nó, tất cả các bên liên quan có thể giao tiếp với nhau, gửi, nhận tin nhắn.
Phần tử này thực hiện các hoạt động khác nhau trên một giao dịch. Tập lệnh giao dịch là các tập lệnh được xác định trước để các nút chuyển mã thông báo từ địa chỉ này sang địa chỉ khác và thực hiện nhiều chức năng khác nhau. Ngôn ngữ lập trình hoàn chỉnh Turing là một tính năng mong muốn của blockchains; tuy nhiên, tính bảo mật của những ngôn ngữ như vậy là một câu hỏi và là một lĩnh vực nghiên cứu quan trọng và đang diễn ra.
Đây là một phần mở rộng của một tập lệnh giao dịch. Một máy ảo cho phép mã hoàn chỉnh của Turing được chạy trên blockchain (dưới dạng hợp đồng thông minh) trong khi tập lệnh giao dịch có thể bị giới hạn trong hoạt động của nó. Máy ảo không có sẵn trên tất cả các blockchains, tuy nhiên, nhiều blockchains khác nhau sử dụng máy ảo để chạy các chương trình, ví dụ như Máy ảo Ethereum (EVM) và Máy ảo chuỗi (CVM).
Một blockchain có thể được xem như một cơ chế chuyển đổi trạng thái, theo đó một trạng thái được sửa đổi từ dạng ban đầu sang dạng tiếp theo và cuối cùng là dạng cuối cùng do kết quả của quá trình thực hiện và xác thực giao dịch bởi các node.
Một node trong mạng blockchain thực hiện các chức năng khác nhau tùy thuộc vào vai trò của nó. Một node có thể đề xuất và xác thực các giao dịch và thực hiện khai thác để tạo điều kiện đồng thuận và bảo mật cho blockchain. Điều này được thực hiện bằng cách tuân theo một giao thức đồng thuận. (Phổ biến nhất là PoW) Các node cũng có thể thực hiện các chức năng khác như xác minh thanh toán đơn giản (lightweight nodes), trình xác thực và nhiều chức năng khác tùy thuộc vào loại blockchain được sử dụng và vai trò được chỉ định cho node.
Các chương trình này chạy trên blockchain và đóng gói logic nghiệp vụ để được thực thi khi các điều kiện nhất định được đáp ứng. Tính năng hợp đồng thông minh không có sẵn trong tất cả các blockchains nhưng hiện đang trở thành một tính năng rất được mong đợi do tính linh hoạt và sức mạnh của nó cung cấp cho các ứng dụng blockchain.
Một blockchain thực hiện các chức năng khác nhau.
Sự đồng thuận phân tán là nền tảng chính của blockchain.Điều này cho phép một blockchain trình bày một phiên bản duy nhất của sự việc và được tất cả các bên đồng ý mà không có yêu cầu của cơ quan trung ương.
Bất kỳ giao dịch nào được đăng từ các nút trên blockchain đều được xác minh dựa trên một bộ quy tắc được xác định trước và chỉ các giao dịch hợp lệ mới được chọn để đưa vào một khối.
Blockchain là một nền tảng, nơi các chương trình có thể thực thi logic nghiệp vụ thay mặt cho người dùng.
Blockchain cho phép chuyển giá trị giữa những người dùng của nó thông qua các mã thông báo. Token có thể được coi là vật mang giá trị.
Đây là một tính năng tùy chọn tùy thuộc vào loại blockchain được sử dụng. Một blockchain có thể tạo ra tiền điện tử như một động lực cho những người khai thác nó.
Lần đầu tiên, có thể liên kết tài sản kỹ thuật số hoặc tài sản vật lý với chuỗi khối theo cách không thể thay đổi, sao cho nó không thể bị xác nhận bởi bất kỳ ai khác; bạn có toàn quyền kiểm soát tài sản của mình và nó không thể được chi tiêu kép hoặc sở hữu kép.
Blockchain dựa trên công nghệ mật mã đã được chứng minh đảm bảo tính toàn vẹn và tính sẵn có của dữ liệu. Nói chung, tính bảo mật không được cung cấp do các yêu cầu về tính minh bạch. Điều này đã trở thành rào cản chính đối với khả năng thích ứng của nó bởi các tổ chức tài chính và các ngành khác cần sự riêng tư và bí mật của các giao dịch. Vì vậy, nó đang được nghiên cứu rất tích cực và đã có một số tiến bộ tốt. Có thể lập luận rằng trong nhiều tình huống, tính bảo mật không thực sự cần thiết và thay vào đó, tính minh bạch được ưu tiên hơn.
Đây là một tính năng quan trọng của blockchain: các bản ghi sau khi được thêm vào blockchain là bất biến. Có khả năng quay lại các thay đổi nhưng điều này được coi là gần như không thể thực hiện được vì nó sẽ đòi hỏi một lượng tài nguyên máy tính không thể chi trả được. Ví dụ trong trường hợp của bitcoin, nếu một người sử dụng muốn thay đổi các khối trước đó thì blockchain sẽ yêu cầu tính toán lại PoW cho tất cả các khối đã được thêm vào blockchain. Khó khăn này làm cho các bản ghi trên blockchain thực tế là không thể thay đổi.
Tính năng này của blockchain đảm bảo rằng mọi giao dịch là duy nhất và chưa được chi tiêu.Điều này đặc biệt liên quan đến tiền điện tử, nơi mà việc phát hiện và tránh chi tiêu gấp đôi là một yêu cầu quan trọng.
Blockchain cung cấp một nền tảng để chạy các hợp đồng thông minh. Đây là một chương trình tự động tự trị nằm trên blockchain và đóng gói mã và logic nghiệp vụ để thực thi một chức năng được yêu cầu khi các điều kiện nhất định được đáp ứng. Đây thực sự là một tính năng mang tính cách mạng của blockchain vì nó cho phép tính linh hoạt, khả năng lập trình và khả năng kiểm soát các hành động mà người dùng blockchain cần thực hiện theo yêu cầu kinh doanh cụ thể của họ.
Một node bắt đầu giao dịch bằng cách ký vào khóa riêng của nó.
Giao dịch được truyền đi tới các bên liên quan (Node còn lại) bằng cách sử dụng giao thực Gossip, giao thức này xác thực giao dịch dựa trên các tiêu chí trước đó. Thông thường cần nhiều hơn 1 node để xác thực các giao dịch
Khi giao dịch được xác thực, một Block được tạo ra sau đó được truyền vào mạng. Tại thời điểm này các giao dịch được coi là đã xác nhận
Block mới được tạo ra bây giờ trở thành một phần của sổ cái và Block tiếp theo sẽ tự sinh một liên kết mật mã để liên kết tới Block này, liên kết này là một con trỏ băm. Ở giai đoạn này, giao dịch sẽ nhận được xác nhận thứ hai và Block của nó sẽ được đặt đầu tiên
Các giao dịch sau đó được xác nhận lại mỗi khi một khối mới được tạo ra. Thông thường, sáu xác nhận trong mạng bitcoin được yêu cầu để xem xét giao dịch cuối cùng.
Bước 4 và bước 5 có thể được coi là không bắt buộc vì bản thân giao dịch đã được hoàn thành ở bước 3. Tuy nhiên xác nhận một Block và xác nhận lại giao dịch tiếp theo nếu được yêu cầu sẽ được thực hiện ở bước 4 và 5.
Thế hệ này được giới thiệu cùng với sự phát minh ra bitcoin và về cơ bản được sử dụng cho tiền điện tử. Ngoài ra, vì bitcoin là ứng dụng đầu tiên của tiền điện tử, nên phân loại Thế hệ 1 của công nghệ blockchain chỉ bao gồm các loại tiền mã hóa. Tất cả các đồng tiền thay thế và bitcoin đều thuộc loại này. Blockchain 1.0 bao gồm các ứng dụng cốt lõi như thanh toán và ứng dụng.
Các blockchain thế hệ 2.0 được sử dụng bởi các dịch vụ tài chính và các hợp đồng được đưa ra trong thế hệ này. Thế hệ này bao gồm các tài sản tài khác nhau, ví dụ: các dẫn xuất, quyền chọn, hoán đổi và trái phiếu. Các ứng dụng nằm ngoài tiền tệ, tài chính và thị trường được xét trong thế hệ này.
Blockchain thế hệ 3 được sử dụng để triển khai các ứng dụng ngoài ngành dịch vụ tài chính và được sử dụng trong các ngành có mục đích chung hơn như chính phủ, y tế, truyền thông, nghệ thuật và tư pháp.
Đây là thế hệ có một tầm nhìn đặc biệt của blockchain, một ngày nào đó chúng ta sẽ có một dịch vụ blockchain mở mà bất kỳ ai cũng có thể sử dụng giống như công cụ tìm kiếm Google. Nó sẽ cung cấp dịch vụ trong tất cả các lĩnh vực của xã hội.
Các blockchain này được mở công khai và bất kỳ ai cũng có thể tham gia với tư cách là một node trong quá trình đưa ra quyết định. Những sổ cái này không thuộc sở hữu của riêng ai mà được mở công khai cho bất kỳ ai tham gia. Tất cả người dùng sổ cái không có quyền duy trì một bản sao của sổ cái trên các nút cục bộ của họ và sử dụng cơ chế đồng thuận phân tán để đi đến quyết định về trạng thái cuối cùng của sổ cái. Các blockchains này còn được gọi là permission less ledgers.
Đây là loại blockchains chỉ mở cho một tập đoàn hoặc một nhóm các cá nhân hoặc tổ chức đã quyết định chia sẻ sổ cái với nhau.
Ở đây một phần của blockchain là riêng tư và một phần của nó là công khai. Phần riêng tư được kiểm soát bởi một nhóm cá nhân trong khi phần công khai được mở cho bất kỳ ai tham gia.
Sidechain là một blockchain riêng biệt. Tuy nhiên, nó không phải là một nền tảng độc lập, vì nó được gắn bằng một cách nào đó vào chuỗi chính. Chuỗi chính và sidechain có thể tương tác với nhau, có nghĩa là tài sản có thể chảy tự do từ chuỗi này sang chuỗi khác.
Có một số cách để đảm bảo rằng tiền có thể được chuyển qua. Trong một số trường hợp, tài sản được chuyển từ chuỗi chính bằng cách được gửi vào một địa chỉ đặc biệt. Chúng không thực sự được gửi sang – thay vào đó chúng bị khóa vào địa chỉ và một số tiền tương ứng được phát hành trên sidechain. Một cách đơn giản hơn (mặc dù là một tùy chọn tập trung) là gửi tiền cho người giám sát, người này sẽ trao đổi tiền ký quỹ để lấy tiền trên sidechain.
Sổ cái được cấp phép là một blockchain mà theo đó những người tham gia mạng được biết đến và đã được tin cậy. Permissioned blockchain chỉ dành cho những người được phép truy cập. Bất cứ ai muốn xác thực các giao dịch và/hoặc xem dữ liệu trên mạng, trước tiên phải được central authority (bộ phận trung tâm, chịu trách nhiệm quản lý chính) chấp thuận.
Những lợi thế lớn của permissioned blockchain là chúng có:
Quyền kiểm soát truy cập
Khả năng tùy biến cao
Thay đổi thời gian dễ dàng hơn để tuân thủ các quy định
Hiệu quả năng lượng tốt hơn
Khả năng mở rộng tốt hơn
Tuy nhiên, chúng cũng có những nhược điểm. Đó là:
Tập trung hơn
Ít minh bạch
Dễ bị tấn công và thao túng hơn
Dễ dàng kiểm duyệt hơn
Ít ẩn danh hơn
Một Distributed Ledger (Sổ cái phân tán) hay còn gọi distributed ledger technology là sự đồng thuận về dữ liệu kỹ thuật số được sao chép, chia sẻ và đồng bộ hóa trên nhiều trang, quốc gia hoặc tổ chức. Không có quản trị viên trung tâm hoặc lưu trữ dữ liệu tập trung.
Một mạng ngang hàng (peer-to-peer) là cần thiết cũng như các thuật toán đồng thuận để đảm bảo nhân rộng trên các nút được thực hiện. Một dạng thiết kế sổ kế toán phân tán là hệ thống blockchain , có thể là công cộng hoặc riêng tư.
Sổ cái này được phân phối giữa những người tham gia và trải rộng trên nhiều trang web hoặc tổ chức. Loại này có thể là riêng tư hoặc công khai. Ý tưởng chính không giống như nhiều blockchain khác, các bản ghi được lưu trữ liền kề thay vì được sắp xếp thành các khối. Khái niệm này được sử dụng trong Ripple.
Đây là thuật ngữ chung được sử dụng để mô tả bất kỳ ứng dụng hoặc cơ sở dữ liệu nào được chia sẻ bởi công chúng hoặc một tổ chức.
Các blockchains này có lẽ không có ứng dụng chính thống vì chúng đi chệch khỏi ý tưởng cốt lõi về phân quyền trong công nghệ blockchain. Tuy nhiên, trong các môi trường riêng tư cụ thể trong một tổ chức, có thể cần phải chia sẻ dữ liệu và cung cấp một số mức độ đảm bảo về tính xác thực của dữ liệu. Các blockchains này có thể hữu ích trong trường hợp đó. Ví dụ, để cộng tác và chia sẻ dữ liệu giữa các cơ quan chính phủ khác nhau.
Các blockchains này là các blockchain tiêu chuẩn tạo ra tiền điện tử do quá trình đồng thuận thông qua khai thác hoặc thông qua phân phối ban đầu.
Các blockchains này được thiết kế theo cách mà chúng không có đơn vị cơ bản để chuyển giá trị. Tuy nhiên, chúng vẫn có giá trị trong các tình huống không cần chuyển giá trị giữa các nút và chỉ cần chia sẻ dữ liệu giữa các bên đáng tin cậy khác nhau. Điều này tương tự như full private blockchains, sự khác biệt duy nhất là việc sử dụng token là không bắt buộc. Đây cũng có thể được coi là một sổ cái phân tán dùng chung được sử dụng để lưu trữ dữ liệu.
Sự đồng thuận về cơ bản là một khái niệm điện toán phân tán đã được sử dụng trong blockchain để cung cấp phương tiện đồng thuận với một phiên bản chân lý duy nhất của tất cả các bên liên quan trên mạng blockchain.
Bằng chứng công việc (PoW)
PoW là thuật toán đồng thuận đầu tiên được tạo ra. Nó được sử dụng trên Bitcoin và nhiều đồng tiền điện tử khác. Thuật toán Proof of Work là một phần thiết yếu của quá trình đào coin.
Đào coin dùng PoW liên quan đến nhiều nỗ lực băm, vì vậy 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 (aka. hàm băm khối). Thuật toán đồng thuận PoW đảm bảo rằng các 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ệ.
Bằng chứng cổ phần (PoS)
Thuật toán đồng thuận 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 dù 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.
Nói tóm gọn, thuật toán đồng thuận Proof of Stake 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ũng được gọi là thợ đúc tiền) đượ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.
Blockchain Ethereum hiện đang dựa trên thuật toán PoW nhưng sẽ chuyển đổi sang PoS nhờ giao thức Casper sẽ được phát hành nhằm tăng khả năng mở rộng của mạng.