BTC
$96,000
5.73%
ETH
$3,521.91
3.97%
HTX
$0.{5}2273
5.23%
SOL
$198.17
3.05%
BNB
$710
3.05%
lang
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
Trang chủ
AI AI
Tin nhanh
Bài viết
Sự kiện
BlockBeats Pro
Thêm
Thông tin tài chính
Chuyên đề
Hệ sinh thái chuỗi khối
Mục nhập
Podcast
Data
OPRR
Partnered With:

Hard Core: Phân tích chuyên sâu về phát triển nền tảng thuật toán Thực hành của chuỗi thuật toán đồng thuận

Đọc bài viết này mất 37 phút
Nếu bạn muốn bắt đầu với nền tảng blockchain mới, bạn chỉ cần hiểu bốn khái niệm: khối, giao dịch, địa chỉ và tài sản tùy chỉnh trên nền tảng).

Tiêu đề gốc: "Phân tích chuyên sâu về chuỗi thuật toán đồng thuận - Thực hành phát triển nền tảng thuật toán | Đánh giá diễn giả hacker số 10"
Nguồn gốc: DoraHacks

Thuật toán đồng thuận (Consensus Algorithm) là một công nghệ quan trọng nhằm đảm bảo độ tin cậy và tính bảo mật của blockchain. Hiện tại, có rất nhiều thuật toán đồng thuận chính thống, chẳng hạn như Proof of Work (PoW), Proof of Stake (PoS), v.v., mỗi thuật toán đều có những ưu điểm, nhược điểm riêng và mục tiêu áp dụng. Trong lĩnh vực công nghệ blockchain, không thể đánh giá thấp vị trí quan trọng của các thuật toán đồng thuận.

Chúng tôi đã hợp tác với Algorand để mang đến cho bạn chuỗi hoạt động chia sẻ cốt lõi "Phân tích chuyên sâu về thuật toán đồng thuận". Ba bài giảng. Trong chia sẻ này, Zhu Haichao, Phó Giám đốc của Algorand Foundation, giải thích các hoạt động phát triển của nền tảng Algorand cho tin tặc.

Trong bài đánh giá này, bạn sẽ đọc tất cả nội dung cốt lõi và phần Hỏi đáp trực tuyến về chia sẻ này. Thời gian đọc dự kiến là 30 phút. Brainhole Cat khuyên bạn nên thêm bài đánh giá chia sẻ đầy thông tin và cốt lõi này vào mục yêu thích của mình để bạn có thể xem lại quá khứ và tìm hiểu cái mới!


深度解析共识算法系列之 Algorand 平台开发实践 | Hacker Speaker 回顾 #10

Cái tên Algorand đại diện cho cả thuật toán đồng thuận đổi mới và nền tảng chuỗi công khai dựa trên thuật toán đồng thuận này. . Trong các khóa học trước, chúng ta đã học mọi thứ về thuật toán đồng thuận. Nếu bạn đã theo dõi hoàn toàn hai bài giảng đầu tiên, mức độ hiểu biết của bạn về thuật toán đồng thuận chắc hẳn đã cao hơn 99% bạn bè của bạn. Những bạn nào không đến được có thể đọc các bài viết tổng hợp của hai bài giảng đầu tiên.

Hôm nay chúng tôi sẽ giải thích quá trình phát triển trên nền tảng Algorand. Nói chung, nếu bạn muốn bắt đầu với nền tảng blockchain mới, bạn chỉ cần hiểu bốn khái niệm: khối, giao dịch, địa chỉ (còn gọi là ví hoặc tài khoản) và tài sản tùy chỉnh trên nền tảng (ví dụ: ASA, Tài sản tiêu chuẩn Algorand).

Chúng tôi sẽ giới thiệu bài giảng hôm nay theo thứ tự sau.

Chặn


Chuỗi khối Algorand sử dụng thuật toán đồng thuận Algorand để đồng thuận về các khối và dữ liệu giao dịch.


Khi xem nó trong trình duyệt blockchain Algorand, bạn có thể thấy rằng đôi khi chiều cao khối sử dụng vòng (Round) là được biểu thị bằng từ.


Điều này là do trong Algorand, một khối sẽ được tạo ra sau mỗi vòng của quy trình thuật toán đồng thuận, tức là Một vòng đồng thuận tương ứng với một khối.


Điều này có nghĩa là chuỗi khối Algorand sẽ không phân nhánh trong quá trình đồng thuận và mỗi vùng Giao dịch trong một khối có thể được thực hiện được xác nhận ngay lập tức trong một khối, thay vì phải đợi hơn chục khối xác nhận giao dịch như Ethereum.

Thời gian xác nhận khối hiện tại trên mạng chính Algorand là khoảng 4 giây, có nghĩa là một giao dịch có thể được hoàn tất sau 4 giây. .

Giao dịch


Có ba loại giao dịch: (1) Giao dịch ALGO: được sử dụng để gửi mã thông báo ALGO (2) Giao dịch ASA: được sử dụng để tạo, gửi và định cấu hình tài sản ASA (3) Tham gia vào các giao dịch đồng thuận: được sử dụng để đăng ký Địa chỉ do đó tham gia vào sự đồng thuận.


Ba loại giao dịch này đều sử dụng cùng một cấu trúc nội dung giao dịch. Khi xây dựng giao dịch, bạn có thể chọn các loại giao dịch khác nhau và điền vào thông tin giao dịch tương ứng.

Quá trình tạo giao dịch và chữ ký giao dịch có thể được hoàn thành ngoại tuyến và các giao dịch đã ký có thể được gửi đến nút để xác minh và phát sóng .

ID giao dịch được tạo ngoại tuyến và ID giao dịch có thể được lấy ngay sau khi giao dịch được xây dựng và ký kết; không giống như Ethereum Bạn cũng vậy cần đợi nút trả về ID giao dịch.

Ưu điểm ở đây là các giao dịch có ID giao dịch trùng lặp có thể tránh được thực hiện nhiều lần và không cần sử dụng nonce tương tự như trong Ethereum. Cơ chế này loại bỏ nhu cầu của các khách hàng như ví để quản lý và ghi lại nonces.

Giao dịch nguyên tử


Ngoài ra, Algorand còn hỗ trợ các giao dịch nguyên tử một cách tự nhiên.


Khi bạn muốn thực hiện nhiều giao dịch cùng lúc, bạn có thể sử dụng chức năng giao dịch nguyên tử.
Tính năng này cho phép bạn kết hợp nhiều giao dịch thành một giao dịch. Giao dịch chỉ có thể được xác nhận nếu giao dịch kết hợp được ký bởi người gửi của tất cả các giao dịch có trong đó.


Như được hiển thị bên dưới:


深度解析共识算法系列之 Algorand 平台开发实践 | Hacker Speaker 回顾 #10

Có thể dễ dàng triển khai chức năng này bằng SDK. Dưới đây là ví dụ sử dụng Python SDK:


深度解析共识算法系列之 Algorand 平台开发实践 | Hacker Speaker 回顾 #10

Đây logic cũng rất đơn giản: khi nhiều bên thực hiện giao dịch, để đạt được tính nguyên tử của tất cả các giao dịch (nghĩa là tất cả chúng đều được tải lên chuỗi thành công hoặc đều thất bại), bạn chỉ cần thu thập một số giao dịch, tính toán ID giao dịch nhóm, sau đó để Mọi người sử dụng ID này để ký các giao dịch của riêng họ, điều đó có nghĩa là xác nhận rằng giao dịch của họ là hợp pháp trong nhóm giao dịch này, sau đó, họ chỉ cần đóng gói tất cả các giao dịch đã ký và gửi chúng đến chain để hiện thực hóa nhóm giao dịch này. Chức năng giao dịch nguyên tử hiện đã có sẵn.
Thư giãn và thú vị.

Địa chỉ


Có ba loại địa chỉ trên Algorand: (1) Địa chỉ tài khoản cá nhân (2) Địa chỉ tài khoản nhiều chữ ký (3) Địa chỉ tài khoản logic

Địa chỉ tài khoản cá nhân là một địa chỉ ví thông thường, với khóa riêng làm mật khẩu và chính địa chỉ đó được tạo bởi khóa chung. Khi một giao dịch cần được gửi từ địa chỉ này, khóa riêng tương ứng cần được sử dụng để ký vào giao dịch trước khi nó có thể được xác thực trên blockchain.

Nhiều địa chỉ tài khoản chữ ký


Địa chỉ tài khoản nhiều chữ ký là địa chỉ bao gồm nhiều địa chỉ tài khoản cá nhân. Người dùng có thể kết hợp nhiều địa chỉ thành một địa chỉ nhiều chữ ký bằng cách sử dụng SDK và chỉ định rằng cần phải có chữ ký từ ít nhất n địa chỉ để mở khóa địa chỉ.


Ví dụ: bạn có thể kết hợp ba địa chỉ thành một địa chỉ có nhiều chữ ký và chỉ định số lượng địa chỉ đã được mở khóa là 2, nghĩa là , khi có hai trong số chúng Sau khi khóa riêng của địa chỉ ký một giao dịch, giao dịch đó có thể sử dụng nội dung trong địa chỉ nhiều chữ ký.


Đây là trải nghiệm khi triển khai với Javascript SDK:


深度解析共识算法系列之 Algorand 平台开发实践 | Hacker Speaker 回顾 #10

Không đơn giản thế sao? Tất cả là nhờ những lợi thế độc đáo của Algorand về mật mã, có thể cung cấp cho các nhà phát triển trải nghiệm phát triển thực sự trong kỷ nguyên Internet.

Địa chỉ tài khoản hợp lý


Tài khoản logic là tài khoản được kiểm soát bởi một chương trình. Loại tài khoản này có thể lưu trữ tài sản ALGO và ASA giống như tài khoản thông thường, nhưng điểm khác biệt là các giao dịch được gửi từ tài khoản logic không được thực hiện thông qua chữ ký mà được đánh giá bằng chương trình logic tương ứng với tài khoản.


Chương trình logic ở đây là hợp đồng thông minh ASC1 (Hợp đồng thông minh Algorand) trên Algorand. Nhóm Algorand đã thiết kế một ngôn ngữ kịch bản đơn giản TEAL để triển khai chương trình logic này.

Trong mục đích sử dụng cụ thể, trước tiên chúng tôi sử dụng ngôn ngữ TEAL để viết tập lệnh nhằm triển khai logic, sau đó sử dụng các công cụ để biên dịch tập lệnh , bạn có thể nhận được Địa chỉ tài khoản logic và chữ ký logic; thông thường chúng tôi có thể nạp tiền từ tài khoản chung sang địa chỉ tài khoản logic này; nếu chúng tôi muốn chuyển một số nội dung từ tài khoản này, chúng tôi cần sử dụng địa chỉ tài khoản logic này làm người gửi, và sau đó sử dụng chữ ký logic của nó để Giao dịch được ký kết; cuối cùng, giao dịch được gửi đến chuỗi và chuỗi khối sẽ đánh giá tính hợp pháp của giao dịch dựa trên logic tập lệnh được viết sẵn.

Sử dụng hàm này, kết hợp với phép hoán đổi nguyên tử đã đề cập trước đó, chúng ta có thể đạt được nhiều hàm. Dưới đây là ví dụ về cách tài khoản có thể tự động đổi mã thông báo ASA.

Đầu tiên hãy viết một tập lệnh, logic là:

Phải là nhóm giao dịch có hai giao dịch, một trong số đó sử dụng địa chỉ của tài khoản logic làm người gửi và số tiền giao dịch là X mã thông báo ASA

Một giao dịch khác trong nhóm giao dịch phải là giao dịch gửi Y ALGO tới tài khoản

Mã Cách sử dụng tập lệnh TEAL để triển khai logic như sau (Lưu ý: Nhiều phán đoán bảo mật khác được bỏ qua ở đây để thuận tiện, chẳng hạn như phán đoán về phí giao dịch, v.v. Bạn cần chú ý đến nó trong hoạt động thực tế. Để có mã hoàn chỉnh, vui lòng tham khảo tài liệu: https://developer.algorand.org/):


深度解析共识算法系列之 Algorand 平台开发实践 | Hacker Speaker 回顾 #10

Sau đó, chúng ta cần sử dụng công cụ biên dịch để biên dịch mã thông báo trên và chúng ta có thể nhận được chuỗi chương trình định dạng Base64 và địa chỉ tài khoản logic; sau đó chúng ta có thể sử dụng SDK để xây dựng nó và gửi giao dịch.


深度解析共识算法系列之 Algorand 平台开发实践 | Hacker Speaker 回顾 #10

Ở đây chúng tôi sử dụng SDK ngôn ngữ Java làm ví dụ (phần giao dịch kết hợp bị bỏ qua, để biết chi tiết, vui lòng tham khảo tài liệu: https:// /developer.algorand.org/):


深度解析共识算法系列之 Algorand 平台开发实践 | Hacker Speaker 回顾 #10

Giải quyết số dư tối thiểu

Liên quan đến tài khoản, có một vấn đề cần được chú ý trong thiết kế blockchain, đó là ngăn chặn việc lạm dụng địa chỉ.


Mỗi địa chỉ trên blockchain sẽ chiếm không gian lưu trữ của nút trong mạng. Nếu người dùng được phép Tạo địa chỉ trên chuỗi với chi phí cao sẽ làm tăng đáng kể việc sử dụng bộ nhớ, do đó làm tăng gánh nặng cho các nút và giảm tính phân cấp của mạng.


Cơ chế ngăn chặn các sự cố tương tự trên Ethereum là cung cấp phần thưởng, phần thưởng có thể nhận được khi người dùng chủ động gửi giao dịch tới phá hủy một địa chỉ Một số phần thưởng Gas.


Nhưng phương pháp này rõ ràng không hiệu quả trong thực tế. Bong bóng ICO năm 2017 đã tạo ra một số lượng lớn các hợp đồng và địa chỉ vô dụng, chiếm một lượng lớn không gian lưu trữ và làm tăng đáng kể gánh nặng cho các nút. Hiện tại, nếu bạn muốn đồng bộ hóa nút lưu trữ Ethereum, bạn cần ít nhất 3T dung lượng ổ cứng và đó phải là ổ SSD có tốc độ IO trên 5.000.


Giải pháp của Algorand cho vấn đề này là trực tiếp tăng chi phí tạo địa chỉ. Địa chỉ trên Algorand có số dư tối thiểu. Mỗi địa chỉ Algorand thông thường được yêu cầu chứa tối thiểu 0,1 ALGO; khi một địa chỉ chứa tài sản ASA, số dư tối thiểu này sẽ tăng thêm 0,1 ALGO cho mỗi tài sản ASA được giữ.


Nếu một giao dịch cố gắng giảm số lượng ALGO trên một địa chỉ tài khoản xuống ít hơn số dư tối thiểu thì Giao dịch sẽ không hợp pháp.


Nếu bạn muốn rút toàn bộ ALGO còn lại và hủy địa chỉ, bạn có thể sử dụng tham số CloseTo trong giao dịch để đạt được phương pháp cụ thể.Bạn có thể tham khảo tài liệu: https://developer.algorand.org/.


ASA

Tài sản tùy chỉnh ASA trên Algorand được triển khai bởi các chức năng gốc thay vì triển khai các hợp đồng như ERC20 trên Ethereum.

Tạo nội dung, thiết lập thông tin nội dung, đóng băng nội dung, gửi nội dung, v.v. Tất cả các chức năng này đều có thể đạt được bằng cách gửi các giao dịch gốc mà không cần đến gọi bất kỳ hợp đồng tùy chỉnh.

SDK cũng có các chức năng tương ứng. Dưới đây là ví dụ sử dụng SDK ngôn ngữ GO để tạo nội dung ASA trên chuỗi: span>


深度解析共识算法系列之 Algorand 平台开发实践 | Hacker Speaker 回顾 #10

Cần lưu ý rằng mỗi địa chỉ phải đăng ký (Opt-In) trước khi nhận tài sản ASA, tức là Thông báo cho blockchain rằng bạn đã sẵn sàng nhận tài sản này bằng cách gửi cho mình một giao dịch với số tiền bằng 0 của tài sản ASA này.

Thiết kế này chủ yếu dành cho việc lập kế hoạch tuân thủ trong tương lai: Algorand, với tư cách là một nền tảng tài chính, sẽ phát hành nhiều sản phẩm tài chính tuân thủ khác nhau. Hầu hết các tài sản tuân thủ đều yêu cầu tổ chức phát hành và người bán triển khai hệ thống KYC cho người mua. Điều này có nghĩa là chỉ sau khi tài khoản đã trải qua KYC cho tài sản ASA thì tài khoản đó mới đủ điều kiện nhận tài sản này.

Thiết kế của Algorand về cơ bản đảm bảo tính khả thi của KYC trên chuỗi và sử dụng khẩu hiệu Nền kinh tế không biên giới. Mã này được triển khai trong thiết kế thực tế.


Phương pháp sử dụng SDK để triển khai đăng ký địa chỉ ASA như sau:


深度解析共识算法系列之 Algorand 平台开发实践 | Hacker Speaker 回顾 #10

Bước tiếp theo là gửi nội dung ASA. Quá trình này hoàn toàn giống với việc gửi ALGO nội dung gốc. Bạn chỉ cần gọi hàm SDK để xây dựng giao dịch, điền thông số, sau đó ký và gửi.


深度解析共识算法系列之 Algorand 平台开发实践 | Hacker Speaker 回顾 #10

Ngoài ra, Algorand còn cung cấp các chức năng như đóng băng và tiêu diệt ASA. Chi tiết cụ thể vui lòng tham khảo tài liệu tham khảo: https://developer.algorand.org/.

Viết ở cuối

Có lẽ bạn sẽ nhận thấy: Algorand hiện không cung cấp cái gọi là chức năng hợp đồng thông minh hoàn chỉnh Turing cho các nhà phát triển. Đây là một quyết định được đưa ra hoàn toàn từ góc độ sản phẩm.

Hợp đồng Turing-Complete có mức độ linh hoạt cao nhất, nhưng sự linh hoạt này xuất phát từ nhu cầu về bảo mật và sự thuận tiện. Khi các nhà phát triển có thể sử dụng nhiều chức năng và chức năng hơn, điều đó có nghĩa là họ cần nhiều mã hơn để thực hiện một chức năng đơn giản, điều này làm tăng bề mặt tấn công và giảm sự tiện lợi khi sử dụng.

Chức năng giao dịch nguyên tử cũng cần thiết trong các sàn giao dịch phi tập trung. Chức năng này vốn có trong Algorand và chỉ cần một vài dòng để sử dụng. Mã cũng an toàn hơn; nhưng trên Ethereum, nó yêu cầu triển khai một hợp đồng phức tạp để đạt được điều này.

Nó giống như các ứng dụng trên Windows và MacOS: dễ tùy chỉnh hơn nhưng có khả năng dễ bị nhiễm vi-rút. , nhiều loại quảng cáo bật lên khác nhau cũng đang nổi lên không ngừng, có ít chức năng hơn nhưng ngắn gọn hơn, đáp ứng nhu cầu mà vẫn đảm bảo an ninh, tiện lợi.

Trong tương lai, Algorand sẽ tiếp tục mở rộng chức năng của mình theo nhu cầu của các nhà phát triển, đảm bảo rằng nó có thể làm hài lòng tất cả người dùng đồng thời mang lại ưu tiên bảo mật và tiện lợi. Nhu cầu phát triển các ứng dụng tập trung.

Đồng thời, bạn cũng có thể nhận thấy rằng Algorand triển khai hầu hết các chức năng của mình ngoài chuỗi, chỉ những thông tin cần được xác minh và đã thông qua sự đồng thuận sẽ được gửi đến chuỗi. Hầu hết công việc tính toán không cần phải xử lý chuỗi, điều này làm giảm áp lực lên chuỗi và cũng cải thiện hiệu quả phát triển.

Ngoài ra, để thuận tiện cho các nhà phát triển, Algorand cung cấp mục tiêu công cụ dòng lệnh và Javascript, Java, Python, GO bốn SDK ở nhiều dạng khác nhau. ngôn ngữ để hỗ trợ bạn phát triển.

Trên thực tế, nếu quan sát kỹ, bạn có thể thấy rằng tôi đã sử dụng bốn ngôn ngữ phát triển để hiển thị các ví dụ mã trong bài giảng hôm nay . Để biết thêm công cụ, vui lòng tham khảo tài liệu dành cho nhà phát triển: https://developer.algorand.org/.

Tóm lại, Algorand cam kết hạ ngưỡng phát triển xuống mức thấp nhất. Tôi mong mọi người có thể nhận ra điều đó qua bài giảng ngày hôm nay. đã nhận được .

Cuối bài giảng, tôi sẽ giao cho bạn một bài tập khác. Tôi hy vọng mọi người sẽ có thể phát hành mã thông báo ASA của riêng mình trên Algorand sau khi họ quay trở lại. Chúng tôi sẽ trao phần thưởng 100 ALGO cho 10 sinh viên xuất sắc nhất được cấp thành công và cung cấp địa chỉ của họ cho chúng tôi. Để biết thêm chi tiết, vui lòng truy cập địa chỉ Github bên dưới

https://Gist.github.com/Mine77/23e513462ad55f9da2888996e4deeae5

Đi nào, Kỷ nguyên Khám phá của Algorand đã bắt đầu! Mọi thứ trên thế giới đều có ở đó, hãy đi lấy nếu bạn muốn!

Hỏi đáp nổi bật

H: Sự khác biệt giữa ASA và ERC20 là gì?


Đ: ERC20 được triển khai thông qua các hợp đồng thông minh trên Ethereum, trong khi ASA có nguồn gốc từ Chức năng chuỗi khối Algorand. Lợi ích của chức năng gốc là gấp đôi. Trước hết, việc sử dụng sẽ đơn giản hơn rất nhiều, các thao tác phát hành và quản lý ASA cũng giống như vận hành token gốc. Điều này cũng đặt nền tảng cho DeFi. Ví dụ, Ethereum sẽ cần một thứ như WETH, nó thực sự là một loại tiền tệ sử dụng ERC20 để thay thế ETH và được phát hành với hình thức thế chấp 1:1 bằng ETH. Lý do cần thiết là có sự khác biệt giữa việc vận hành ETH và vận hành mã thông báo ERC20 trên Ethereum, vì vậy chỉ khi biến ETH thành mã thông báo ERC20 thì mới có thể sử dụng các hoạt động hợp đồng thông thường. Lợi ích thứ hai là tiết kiệm chi phí cho việc kiểm tra tuân thủ và bảo mật. Nói chung, nếu mã thông báo ERC20 được liệt kê trên ví hoặc sàn giao dịch thì cần phải gửi báo cáo kiểm tra mã của bên thứ ba. Một báo cáo kiểm toán như vậy thường tiêu tốn ít nhất 50.000 USD, đây vẫn là một gánh nặng đáng kể đối với một nhóm doanh nhân nhỏ. Đồng thời, muốn tuân thủ thì cũng cần phải vượt qua một số đánh giá, tất cả đều phải trả giá. Nhưng ASA trên Algorand là một hàm gốc và đã được xem xét. Do đó, mã thông báo ASA không cần gửi báo cáo kiểm toán bổ sung nếu chúng muốn được liệt kê trên ví hoặc sàn giao dịch. Các quan chức của Algorand cũng đang chuẩn bị một khuôn khổ tuân thủ để giảm hơn nữa chi phí ban hành ASA tuân thủ.

Hỏi: Liệu các hợp đồng thông minh không trạng thái của Algorand có hạn chế các chức năng có thể đạt được không?


Đ: Nó sẽ làm giảm tính linh hoạt nhưng vẫn đảm bảo tính bảo mật.


Hỏi: Quá trình đăng ký và KYC được kết nối như thế nào?


A: Sử dụng chức năng giao dịch nguyên tử + ASC, về cơ bản có thể nhận ra các chức năng mà tất cả các DAPP hiện có yêu cầu . Mô hình phát triển sẽ giống Pure Function trong Rust hơn, là mô hình lập trình chức năng. Hiện tại bên mình cũng đã cung cấp rất nhiều ví dụ, các bạn sinh viên muốn phát triển trên Algorand có thể tìm hiểu hoặc liên hệ với mình


Source link :weixin.qq.com


Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:

Nhóm Telegram đăng ký: https://t.me/theblockbeats

Nhóm Telegram thảo luận: https://t.me/BlockBeats_App

Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia

Chọn thư viện
Thêm mới thư viện
Hủy
Hoàn thành
Thêm mới thư viện
Chỉ mình tôi có thể nhìn thấy
Công khai
Lưu
Báo lỗi/Báo cáo
Gửi