# Avalanche Doc Read - Learn
###### tags: `Avalanche Doc Read`
---
## General Info
---
透過信用卡直接購買AVAX到鏈上:https://app.pangolin.exchange/#/buy
Avalanche 的主網絡由三個不同的鏈組成,要將您的資金從一條鏈轉移到另一條鏈,需要進行跨鏈轉賬。
有些交易所同時支持 X-Chain 和 C-Chain,有些只支持其中一種
官方跨鏈橋(以太):https://bridge.avax.network/
官方生態網站(不是太完整,很多新項目都沒有):https://ecosystem.avax.network/marketplace
社區驅動的項目列表(比官方多,但還是偏大項目):https://www.avax-projects.com/
---
## Avalanche 平台概述
video intro: https://www.youtube.com/watch?v=oJ_Qo8x0Jqc
---
Avalanche 內鍵 3 條區塊鏈:交易鏈(X-Chain)、平台鏈(P-Chain)和合約鏈(C-Chain)。
所有 3 個區塊鏈均由主網絡驗證和保護。主網絡是一個特殊的子網,所有自定義子網的所有成員也必須通過質押至少 2,000 AVAX 成為主網絡的成員。
---
### 三條區塊鏈
---
- 交易鏈:X-Chain
- 傳輸資產
- 平台鏈:P-Chain
- 創建子網
- 向子網添加驗證者
- 創建區塊鏈
- 合約鏈:C-Chain
- EVM
- solidity 智能合約
---
### 子網(Subnet)
Avalanche 網路中的核心概念
---

---
子網(subnet)是一組動態的驗證者,為區塊鏈的狀態達成共識。每個區塊鏈都由一個子網驗證。一個子網可以驗證許多區塊鏈。一個子網由許多節點(成員)構成。
子網管理自己的成員資格,並且可能要求其組成的驗證者具有某些屬性。
---

---
#### 私有
可以創建一個私有子網,其中只有某些特定的驗證者可以加入,區塊鏈內容僅可由驗證者查看,可以達成信息保密。
---
#### 選擇驗證對象
在區塊鏈的異構網絡中,一些驗證者不想驗證某些區塊鏈,因為他們根本對那些區塊鏈不感興趣。子網模型允許驗證者只關心他們關心的區塊鏈。這減輕了驗證者的負擔。
---
#### 特定應用
不同的基於區塊鏈的應用程序可能需要驗證者具有某些屬性。假設有一個應用程序需要大量 RAM 或 CPU 能力。子網可能要求驗證者滿足某些硬件要求,以便應用程序不會因驗證者速度慢而導致性能低下。
---
### 虛擬機
與以太坊虛擬機的概念相似
---
虛擬機(VM) 定義了區塊鏈的應用級邏輯。從技術上講,它指定了區塊鏈的狀態、狀態轉換功能、交易以及用戶可以通過它與區塊鏈交互的 API。Avalanche 上的每個區塊鏈都是虛擬機的一個實例。
可以使用同一個虛擬機創建許多區塊鏈,每個區塊鏈都遵循相同的規則集,但在邏輯上獨立於其他區塊鏈。
---
以太坊通過智能合約解決開發問題。開發人員無需擔心網絡和共識,但創建去中心化應用程序仍然很困難。以太坊虛擬機性能低下,對智能合約開發者施加了限制。Solidity 和其他幾種編寫以太坊智能合約的語言對於大多數程序員來說是陌生的。
Avalanche VM (AVM) 使定義基於區塊鏈的去中心化應用程序變得容易。開發人員可以用 Go 編寫 VM,而不是像 Solidity 這樣的新的、有限的語言(未來將支持其他語言)。
Avalanche 支持創建 Avalanche VM和創建自定義區塊鏈
---
## 共識機制
video intro: https://www.youtube.com/watch?v=ZUF9sIu-D_k
---
### 雪崩共識機制
Avalanche 是一種新的共識協議,可擴展、強大、去中心化、低延遲、高吞吐量、節能、不需要特殊的計算機硬件,並且能夠抵禦51%攻擊。
---
### Snowball algorithm.
Parameters
n: number of participants(參與者人數)
k (sample size(樣本大小)): between 1 and n
α (quorum size(法定人數)): between 1 and k
β (decision threshold(決策閾值)): >= 1
---
Algorithm
```
preference := pizza
consecutiveSuccesses := 0
while not decided:
ask k random people their preference
if >= α give the same response:
preference := response with >= α
if preference == old preference:
consecutiveSuccesses++
else:
consecutiveSuccesses = 1
else:
consecutiveSuccesses = 0
if consecutiveSuccesses > β:
decide(preference)
```
---
解釋:
consecutiveSuccesses:連續成功次數
每次隨機抽k(樣本大小)個人來問,如果超過法定人數投給相同決定連續成功次數就增加,如果投給不同決定,連續成功次數回到1
如果沒有超過法定人數投給相同決定,連續成功次數回到0
當連續成功次數超過決策閾值,就達成共識
如果無共識就持續上述循環到有共識
演示:https://tedyin.com/archive/snow-bft-demo/#/snow
---
### DAG
有向無環圖->非傳統區塊鏈結構
---
區塊互相連接但不會構成一個迴圈
應用在:
Avalanche, Hashgraph, Fantom,IOTA等區塊鏈上
---

---
比特幣和以太坊都是線性鏈,其中每個區塊都有一個父節點和一個子節點。Avalanche 使用 DAG 而非線性鏈來存儲數據。DAG 的每個元素可能有多個父元素。DAG 中的父子關係並不意味著應用程序級別的依賴關係。
---
雪崩共識在達到安全閾值的概率上是安全的。通過調整系統參數,可以達成讓系統更容易接受正確的交易。在 Nakamoto 共識協議中(比特幣和以太坊中使用的),一個區塊可能包含在鏈中,但隨後會被刪除,而不是最終出現在規範鏈中。這意味著等待一個小時的交易結算。在 Avalanche 中,接受/拒絕是最終且不可逆轉的,只需要幾秒鐘。
---
### 驗證者
---
要成為驗證者,節點必須質押AVAX。一個節點質押的 AVAX 越多,其他節點查詢該節點的頻率就越高。當一個節點對網絡進行採樣時,按股份數量加權的。節點被激勵成為驗證者,因為如果在驗證時它們足夠正確且響應迅速,它們就會獲得獎勵。
如果一個節點在驗證時表現不佳,例如給出不正確的響應或可能根本沒有響應,它的質押仍然會全部返還,但沒有任何獎勵。只要質押的 AVAX 的足夠部分由正確的節點持有,網絡就是安全的,並且可以進行良性交易。
---
Avalanche 的兩大理念是二次抽樣(snowball)和傳遞投票(DAG)。二次採樣具有較低的消息開銷。有 20 個驗證者還是 2000 個驗證者都沒有關係;節點在查詢期間發送的共識消息的數量保持不變。
---
{"metaMigratedAt":"2023-06-16T21:43:11.282Z","metaMigratedFrom":"YAML","title":"Avalanche Doc Read - Learn","breaks":true,"slideOptions":"{\"transition\":\"slide\",\"theme\":\"simple\"}","contributors":"[{\"id\":\"80b3d720-6f93-4f74-81f3-c40e0826dd23\",\"add\":3863,\"del\":363}]"}