Hướng dẫn có thẩm quyền để phát triển chuỗi khối

Tiền điện tử, ICO, tiền ma thuật trên internet—tất cả đều rất thú vị và bạn, nhà phát triển háo hức, muốn tham gia vào sự điên rồ đó. Bạn bắt đầu từ đâu?

Tôi rất vui vì bạn hào hứng với không gian này. Tôi cũng vậy. Nhưng có thể bạn sẽ thấy không rõ bắt đầu từ đâu. Chuỗi khối đang di chuyển với tốc độ chóng mặt, nhưng không có lộ trình rõ ràng để học những thứ này.

Lưu ý của biên tập viên:
Tác giả khách mời Haseeb Qureshi là cựu giám đốc sản phẩm tại App Academy, người chơi poker đẳng cấp thế giới và kỹ sư phần mềm tại Airbnb. Haseeb cống hiến cho chủ nghĩa vị tha hiệu quả và giờ là Blockchainist. Xuất bản lại với sự cho phép.

Kể từ khi tôi rời Airbnb để làm việc toàn thời gian trên blockchain, nhiều người đã liên hệ với tôi để hỏi cách tham gia toàn thời gian vào không gian blockchain. Hãy xem đây là hướng dẫn có thẩm quyền (và chắc chắn là không đầy đủ) của tôi về cách tham gia vào kỹ thuật chuỗi khối.

Hướng dẫn này sẽ tiến hành trong mười phần:

Trước khi tôi trả lời câu hỏi đó, trước tiên hãy để tôi lưu ý: blockchain là một không gian được định giá quá cao ngay bây giờ. Những mức giá này là không bền vững, và một sự sụp đổ chắc chắn sẽ đến. Tất cả điều này đã xảy ra trước đây, và có thể sẽ xảy ra một lần nữa. Nhưng nếu bạn làm việc lâu dài trong không gian này, bạn sẽ học cách giảm giá. Theo lời của Emin Gun Sirer—giá cả là phần ít thú vị nhất của tiền điện tử. Đây là những công nghệ cực kỳ quan trọng và chúng sẽ thay đổi thế giới một cách không thể thay đổi.

Nếu bạn không chắc chắn, tôi không thể nói cho bạn biết có nên nhảy vào hay không. Nhưng tôi có thể cho bạn biết 5 lý do đã thuyết phục tôi thực hiện bước nhảy vọt:

1. Vẫn còn sớm.

Bitcoin đã được phát minh cách đây 10 năm, nhưng tốc độ đổi mới chỉ đạt đến đỉnh điểm trong vài năm gần đây, đặc biệt là với sự ra mắt của Ethereum vào năm 2015. Hầu hết các công ty và ý tưởng mới trong không gian này đều được xây dựng dựa trên Ethereum, vẫn còn rất non nớt.

Ngay cả khi bạn bắt đầu ngay bây giờ, bạn thực sự có thể trở thành một chuyên gia đẳng cấp thế giới trong vòng vài năm. Hầu hết mọi người chỉ làm việc này chưa lâu và sẽ không khó để bắt kịp. Bắt đầu từ bây giờ sẽ tương tự như việc các chuyên gia học sâu bắt đầu nghiên cứu chủ đề này vào cuối những năm 2000.

2. Không gian này chưa có kênh tài năng mạnh mẽ.

Hầu hết những sinh viên giỏi nhất và thông minh nhất tại các trường đại học đang tập trung vào học máy, lập trình web hoặc phát triển trò chơi. Chắc chắn, các chuỗi khối đang trở nên hấp dẫn hơn trong các cuộc thảo luận công khai, nhưng chúng vẫn là một chủ đề kỳ lạ và mang tính lật đổ để đánh cược sự nghiệp của bạn.

Ban đầu, blockchain chỉ là lĩnh vực của cypherpunks, hoang tưởng và lập dị. Điều đó chỉ mới bắt đầu thay đổi. Chỉ cần là một nhà phát triển tò mò và cởi mở, bạn sẽ mang lại nhiều giá trị cho không gian.

3. Phần lớn sự đổi mới đang diễn ra bên ngoài giới học thuật.

Satoshi Nakamoto không phải là một học giả như chúng ta biết. Chưa có trường đại học hoặc tổ chức nào cung cấp sự tập trung chặt chẽ vào chuỗi khối. Hầu hết sự đổi mới ở đây đã được dẫn dắt bởi những người hâm mộ, doanh nhân và nhà nghiên cứu độc lập. Hầu hết mọi thứ bạn cần biết đều có trong sách trắng, bài đăng trên blog, kênh Slack công khai và phần mềm nguồn mở. Tất cả những gì bạn cần là xắn tay áo lên và lao vào cuộc chiến.

4. Cầu nhân tài vượt xa cung.

Không có đủ nhà phát triển trong không gian này và họ không thể được đào tạo đủ nhanh. Mọi người đang cạnh tranh để thuê nhân tài blockchain và các dự án đang cảm thấy thiếu hụt nhân tài. Nhiều công ty tốt nhất không thể trả lương đủ để nhân viên ở lại vì họ có quá nhiều cơ hội. Nếu bạn có một số kỹ năng, bạn sẽ dễ dàng kiếm được một công việc.

5. Tiền điện tử thực sự rất tuyệt.

Nơi nào khác bạn có thể xây dựng những thứ khoa học viễn tưởng như tiền phi tập trung, được bảo mật bằng mật mã? Hiện tại đó là miền tây hoang dã—và điều này mang lại điều tốt và điều xấu. Không gian có thể sử dụng tính minh bạch hơn và quy định cuối cùng sẽ đến. Nhưng không còn nghi ngờ gì nữa, tiền điện tử là một trong những lĩnh vực sáng tạo nhất mà bạn có thể làm việc ngay bây giờ.

Naval Ravikant đã nói trong một cuộc phỏng vấn gần đây: chìa khóa thành công là mang lại cho xã hội những thứ mà nó muốn, nhưng không biết cách tự mình đạt được. Bạn không thể đến trường vì những thứ như vậy; nếu bạn có thể, thế giới đã có nguồn cung cấp ổn định.

Đọc thêm:  GeForce GTX 1060 3GB so với Radeon RX 570 4GB: Bản cập nhật 2018

Vì vậy, hãy xây dựng thứ mà không ai khác biết cách xây dựng. Ngay bây giờ, các chuỗi khối là thương hiệu mới và còn rất nhiều điều cần tìm hiểu. Nếu bạn thành công trong việc xây dựng tương lai của công nghệ phi tập trung, thế giới sẽ thưởng cho bạn rất hậu hĩnh.

Vì vậy, nói rằng bạn muốn ném vào chiếc mũ của bạn. Bạn cần biết gì trước khi bước vào võ đài?

Tôi khuyên bạn nên tăng cường hiểu biết của mình về các nguyên tắc cơ bản trước khi tìm hiểu sâu hơn. Chuỗi khối được xây dựng dựa trên hàng thập kỷ nghiên cứu về khoa học máy tính, mật mã và kinh tế. Satoshi Nakamoto là một kẻ phản bội, nhưng ông cũng biết rõ lịch sử trước mình. Để hiểu lý do tại sao các chuỗi khối hoạt động, bạn cần hiểu các khối xây dựng của chúng—cái gì ra đời trước chuỗi khối và tại sao những thứ đó không hoạt động.

Dưới đây là một số điều kiện tiên quyết tốt để làm quen, theo thứ tự quan trọng.

Lưu ý, các liên kết này chỉ là điểm bắt đầu, có thể bạn sẽ muốn tìm hiểu sâu hơn về nhiều chủ đề này.

Bạn sẽ muốn làm quen với các đặc điểm và đảm bảo độ phức tạp của các cấu trúc dữ liệu chính: danh sách được liên kết, cây tìm kiếm nhị phân, bản đồ băm và đồ thị (cụ thể là đồ thị tuần hoàn có hướng nổi bật trong chuỗi khối). Việc xây dựng chúng từ đầu sẽ giúp hiểu rõ hơn về cách chúng hoạt động và các thuộc tính của chúng.

Mật mã học là tên gọi và nền tảng của tiền điện tử. Tất cả các loại tiền điện tử đều sử dụng mật mã khóa công khai/riêng tư làm cơ sở để nhận dạng và xác thực. Tôi khuyên bạn nên học RSA (dễ học và không yêu cầu nền tảng toán học quá vững), sau đó xem ECDSA. Mật mã đường cong elip yêu cầu toán học trừu tượng hơn nhiều—việc hiểu tất cả các chi tiết không quan trọng, nhưng hãy biết rằng đây là mật mã được sử dụng trong hầu hết các loại tiền điện tử, bao gồm cả Bitcoin.

Nguyên hàm mật mã quan trọng khác là hàm băm mật mã. Chúng có thể được sử dụng để xây dựng các kế hoạch cam kết và là khối xây dựng cho cây Merkle. Cây Merkle kích hoạt bằng chứng Merkle, một trong những tối ưu hóa quan trọng mà chuỗi khối sử dụng cho khả năng mở rộng.

Có một số sách giáo khoa tốt về các hệ thống phân tán, nhưng đó là một lĩnh vực nghiên cứu khó khăn và phức tạp. Các hệ thống phân tán là hoàn toàn cần thiết để lý luận về chuỗi khối, vì vậy bạn phải xây dựng nền tảng ở đây trước khi giải quyết vấn đề lập trình chuỗi khối.

Khi bạn không còn sống trên một cỗ máy duy nhất, bạn phải bắt đầu lý luận về tính nhất quán và đồng thuận. Bạn sẽ muốn biết sự khác biệt giữa các mô hình nhất quán có thể tuyến tính hóa và cuối cùng. Bạn cũng sẽ muốn tìm hiểu sự đảm bảo của các thuật toán đồng thuận có khả năng chịu lỗi, chẳng hạn như Paxos và RAFT. Biết những khó khăn của lý luận về thời gian trong một hệ thống phân tán. Đánh giá cao sự đánh đổi giữa an toàn và sống động.

Với nền tảng đó, bạn sẽ có thể hiểu được những khó khăn xung quanh sự đồng thuận chịu lỗi của Byzantine, yêu cầu bảo mật chính của các chuỗi khối công khai. Bạn sẽ muốn tìm hiểu về PBFT, một trong những thuật toán có thể mở rộng đầu tiên để mang lại sự đồng thuận chịu lỗi của Byzantine. PBFT là cơ sở cho nhiều thuật toán đồng thuận chuỗi khối không bằng chứng công việc. Một lần nữa, bạn không cần phải hiểu chi tiết về cách thức và lý do PBFT đúng, nhưng hãy nắm được ý tưởng chung và các đảm bảo bảo mật của nó.

Nó cũng rất hữu ích để hiểu các phương pháp phân phối cơ sở dữ liệu truyền thống (về cốt lõi, chuỗi khối là cơ sở dữ liệu). Tìm hiểu về sharding (chẳng hạn như thông qua băm nhất quán), sao chép người lãnh đạo theo dõi và các cam kết dựa trên đại biểu. Xem xét các bảng băm phân tán (DHT), chẳng hạn như Chord hoặc Kademlia.

Sự phân cấp của các chuỗi khối xuất phát phần lớn từ cấu trúc liên kết mạng ngang hàng của chúng. Như vậy, các chuỗi khối là hậu duệ trực tiếp của các mạng P2P trong quá khứ.

Để hiểu mô hình giao tiếp chuỗi khối, bạn cần hiểu những điều cơ bản về mạng máy tính: điều này có nghĩa là hiểu TCP so với UDP, mô hình gói, gói IP trông như thế nào và cách thức hoạt động của định tuyến Internet.

Các chuỗi khối công khai có xu hướng truyền bá thông điệp thông qua các giao thức tin đồn bằng cách sử dụng lũ lụt. Thật hữu ích khi tìm hiểu lịch sử thiết kế mạng P2P, từ Napster đến Gnutella, BitTorrent và Tor. Các chuỗi khối có vị trí riêng của chúng, nhưng chúng rút ra bài học từ các mạng này và cách chúng được thiết kế.

Đọc thêm:  CPU được thiết kế và xây dựng như thế nào, Phần 2: Quy trình thiết kế CPU

Tiền điện tử vốn đã đa ngành—đây là một phần lý do khiến chúng trở nên hấp dẫn và cấp tiến. Bên cạnh khoa học máy tính, mật mã và mạng, chúng cũng đan xen sâu sắc với kinh tế học. Tiền điện tử có thể thu được nhiều đặc tính bảo mật thông qua cấu trúc kinh tế của chúng, thường được gọi là kinh tế học tiền điện tử . Như vậy, kinh tế học là điều cần thiết để hiểu về tiền điện tử.

Nhánh quan trọng nhất của kinh tế học liên quan đến tiền điện tử là lý thuyết trò chơi, nghiên cứu về phần thưởng và ưu đãi giữa nhiều tác nhân. Bạn không cần phải đi quá sâu ở đây, nhưng bạn cần hiểu các công cụ cơ bản của phân tích lý thuyết trò chơi và cách bạn có thể sử dụng chúng để phân tích các động cơ trong trò chơi một lần và trò chơi lặp lại.

Hai khái niệm chính trong tiết mục của bạn phải là điểm cân bằng Nash và điểm Schelling, vì chúng có đặc điểm nổi bật trong phân tích kinh tế tiền điện tử.

Tiền điện tử không chỉ là giao thức, chúng còn là dạng tiền. Như vậy, chúng phản ứng với các quy luật kinh tế vĩ mô (nếu có thể gọi là quy luật). Tiền điện tử phải tuân theo các chính sách tiền tệ khác nhau và phản ứng có thể đoán trước được với lạm phát và giảm phát. Bạn nên hiểu các quy trình này và tác động của chúng đối với việc chi tiêu, tiết kiệm, v.v.

Một khái niệm kinh tế có giá trị khác là vận tốc của tiền tệ, đặc biệt khi nó tương ứng với việc định giá một loại tiền tệ.

Tiền điện tử cũng đan xen sâu sắc với thị trường, điều này đòi hỏi sự hiểu biết về kinh tế vi mô. Bạn sẽ cần một trực giác mạnh mẽ cho các đường cung và cầu. Bạn sẽ có thể lập luận về cạnh tranh và chi phí cơ hội (chúng sẽ áp dụng thường xuyên cho việc khai thác tiền điện tử). Đối với nhiều phân phối tiền xu và hệ thống kinh tế tiền điện tử, lý thuyết đấu giá nổi bật.

Tôi hy vọng bạn đã quen thuộc với một số chủ đề này rồi. Nếu bạn đang có, hãy lướt qua hoặc bỏ qua chúng hoàn toàn.

Được rồi, đến bây giờ bạn đã xem qua và củng cố các nguyên tắc cơ bản của mình (hoặc có thể bạn đã bỏ qua một loạt, ai đang tính đây?), vì vậy bây giờ bạn đã kiểm tra lý thuyết của mình, hãy bắt đầu phát triển chuỗi khối.

Vào tháng 10 năm 2008, Satoshi Nakamoto đã xuất bản một sách trắng trong đó ông mô tả một giao thức cho một loại tiền kỹ thuật số phi tập trung. Ông gọi giao thức này là Bitcoin.

Trước khi bạn có thể hiểu được những ý tưởng lớn đằng sau các chuỗi khối, bạn phải bắt đầu với Bitcoin và nắm bắt được kiến thức ban đầu của Satoshi.

Đầu tiên, tôi khuyên bạn nên xây dựng trực giác của mình về bằng chứng công việc và quy tắc lựa chọn ngã ba (còn được gọi là sự đồng thuận của Nakamoto). Bắt đầu ở đây:

Tôi khuyên bạn nên xem nhiều hơn một video giải thích để hình thành ý tưởng trong đầu bạn:

Tuyệt vời. Bây giờ bạn đã xây dựng trực giác của mình, bài viết này sẽ cung cấp giải thích sâu hơn từ đầu đến cuối về các thành phần quan trọng trong cách thức hoạt động của Bitcoin.

Bây giờ bạn đã có trực giác cấp cao, đã đến lúc xây dựng chuỗi khối dựa trên bằng chứng công việc của riêng bạn. Đừng lo lắng, nó dễ dàng hơn âm thanh. Dưới đây là một số tài nguyên tốt.

Đầu tiên, tôi có một video bài giảng hướng dẫn chính xác cách thực hiện điều này trong Ruby (Tôi khuyên bạn nên xem ngay cả khi bạn không phải là lập trình viên Ruby):

Nguồn và slide ở đây.

Ngoài ra còn có các triển khai chuỗi khối khác mà bạn có thể tìm thấy, được viết bằng nhiều ngôn ngữ lập trình khác nhau. Tiếp tục và xây dựng của riêng bạn, và tự hài lòng rằng nó hầu như hoạt động.

Khi bạn đã làm được đến đây, bạn nên nắm rõ cách triển khai một ứng dụng thanh toán đơn giản trên một chuỗi khối (tức là Bitcoin). Bây giờ bạn cũng đã có đủ thông tin cơ bản để có thể đọc và hiểu whitepaper gốc của Bitcoin.

Để hiểu tính kinh tế và cơ chế khai thác Bitcoin, tôi khuyên bạn nên xem bài giảng về khai thác Bitcoin trong khóa học Princeton về Bitcoin và tiền điện tử.

Nếu bạn đã hiểu được điều này, bạn nên hiểu Bitcoin đủ rõ để xem qua tiêu đề khối Bitcoin và hiểu ý nghĩa của từng thành phần của nó. Bạn cũng có thể sử dụng trình khám phá khối Bitcoin và điều hướng các giao dịch Bitcoin thô.

Bây giờ là thời điểm tốt để nghiên cứu về lịch sử của Bitcoin và tiền điện tử. Video dưới đây, được cung cấp bởi Decal UC Berkeley, cung cấp một cái nhìn tổng quan tốt.

Một số nguồn tín dụng bổ sung khác:

Bây giờ bạn đã xây dựng một chuỗi khối và hiểu được tính năng động của Bitcoin, đã đến lúc tìm hiểu sâu về Ethereum.

Đọc thêm:  Cách ném bộ điều khiển trò chơi điện tử của bạn

Bạn hiểu làm thế nào các chuỗi khối và bằng chứng công việc có thể đạt được sự đồng thuận phân tán, chịu lỗi Byzantine trong mạng ngang hàng. Nhưng mạng thanh toán chỉ là một ứng dụng mà bạn có thể chạy trên một chuỗi khối như vậy. Vào năm 2013, Vitalik Buterin, người tạo ra Ethereum đã hỏi: điều gì sẽ xảy ra nếu bạn sử dụng một chuỗi khối để triển khai một máy tính phi tập trung?

Trong Ethereum, bạn trả tiền cho những người khai thác để thực hiện các chương trình của mình trên máy ảo phân tán này. Điều này có nghĩa là bạn có thể thực hiện các tính toán tùy ý, sử dụng ngôn ngữ lập trình hoàn chỉnh Turing (không giống như tập lệnh Bitcoin). Rõ ràng là điều đó bao gồm các ứng dụng liên quan đến thanh toán, vì vậy Ethereum kích hoạt một tập hợp siêu chức năng của Bitcoin và đã tạo ra sự phục hưng của sự đổi mới.

Điều này đưa chúng ta đến hợp đồng thông minh—tên của các chương trình chạy trên một máy ảo như vậy. Một hợp đồng thông minh có thể tương tác trực tiếp với tiền điện tử của chuỗi khối phù hợp với việc thực hiện một chương trình. Nói cách khác, bạn có thể tạo các hợp đồng tài chính tự động thực thi. Đó là một ý tưởng điên rồ và tất cả các loại công cụ tương lai khoa học viễn tưởng mà bạn có thể thực hiện khi nắm bắt được mô hình lập trình này.

Ethereum đã kích hoạt làn sóng ICO và các nhà phát triển xây dựng trên blockchain. Nó là loại tiền điện tử lớn thứ hai sau Bitcoin, nó có hơn 10 lần số nhà phát triển của nền tảng phổ biến tiếp theo, nó có đội ngũ nhà phát triển mạnh nhất, công cụ hoàn thiện nhất và phần lớn các ICO và dự án trên đó. Nó cũng có nhiều hỗ trợ nhất trong ngành, điều này còn lâu mới có được. Rất có thể, nếu bạn đang phát triển chuỗi khối, bạn sẽ viết mã cho các hợp đồng thông minh Ethereum. (Ngay cả khi bạn không hiểu, điều cần thiết là phải hiểu những gì đang diễn ra trong không gian này.)

Đầu tiên, giải thích chi tiết hơn về Ethereum:

Những ý tưởng đằng sau Ethereum cũng đã tạo ra một làn sóng đổi mới trong kinh tế học tiền điện tử. Bạn nên nhúng ngón chân vào những ý tưởng xung quanh DAO và tất cả những giấc mơ gây sốt khoa học viễn tưởng mà chúng gợi ý.

Được rồi, thế là đủ tưởng tượng, hãy tìm hiểu về công nghệ.

Đây là một cái nhìn tổng quan tốt về Ethereum yellow paper và nội dung của nó, bởi Preethi Kasireddy. Ethereum sử dụng mô hình tài khoản thay vì mô hình UTXO của Bitcoin—bạn sẽ sớm thấy lý do tại sao điều này giúp viết hợp đồng thông minh dễ dàng hơn.

Như với bất kỳ công nghệ nào, cách tốt nhất để làm quen với Ethereum là xây dựng một vài dự án nhỏ.

Ngôn ngữ lập trình chiếm ưu thế cho Ethereum là Solidity, đây là ngôn ngữ kiểu JavaScript được nhập tĩnh. Đó là một ngôn ngữ có rất nhiều mụn cóc và nhiều lựa chọn thiết kế đáng ngờ. Các ngôn ngữ mạnh mẽ hơn như Viper có thể thay thế nó khi chúng sẵn sàng sản xuất, nhưng hiện tại Solidity là ngôn ngữ chung của lập trình hợp đồng thông minh. Về cơ bản, đó là JavaScript của Ethereum, vì vậy bạn sẽ cần tìm hiểu nó (và những cạm bẫy của nó).

Để lần đầu tiên bạn tiếp xúc với quá trình phát triển Solidity, tôi khuyên bạn nên tìm hiểu qua tất cả hướng dẫn về CryptoZombies. Đó là một hướng dẫn Codecademy-esque thú vị và chất lượng cao sẽ dạy cho bạn những kiến thức cơ bản về lập trình Solidity.

svg+xml,%3Csvg%20xmlns= Hướng dẫn có thẩm quyền để phát triển chuỗi khối

Bây giờ bạn đã kích thích sự thèm ăn của mình, đã đến lúc tự phát triển.

“Xin chào thế giới” của Ethereum đang xây dựng mã thông báo tuân thủ ERC-20. Tôi giới thiệu hướng dẫn này như một hướng dẫn đầu tiên để hướng dẫn bạn thực hiện quy trình.

Remix là một trình soạn thảo và trình biên dịch Solidity trong trình duyệt—về cơ bản nó là bánh xe đào tạo về phát triển Ethereum, vì vậy tôi khuyên bạn nên thực hiện phần còn lại của quá trình thực hành trong Remix. Nhưng cũng đáng để thiết lập một chuỗi khối cục bộ và tìm hiểu về công cụ Ethereum. Hướng dẫn này thực hiện tốt công việc hướng dẫn bạn qua một ngăn xếp chuỗi khối từ đầu đến cuối và giải thích các phần khi chúng hoạt động.

Tiếp theo, tôi khuyên bạn nên xây dựng một hệ thống bỏ phiếu. Tôi gọi đây là Ứng dụng Todo của Ethereum. Karl Floersch có một hướng dẫn tuyệt vời, nơi anh ấy hướng dẫn cách xây dựng một hệ thống bỏ phiếu tiết lộ cam kết an toàn.

Tuyệt vời, bây giờ là bài kiểm tra giữa kỳ của bạn: xây dựng trò chơi tung đồng xu an toàn, trong đó hai người chơi có thể đặt cược an toàn vào trò tung đồng xu. Lần này không có hướng dẫn, hãy tự làm. Hãy nghĩ về các cuộc tấn công có thể xảy ra—làm sao người chơi có thể gian lận? Bạn có thể đảm bảo rằng họ chơi trung thực không? Dưới đây là một số gợi ý.

Đọc thêm:  Lắp ráp hệ thống loa PC DIY

Bảo mật là hoàn toàn cần thiết để phát triển chuỗi khối. Hợp đồng thông minh đã bị cản trở bởi các vụ hack tai hại, bao gồm vụ hack DAO, vụ hack Ví Parity và vụ hack Ví Parity 2 được đặt tên trìu mến (hiện có áo phông riêng). Bạn nhất định phải đọc các phân tích về cả ba thủ thuật này nếu bạn chuẩn bị viết hợp đồng thông minh sản xuất.

Sự thật là, hợp đồng thông minh cực kỳ khó thực hiện . Mặc dù chuỗi công cụ lập trình sẽ cải thiện để làm cho các cuộc tấn công chính xác này trở nên khó khăn hơn, nhưng cuối cùng tất cả chúng đều do lỗi của người lập trình. Ngoài ra còn có nhiều lỗi tinh vi hơn phát sinh từ lập trình hợp đồng thông minh, chẳng hạn như chạy trước hoặc tạo ngẫu nhiên an toàn.

Là một nhà phát triển hợp đồng thông minh, bạn phải coi bảo mật là tối quan trọng. Không có “di chuyển nhanh và phá vỡ mọi thứ” trong lập trình hợp đồng thông minh. Điều đó có nghĩa là bất kỳ mã nào xử lý các dòng tiền đáng kể phải được chạy qua các máy phân tích tĩnh như Oyente hoặc Securify, được kiểm tra kỹ lưỡng và sau đó được kiểm toán bởi một kiểm toán viên hợp đồng thông minh có kinh nghiệm. Bạn cũng nên cố gắng dựa vào các thành phần đã được kiểm tra trước, chẳng hạn như các hợp đồng mã nguồn mở của OpenZeppelin.

Để tăng cường khả năng bảo mật của bạn, tôi khuyên bạn nên sử dụng The Ethernaut của OpenZeppelin, một trò chơi nơi bạn tìm và tấn công các lỗ hổng trong hợp đồng thông minh. Nhiều người trong số họ yêu cầu bạn sao chép các cuộc tấn công thực sự chống lại các hợp đồng thông minh đã xảy ra trong tự nhiên.

Phil Daian cũng có một bộ thử thách hack hợp đồng thông minh tuyệt vời có tên là Hack This Contract.

Khi bạn vượt qua được điều đó, tôi thực sự khuyên bạn nên đọc toàn bộ Thực tiễn tốt nhất về hợp đồng thông minh, do ConsenSys biên soạn. Dự kiến sẽ xem lại tài liệu này nhiều lần trong sự nghiệp lập trình hợp đồng thông minh của bạn. Thư mục cũng đáng để các chuyên gia bảo mật khám phá thêm.

Nếu bạn đã làm được đến đây, bây giờ bạn đã sẵn sàng bỏ qua Remix và bắt đầu sử dụng ngăn xếp phát triển Solidity nghiêm túc.

Hầu hết các nhà phát triển đề xuất VSCode hoặc Atom cho trình soạn thảo văn bản của bạn, vì họ có các plugin Solidity phù hợp. Để tương tác với một chuỗi khối cục bộ, bạn sẽ muốn sử dụng Ganache (trước đây là TestRPC) và bạn sẽ muốn sử dụng khung Truffle cho các thử nghiệm (dựa trên JS) và định cấu hình quy trình xây dựng của mình.

Bây giờ là thời điểm tốt để xem xét IPFS, mà bạn có thể sử dụng như một kho lưu trữ tệp phi tập trung hoàn toàn với chi phí rẻ hơn nhiều so với chuỗi khối Ethereum. Đây là một lời giải thích ngắn gọn của người sáng tạo, Juan Benet:

Để tương tác với các nút đầy đủ của Ethereum và IPFS, Infura là thứ mà hầu hết các nhà phát triển khuyên dùng. Etherscan và ETH Gas Station cung cấp số liệu thống kê thời gian thực hữu ích trên mạng Ethereum.

Khi bạn đã thiết lập ngăn xếp Web3 đầy đủ của mình, hãy thử triển khai một Dapp đầu cuối (ứng dụng phi tập trung). Hướng dẫn này cung cấp một cái nhìn tổng quan đẹp mắt về toàn bộ ngăn xếp bằng cách sử dụng Node và Postgres cho phần phụ trợ và hướng dẫn này sẽ chỉ cho bạn cách tạo một ứng dụng phi tập trung hoàn toàn, sử dụng IPFS làm lớp bền bỉ của bạn.

Bây giờ bạn sẽ cảm thấy thoải mái với hầu hết công nghệ—việc còn lại là bắt đầu xây dựng nội dung và tìm hiểu sâu hơn về cộng đồng blockchain.

Đầu tiên, hãy bắt đầu xây dựng các dự án của riêng bạn. Nếu có ý tưởng tuyệt vời nào đó khiến bạn hào hứng, hãy xây dựng nó và thuyết phục người khác cùng tham gia với bạn! Nếu bạn chưa có ý tưởng hoặc không thoải mái khi nhúng tay vào, có rất nhiều dự án nguồn mở chất lượng cao hoan nghênh sự đóng góp. OpenZeppelin có thể là một nơi tốt để bắt đầu cho các hợp đồng thông minh.

Tốt hơn nữa, tôi khuyên bạn nên bắt đầu bằng cách tìm một dự án được phát triển tích cực mà bạn yêu thích. Truy cập Slack hoặc Rocketchat của họ—các nhà phát triển thường có thể truy cập dễ dàng. Nói với họ rằng bạn muốn đóng góp và yêu cầu một số nhiệm vụ nhỏ (hoặc tìm các vấn đề chưa được giải quyết trên Github của họ).

Lưu ý rằng trong khi tôi đang tập trung vào các giao thức và phát triển hợp đồng thông minh, các công ty chuỗi khối cần các nhà phát triển web để xây dựng chức năng cốt lõi của họ. Những vai trò này thường sẽ yêu cầu tương tác với các chuỗi khối, vì vậy điều cần thiết là phải có một mô hình tinh thần tốt về cách thức hoạt động của các chuỗi khối — nhưng đối với nhiều kỹ sư tại các công ty khởi nghiệp chuỗi khối, hầu hết công việc của bạn sẽ là xây dựng máy chủ web Python hoặc thiết kế giao diện người dùng React và tương tác với chuỗi khối có thể là một phần nhỏ của công việc đó. Bạn không cần phải chuyên về phát triển hợp đồng thông minh — trên thực tế, đó chỉ là một phần của ngăn xếp chuỗi khối đang hoạt động.

Đọc thêm:  10 điều tồi tệ nhất khi xây dựng một PC chơi game mới

Ngoài các đóng góp mã nguồn mở, còn có nhiều cuộc thi hackathon blockchain liên tục xuất hiện. Hầu hết các dự án đều có Slack công khai miễn phí mà bạn có thể tham gia và có một kênh Gitter rất tích cực cho chính Ethereum, nơi có rất nhiều nhà phát triển tham gia. Khi bạn đi sâu hơn vào không gian, cuối cùng bạn sẽ tìm thấy nhóm ngang hàng của mình, cho dù đó là trong kênh Slack, nhóm Telegram hay kênh Gitter. Dù ở đâu, hãy tìm người của bạn và tiếp tục học hỏi.

Cách tốt nhất để thực sự hiểu thế giới blockchain là đắm mình trong đó. Đọc và lắng nghe những người thông minh nhất, đặc biệt là những thứ họ đã viết trong quá khứ. Đây luôn là chiến lược của tôi khi cố gắng tìm hiểu một miền mới và nó đã mang lại lợi ích cho tôi.

Có rất nhiều nội dung hay về blockchain, nhưng cũng có rất nhiều thứ tào lao. Đây là chế độ ăn uống thông tin tôi đề nghị.

Ba podcast tuyệt vời mà tôi đề xuất là các cuộc phỏng vấn Chuỗi khối hàng ngày của Kỹ thuật phần mềm, cung cấp phần giới thiệu kỹ thuật tốt cho nhiều chủ đề và tiền điện tử. Từ đó, tôi đề xuất Epicenter và Unchained—bạn sẽ muốn quay lại và nghe nhiều tập cũ hơn. Một podcast kỹ thuật sắp ra mắt thú vị khác là Conspiratus. Tôi khuyên bạn nên đăng ký từng cái trong số này.

Có một số kênh Youtube tốt (mặc dù có rất nhiều kênh rác trên Youtube). Đăng ký Ethereum Foundation và xem các bài thuyết trình của Devcon3. Blockchain tại Berkeley ghi lại nhiều bài giảng của họ, hầu hết trong số đó là những tổng quan kỹ thuật tuyệt vời. Decypher Media cũng đăng các bài nói chuyện, đánh giá sách trắng và hướng dẫn. Jackson Palmer có những bài tổng quan hấp dẫn hàng tuần, những bài này ít mang tính kỹ thuật hơn nhưng được trình bày rất đồng đều.

Đối với trò chuyện blockchain thời gian thực, nó chủ yếu sống ở hai nơi: Reddit và Twitter. Đối với Reddit, hầu hết các subreddits đều có chất lượng rất thấp và bị nhiễu. r/Ethereum luôn có chất lượng tốt (và có một vài subreddits ổn cho các loại tiền điện tử cụ thể). Mặc dù vậy, hầu hết các subreddits chủ yếu do các nhà đầu cơ chi phối và không phải là cách sử dụng tốt sự chú ý của bạn. Tránh xa các subreddits liên quan đến Bitcoin. Bitcoin nổi tiếng là có một trong những cộng đồng độc hại nhất và Reddit chỉ phóng đại điều đó.

Twitter là nhiều hơn một túi hỗn hợp. Dù tốt hay xấu, hầu hết mọi người blockchain đều sống trên Twitter. Ban đầu, Twitter của chuỗi khối Twitter có phần bí ẩn đối với tôi, nhưng cuối cùng tôi đã phát triển một bản thể luận không chính thức về những người thuộc chuỗi khối Twitter. Theo kinh nghiệm của tôi, có năm loại tính cách blockchain: người xây dựng, doanh nhân, nhà báo, thương nhân và “nhà lãnh đạo tư tưởng”.

Tránh “các nhà lãnh đạo tư tưởng” như bệnh dịch hạch. Các doanh nhân có thể không sao, mặc dù họ chủ yếu hành động như những người cường điệu hoặc tweet về các dự án của riêng họ. Các nhà đầu tư chủ yếu tweet về giá cả và các dự án cường điệu, vì vậy nếu đó là việc của bạn, thì đó là việc của bạn. Các nhà báo có xu hướng tweet về các mục tin tức chính trong ngày. Tôi khuyên bạn nên tránh xa trừ khi bạn cần phân tích thời gian thực, điều mà bạn có thể không cần. Nếu bạn là một nhà giao dịch tích cực, điều đó có thể quan trọng, nhưng nếu bạn đang cố gắng xây dựng trên chuỗi khối, thì hầu hết các nội dung thời gian thực đều khiến bạn mất tập trung.

Hãy chú ý nhiều nhất đến các nhà xây dựng. Họ là những người quan trọng nhất hiện nay và là những người đang thúc đẩy công nghệ phát triển.

Một vài đại diện từ mỗi danh mục (thực hiện tìm kiếm rộng đầu tiên về những người mà những người này theo dõi nếu bạn muốn điền vào nguồn cấp dữ liệu Twitter của mình):

(Bạn cũng nên theo dõi tôi, mặc dù tôi chắc chắn không thuộc danh sách này.)

Tất cả những gì đã nói, tôi khuyên bạn nên giảm thiểu việc tiếp xúc với Twitter và Reddit. Nếu bạn không phải là một nhà báo hay một người giao dịch trong ngày, thì rất có thể, bạn không cần một cuộc trò chuyện thời gian thực. Thông tin quan trọng sẽ nổi lên đến bạn một cách không đồng bộ. Có một số bản tóm tắt tin tức tốt sẽ tóm tắt những tin tức quan trọng nhất trong ngày/tuần mà bạn có thể sử dụng vào thời gian của mình mà không phải chịu sự chú ý của thị trường.

Đọc thêm:  Đánh giá máy điều nhiệt Nest Learning

Tôi khuyên bạn nên đăng ký Inside Bitcoin để nhận thông báo hàng ngày về các mẩu tin tức quan trọng nhất về tiền điện tử (nó không chỉ bao gồm Bitcoin). Đối với các dự án mã thông báo, Nền kinh tế mã thông báo có các bản ghi hàng tuần xuất sắc và Tuần trong Ethereum có các bản tóm tắt tốt về các diễn biến tập trung vào nhà phát triển trong hệ sinh thái Ethereum.

Ngoài điều này, có lẽ bạn không cần phải theo dõi tin tức thời gian thực. Tập trung vào xây dựng công cụ và học tập.

Bạn sẽ muốn theo dõi các blog tốt nhất. Nội dung dạng dài có xu hướng mang lại hiệu quả tốt nhất cho đồng tiền. Tôi khuyên bạn nên làm theo những điều sau:

(Bạn cũng nên đọc blog của tôi, mặc dù một lần nữa, tôi không hoàn toàn thuộc danh sách này.)

Nếu bạn muốn có một cách tiếp cận có cấu trúc hơn để học tài liệu này, thì có một vài cuốn sách và khóa học chất lượng cao (và rất nhiều cuốn sách và khóa học chất lượng thấp).

Sách giáo khoa tổng thể tốt nhất cho chuỗi khối là Bitcoin và Công nghệ tiền điện tử (đi kèm với khóa học Princeton Coursera). Những cuốn sách duy nhất khác mà tôi muốn giới thiệu trong không gian này là Mastering Bitcoin của Andreas Antonopoulos và Mastering Ethereum sắp ra mắt của anh ấy, đồng tác giả bởi nhà đồng sáng lập Ethereum, Gavin Wood (cả hai đều được xuất bản bởi O’Reilly). Một cuốn sách phi kỹ thuật mà tôi muốn giới thiệu là Digital Gold của Nathaniel Popper. Gần như mọi thứ đáng đọc khác sẽ có trong blog chứ không phải sách—không gian này đang chuyển động nhanh đến mức những nhân vật quan trọng nhất hiếm khi có thời gian để viết sách và sách thường lỗi thời vào thời điểm chúng được phát hành.

Nếu bạn muốn có một cách tiếp cận có cấu trúc hơn để học tài liệu này, thì có một vài khóa học chất lượng cao (và rất nhiều khóa học chất lượng thấp). Tôi đã liên kết với một vài bài giảng từ Khóa học Princeton Coursera (các video cũng có trên Youtube) và Decal UC Berkeley. Tôi cũng đã nghe những điều tốt đẹp về Học viện Consensys dành cho những người muốn tham gia phát triển hợp đồng thông minh.

Tôi cũng đang giảng dạy một hội thảo kéo dài 4 tuần về tiền điện tử cho các nhà phát triển phần mềm tại Trường Khoa học Máy tính Bradfield ở SF. Khóa học chỉ diễn ra trực tiếp tại SF và số lượng chỗ ngồi có hạn, vì đây là lớp học theo kiểu hội thảo nhỏ và chuyên sâu. Nhưng nếu bạn là kỹ sư phần mềm ở SF và muốn tìm hiểu thêm về lý thuyết cũng như thực hành đằng sau tiền điện tử, thì nó có thể phù hợp với bạn.

Như tôi đã nói trước đây, các công ty khởi nghiệp blockchain đang tuyển dụng như điên. Nếu bạn đã thực sự tiến xa đến mức này và thậm chí đã làm được một nửa những điều tôi đề xuất, thì có lẽ bạn đã có thể được tuyển dụng trong không gian này. AngelList đã viết một bài viết tuyệt vời về cách kiếm việc làm trong không gian tiền điện tử.

Có một số công cụ tổng hợp tốt cho các bài đăng công việc liên quan đến blockchain:

Một số công ty khởi nghiệp blockchain đặc biệt hứa hẹn mà tôi biết đang tuyển dụng các nhà phát triển:

Ngoài ra còn có một số công ty lớn hơn trên thị trường dành cho các nhà phát triển tiền điện tử:

(Lưu ý rằng danh sách công ty cụ thể này tập trung vào Vùng Vịnh, bởi vì đó là nơi tôi sống, vì vậy số dặm của bạn có thể thay đổi. Tuy nhiên, các công cụ tổng hợp công việc mang tính toàn cầu hơn.)

Nhưng theo tôi, cách tốt nhất để tham gia vào một công ty là tìm một dự án mà bạn hứng thú và liên hệ trực tiếp với họ. Hầu hết các nhóm blockchain sẵn sàng thuê từ xa để có được tài năng phù hợp. Nhiều nhà phát triển có thể dễ dàng truy cập trên Twitter, Github hoặc trên các kênh Slack công khai của họ. Nếu bạn có một danh mục đầu tư vững chắc và có thể chứng minh các kỹ thuật, hầu hết mọi người sẽ bị ấn tượng nếu bạn thể hiện một số sáng kiến.

Và đó là xa như tôi đã có cho bạn. Nếu bạn đã làm tất cả những điều trên, thì bạn đã sẵn sàng, và có lẽ bạn sẽ còn tiến xa hơn tôi trong một thời gian dài.

Tất nhiên, bởi vì hố thỏ không thực sự kết thúc. Những gì tôi đã cho bạn thấy chỉ là sự khởi đầu. Tiền điện tử vẫn còn ở giai đoạn sơ khai và tôi thực sự tin rằng đây là không gian phát triển nhanh nhất mà bạn có thể làm việc. Tôi chắc chắn rằng hướng dẫn này sẽ hết hạn trong vòng một năm và có rất nhiều dự án tuyệt vời mà tôi chưa có đã có cơ hội để nói về. Nhưng nếu bạn vào không gian này, bạn sẽ tìm thấy chúng đúng lúc.

Tiếp tục khám phá. Tiếp tục trở nên tốt hơn. Tiếp tục học tập. Và tôi hy vọng sẽ thấy bạn đến tham gia cùng chúng tôi.