NXTER.ORG

Nxt區塊鏈2.0 – 主鏈和子鏈

Nxt區塊鏈2.0已經在討論和計畫實施中了,其核心思路就是要通過主鏈(Main Chain)和子鏈(Child Chain)的這種架構來增加Nxt區塊鏈的可擴展性和可刪減性,從而解決長期存在的區塊鏈膨脹等問題; 主鏈只有維護網路安全的功能,其中的代幣稱之為fNXT(Forging NXT),只有發送轉帳基本功能和鍛造功能(維護網路安全);子鏈則擁有所有目前NXT的功能,所有子鏈的交易都用自己子鏈的代幣,但最終的交易需要使用主鏈的代幣fNXT來廣播至網路並被節點確認;因此目前的NXT區塊鏈也將成為一條子鏈,同時會創建新的主鏈。 具體增加的內容如下: 創建一條主鏈,其中的代幣只有鍛造維護網路功能,代幣稱之為“forgingNXT”。目前的NXT生態系統則變為一條子鏈,保留除了鍛造以外的所有功能和屬性。在硬分叉區塊,每一個NXT的持有者將會按照1:1的比例獲得主鏈的fNXT和目前子鏈的NXT,所有的其它功能和屬性都將遷移至NXT子鏈; 可以隨時按照市場價格將NXT交易為fNXT; 所有子鏈運行的程式是一樣的,但是每一條子鏈可以根據自己的需要來選擇設置功能。目前的NXT子鏈將擁有所有的交易類型和功能; 每一條子鏈都將使用自己的代幣,所有的支付交易、資產交易、數位商品交易市場等等都將使用子鏈內部的代幣,子鏈的交易費要使用自己的代幣; 所有子鏈的交易都需要由所有節點來處理。所有的節點至少保留所有子鏈的最新的1440個區塊的交易資料。備份節點可以選擇將子鏈的交易資料存儲時間延長,或一直保存這些交易資料; 如果節點沒有進行特別備份設置的話,所有子鏈的交易將會在1440個區塊後全部刪除。重新下載區塊鏈的新節點需要價值:鍛造者和所有運行區塊鏈的節點批准了這些當時未刪減的交易,在那個時間點它們也必須是有效的,儘管要驗證它們的資料已經不存在了。 必須要能夠驗證鍛造者的fNXT餘額。這就是為什麼主鏈(鍛造鏈)上與fNXT餘額變化的相關的交易不能刪除的原因,主鏈必須要保留一些必要的交易類型; 子鏈上的區塊將會是可刪減的單個(每一條鏈每一個區塊中的每一個交易)交易。任何人都可以創建子鏈區塊交易。然而,需要由在主鏈上創建區塊的鍛造者來決定是否將這個子鏈區塊交易寫入到主鏈區塊中。與其它所有節點一樣,鍛造者會驗證子鏈區塊中的所有子鏈交易,前提是這些資料還沒有被刪除。 如果子鏈中沒有交易,就沒必要創建子鏈區塊交易,這與主鏈不同,在主鏈中我們需要持續的創建時間為60秒的區塊,無論區塊中是否有交易。我們可以考慮縮短主鏈的區塊時間來讓讓更多的子鏈區塊出現; 鍛造者只接受fNXT類型的交易費,最小交易費是由軟體自己來計算的; 當鍛造者將一個子鏈區塊交易寫入到主鏈中時,子鏈區塊交易的創建者需要給鍛造者支付一定費用的fNXT。這個交易費是由子鏈區塊創建者決定的,但是一定要大於軟體協定所設定的最小費用。同時,子鏈區塊創建者也會獲得交易費,這些交易費則是以子鏈中的代幣,是由資料交易的發送者支付的; 子鏈代幣和fNXT的兌換比率將由市場決定。如果沒有人願意將子鏈交易寫入子鏈區塊,這意味著支付的子鏈交易費沒有達到所需的最小fNXT費用,這樣的話將以將不會得到確認。如果子鏈的代幣價格跌為0,沒有人願意創建子鏈區塊的話,這條子鏈上的交易將會停止; 子鏈將會互相競爭來希望被寫入到主區塊中,因為最終鍛造者將會查看 費用/交易大小 比,希望最大化它們的鍛造收益,當然這些交易大小受制于主區塊鏈的區塊大小和交易數目限制; 在刪減之前,每一個節點不僅要驗證子區塊交易雜湊是否匹配,還要驗證子鏈上的所有交易都是有效的,例如,沒有雙重支付,以及其它所有的驗證。這樣的話節點才能知道某個子鏈上所有帳戶的當前餘額。為了能夠刪減,我們需要快照交易,快照只記錄當前子鏈的狀態,不會記錄之前的歷史記錄。然後,在交易被寫入主區塊中720個確認後,我們就認為該交易是有效的,就會刪減掉快照之前的所有歷史交易記錄和之前的快照; 子鏈的快照交易是由當前區塊的鍛造者按照以一定的時間間隔來創建的,例如1440個區塊。它只包含快照的雜湊值,並不包含快照的所有資料內容; 當創建快照交易時,快照資料本身並不不需要廣播至網路。每一個更新的節點都已經有子鏈快照時的狀態了,因此它們就能夠自己生產快照。只需要驗證鍛造者的快照雜湊與自己的快照雜湊相匹配即可; 只有重新開始下載區塊鏈的節點才需要下載最新的所有快照,這就是為什麼每一個節點都必須生成並保留這個快照的另外一個原因,從而可以提供給這些重新下載區塊鏈的新節點。快照的下載是torrent模式的,即從不同的節點下載不同的碎片; 因為每一個更新的節點仍然需要驗證所有當前的交易,儘管我們已經極大地減少了區塊鏈長期膨脹的問題,這些問題包括佔用大量的磁碟空間、區塊鏈下載時間,但是仍然存在CPU處理所有子鏈資料的瓶頸、接受和處理所有子鏈當前交易的頻寬問題。但是因為節點無需驗資子鏈之前已經刪減的交易資料,因此整體上下載區塊鏈資料的速度會大大提高,CPU的佔用也會大幅降低; 主鏈(鍛造鏈)用於保證安全,即使很多子鏈沒有使用者和交易,或者偶爾有交易。同樣,這樣以來所有子鏈都可以進行刪減。子鏈不再需要保留它們之前所有的從創世塊開始的舊資料了,因為它們不參與鍛造,與網路安全無關; 首先,我們會只有主鏈和目前的NXT一條子鏈,或者再加一條測試子鏈。一旦測試沒完成,我們就開始實施動態創建新子鏈的功能,以及為創建的子鏈設置和編輯功能屬性。  

區塊鏈應用之匿名混幣

比特幣的混幣服務究竟對其生態系統有多大的影響,至今尚沒有明確的答案。目前現存的混幣方案都要求用戶將其資金託管給信任的中心化的協力廠商服務商。而且對於一些混幣服務商,使用者必須要使用TOR網路才能訪問,這使得使用混幣服務的門檻很高。而且還要面臨中心化的協力廠商服務商跑路的風險。   比特幣的混幣服務並不適合於每個人   有很多種使用混幣的方式。最常見的方式就是混幣服務提供者提供一個可以訪問的頁面,使用者按照要求填寫資訊,將比特幣發送給服務提供者,之後服務提供者會將混幣後的比特幣發回給用戶。總之,這個過程是需要一些時間來進行混幣,以實現不可追蹤的目的。 對於那些想要完全匿名的用戶,他們就會通過TOR網路來使用暗網上的混幣服務。但混幣原理是差不多的,也是要通過中心化的協力廠商服務商來進行。很多暗網上的網頁都跟違法活動有關,而且在這裡進行混幣的也多是跟洗錢有關的活動。 但是使用TOR網路來訪問暗網並不是一件容易的事情,需要很多設定,這對於一般的用戶來講,門檻實在是有點高不可攀。 比特幣從來就不是匿名的 回到比特幣本身,這個最流行的去中心化的區塊鏈貨幣本身也不是匿名的,而且其發明者在設計之初也並沒有讓其匿名的意圖。因為所有的交易都存儲在區塊鏈上,任何人都是可以查詢這些交易的;因此要實現匿名就需要用到混幣服務。 因為比特幣是去中心化的貨幣,去除了使用協力廠商服務的需求;如果大量使用中心化的混幣服務,則必然有悖於比特幣的初衷。因此使用者需要去中心化的混幣服務,需要完全控制自己的比特幣,來確保自己的比特幣不會受到單點失敗而丟幣的風險。 Nxt的解決方案 在1.7.5版本後,Nxt在其區塊鏈上實現了去中心化的匿名混幣服務-CoinShuffle。 其大致流程和原理如下: 用戶創建混幣器; 具體包括:設定參與人數、混幣時間、混幣類型(NXT、資產或貨幣)、混幣金額; 等待其它用戶參與; 程式自動執行混幣,並將資金分發至參與者提供的新帳戶中; 混幣成功結束。 如果混幣失敗,則所有資金將返回至原來的帳戶中,不會存在像中心化協力廠商服務中的跑路問題;但是,如果是因為某個用戶沒有按照要求提交相應資訊而導致混幣失敗,則該用戶會受到處罰,以避免惡意破壞混幣。    

區塊鏈應用之投票系統

基於區塊鏈的投票系統可以提供更好的透明度和安全性。 紙質投票已經存在了好多年了。全世界的國家都在試圖用電子投票系統來替代目前的紙質投票系統。 這種電子投票通常有兩種形式。在投票站使用投票機器而不是紙和筆,或者就是在互聯網上進行投票。 與傳統的紙質投票相比,在投票站使用的電子投票設備(Electronic Voting Machine,EVMs)有很多優勢。而且偏于地區的居民也可以參與投票,且可以很快生成投票結果,降低了成本,減少了資源消耗。 印度是在1998年開始使用電子投票設備的,一直沿用至今。印度選擇委員會認為這些手提箱大小的投票設備是‘絕對可靠’和’完美的‘。然而,其他人則認為這些設備是不符合標準的。 在印度選舉中推廣可驗證性、透明和問責制的獨立論壇VeTA發表聲明稱電子投票系統容易受到外部駭客和內部人員的篡改。 一個獨立的印度研究團隊開始調查曾經使用過的一台電子投票機器,而且發現了兩種作弊的方式。顯示單元可以用假的替代,可以事先程式設計為預定的候選人多偷一些選票,在選舉期間和計票期間,存儲的投票數可以用一個裝在口袋裡的控制器來修改。   “只有投票能被驗證和審計時,選舉投票結果才可信。發達國家已經拒絕或改良了這些直接記錄式的電子投票系統。” —— VeTA 美國也面臨著這樣的問題。研究者勞倫斯·諾頓和克里斯多夫則認為美國的電子投票系統是有風險的,而且在今年的總體大選中有43個州會使用已經用了10年之久的投票系統設備。根據該研究報告,這些設備基本都到了預期的使用壽命期限。 該研究進行了10個月,採訪了超過100位選舉官員和50個州的專家。該報告還說,這些過時的設備存在隱患,需要用新科技來解決這些問題。 “在過去的十年中,科技發生了巨變,美國的投票設備很快就過時了。” —— 布倫南司法中心 目前的電子投票設備既沒有選項有沒有電子投票。而通過互聯網進行的投票則存在安全風險,包括網路攻擊、過程修改、拒絕服務、欺騙、投票收買、以及對投票人電腦進行病毒攻擊等等。 區塊鏈公司正在探索這方面的解決方案,其中一些企業已經提供了最前沿的解決方案。紐約企業V-initiative也在研究基於比特幣區塊鏈的開源投票解決方案:”我們的目標是提供完全公正、匿名的電子投票,我們正在重塑數位化時代的民主進程。“ 儘管比特幣區塊鏈有很多優勢,但存在的一個問題是選舉工具並不是匿名的,但可以使用假名,這意味著使用者的身份資訊並不是完全受到保護的。假名、用戶ID和IP位址是可以查看到的,也可以被其它用戶跟蹤到。為了強化隱私,V-initiative採用零幣、零知識證明密碼學以及IP位址隱藏軟體TOR來保護投票者的隱私。 “在投票區塊鏈項目中實施這樣的開原始程式碼可以驗證每一個註冊投票者投票的真實性,而且對投票者來說是完全匿名的。“ —— V-initiative 區塊鏈科技公司(BTC)是另外一家試圖取代現有投票系統的企業。“美國的投票設備科技是一個潛在危機”,BTC公司聲稱要主導“使用區塊鏈作為高科技審計以確保安全、防篡改的選舉和投票結果透明可驗證以及所有投票都是唯一的。” “區塊鏈科技讓之前很多不可能的事情都變成了可能。當很多人還關注在金融領域的應用時,我們已經將它所擁有的安全性和透明性應用到了選舉中。” —— 尼克·斯潘納斯,區塊鏈科技公司CEO 該公司目前正在美國展示他們的“區塊鏈設備”平臺。這個投票平臺創建了非金融領域的分散式帳本記錄,可以定制以滿足不同的客戶和需求。 “區塊鏈科技的核心就是使用分散式共識來確保資訊(資料)的完整,而目前中心化的依靠人的系統則存在腐敗、瀆職和錯誤等風險。” —— 區塊鏈科技公司   Nxt的解決方案:  Nxt在其核心軟體中也提供了投票系統功能。使用者可以根據自己的需求創建投票,支持4種類型的投票:帳戶、帳戶餘額、資產餘額和貨幣餘額。 例如,在是否增加匿名混幣功能時,Nxt核心開發者就發佈了投票,通過社區的投票來決定是否部署這個核心功能。 

混幣(Coin Shuffle)

混幣(Coin Shuffle)是一個隱私功能,它可以讓用戶快速高效地與其他用戶的資金進行混合,在現有的用戶帳戶和混幣後的新帳戶之間創建隨機的映射關係。 該功能是基於TimRuffing在Bitcointalk.org上的描述以及它的學術論文而來的。 概覽 該功能是基於NXT區塊鏈而實施的,消除了現存的協力廠商混幣服務中存在的手動步驟和信任問題。用戶端錢包提供了用於監控和操作的介面。 可以對NXT、資產以及貨幣進行混幣,混幣創建者在創建混幣時可以指明混幣類型。 任何帳戶都可以創建混幣並指明混幣類型、混幣數量、參與人數和註冊截止日期。 這是通過shufflingCreate API來實現的。接下來的混幣步驟可以通過使用shufflingRegister、shufflingProcess和shufflingVerify或shufflingCancel APIs來手動執行。 然而由於混幣處理過程的複雜性以及操作時間預測的難度等原因,不可能手動來處理混幣。因此,混幣是通過一個自動單元“混幣器”使用startShuffler API來管理執行的。 一旦啟動,混幣器就會監控與指定的混幣相關交易的區塊鏈狀態,而且會代表使用者自動提交所需的交易,根據需求執行混幣處理、驗證或取消。為了實現這些,混幣器需要將使用者的密碼保存在記憶體中,與鍛造時的情況類似。與鍛造一樣,節點重啟或崩潰都需要手動重啟混幣器。在混幣成功完成或取消之後,混幣器還會繼續運行720個區塊,以確保萬一出現區塊回滾重寫(儘管不太可能)時混幣仍然是啟動的。 每一個節點/混幣/參與者都有混幣器。單個節點可以運行的混幣器的最大數目是100個。 除了混幣所需的貨幣或資產數目外,參與混幣還需要至少有1000NXT的押金,如果是混幣NXT,則混幣金額數目必須要大於1000NXT。 當一個混幣成功完成後,參與混幣的錢幣會添加到接收者帳戶中以進行發送出去的交易(只能使用新創建的、未使用過的帳戶作為接收者帳戶)。如果由於註冊參與者沒有按照要求參與混幣或故意提交錯誤資料而導致混幣失敗,那麼導致混幣失敗的參與者將會被處罰1000NXT押金,處罰的押金會分發給混幣完成區塊的鍛造者以及之前3個區塊鍛造者。如果由於參與人數沒有達到要求而導致混幣取消,所有人都不會收到處罰,所有的押金都將退還。在測試網路中,押金和處罰金都是7NXT。 混幣註冊完成後,參與者必須要在100個區塊時間段內(測試網路是10個區塊)提交處理資料。驗證和處罰階段,所有參與者的時間限制是 100+參與人數 個區塊(測試網路是10+參與人數 個區塊)。在任何階段,如果截止時間到後還有參與者沒有提交所需的交易資料,混幣將會取消,這個參與者將會損失它的1000NXT的押金。這個過程是由混幣器處理的。因此註冊一個混幣後,保證混幣器啟動、並運行至混幣成功完成是很關鍵的。如果節點重啟了,那麼之前所有的混幣器都需要手動重啟。 訪問取回目前運行的混幣器、混幣以及混幣參與者的APIs是:getAllShufflings,getAccountShufflings,getAssignedShufflings,getHoldingShufflers,getShufflingParticipants。 如果將nxt.deleteFinishedShufflings屬性設置為true(預設是false),那麼完成的混幣會自動從資料庫中刪除。 創建一個混幣或註冊一個混幣的費用是1 NXT,混幣處理和混幣取消的費用是10NXT,驗證交易的費用是1NXT。 警告: 混幣參與者的接收帳戶必須是新創建的帳戶。參與者需要給這個新帳戶創建很強的額密碼,並將其妥善保存好,以備後續之用。如果密碼不夠強或保存不當,可能會導致你的資金損失。 一當一個帳戶創建了一個混幣或註冊成為一個混幣參與者,該帳戶使用的節點必須要保持線上,混幣器必須要保持啟動。混幣器的狀態可以使用“My Shufflings”頁面來監控。如果你的節點重啟了,那麼一定要重啟與你的帳戶參與的所有相關的混幣器。 【原文】 https://bitbucket.org/JeanLucPicard/nxt/issues/325/coin-shuffling

NXT 鍛造解釋-By 核心開發者 Riker

  Nxt的核心開發者Riker用通俗的語言對Nxt的透明鍛造機理進行了解釋,如下: Beamy:什麼是鍛造? Riker:鍛造是指在NXT區塊鏈上生成一個新區塊的過程。一個區塊是是很多交易的集合。每一個區塊都由區塊鍛者的私密金鑰簽名。 Beamy:我能鍛造到一個區塊嗎? Riker:當然能,你需要做的就是有一些NXT餘額(越多越好),至少1000NXT,然後節點線上運行NXT軟體,就可以鍛造了。 Beamy:鍛造能獲得什麼? Riker:新區塊中的所有交易的交易費將會獎勵給這個區塊鍛造者。從區塊621000開始,一些類型的交易費將分發給之前4個區塊的生成者,比例為40%,30%,20%,10% 。 Beamy:誰決定下一個區塊鍛造者? Riker:每一個鍛造節點都基於一個簡單的演算法來計算鍛造帳戶生成下一個區塊的時間,其它所有節點在收到新區塊時對計算結果進行再次確認,如果與演算法不一致,則會拒絕該區塊。 Beamy:這個演算法的工作原理是什麼? Riker:在NXT白皮書中已經解釋過了。概括起來,將鍛造帳戶的公開金鑰與之前區塊的簽名串聯起來,生成一個唯一的字串;再將這個唯一的字串進行sha256雜湊運算,這個雜湊結果再乘以帳戶的有效餘額得到一個數值;將這個數值與目標數值相比較來確定鍛造者在生成下一個區塊之前要等待的時間。時間一到,這個鍛造者就能生成下一個區塊了。每生成一個區塊,這個目標值都會進行調整,以確保平均區塊時間為60秒。這個調整優化在621000區塊之後才會生效,目前的平均區塊時間為90秒,偶爾也會有10分鐘的區塊間隔。區塊621000之後,難度調整代碼進行了優化,平均區塊時間基本都在60秒,很難出現10分鐘的區塊了。 Beamy:為什麼在找到一個短期目標時間之前我無法對一個區塊進行雜湊? Riker:是的,不可以,雜湊計算不依靠類似比特幣中的亂數。每一個帳戶在每一個區塊中只能生成一個雜湊。 Beamy:為什麼我不能在找到一個含有更好雜湊的帳戶之前來試圖再創建一個新的帳戶呢? Riker:將你的鍛造餘額分配到多個帳戶中是沒有優勢的,你的餘額只能在1440個區塊之後才能進行鍛造,因此將你的餘額分配到多個帳戶中來提高你的鍛造幾率是沒有用的。 Beamy:鍛造者會欺詐嗎? Riker:在最基本層面上是無法欺詐的,因為當一個鍛造者進行欺詐時,例如提前鍛造或者將一個未來的時間包含到區塊中,這將會導致其他節點拒絕這個新區塊,例如看到的“block from the future”之類的日誌資訊。然而,鍛造者仍然可以決定將哪些交易包含或排除在他們新生成的區塊中。這會導致使用無用的交易來延遲其他帳戶的交易,或者改變了區塊中交易的次序,或者將他們自己的交易費很高的交易包含在他們的區塊中來賺取交易費。 Beamy:如何處理這些操縱? Riker:用無用的交易來填充到區塊中是有可能的,但是每個區塊的交易限制為256個,目前這個好像誤會形成真正的威脅。改變交易的順序會不獲得真正的好處,為了預防鍛造者將它們自己高費用的交易包含在自己的區塊中,從621000區塊開始,我們將這些費用分配給了之前的3個區塊鍛造者。 Beamy:透明鍛造是什麼? Riker:因為每一個節點都可以計算出哪個帳戶是下一個區塊的生成者,因此每個節點可以直接將交易發送給下一個區塊的鍛造者,而不用像通常的那樣廣播至整個網路。這會使得整個網路的擴展性得到數量級的提升。從1.7系列的用戶端開始,我們逐步在實施這個機理,包括要求鍛造者至少有1000NXT的有效餘額才能鍛造。這會更容易地預測出下一個區塊的鍛造者。 Beamy:我的名字的起源是什麼? Riker:第一個答對的這個問題的人會獲得1000NXT的獎勵。 [/fusion_text]

數據雲

  簡介: 該功能允許用戶上傳最大42K Byte的檔,檔在區塊鏈上保存兩周時間,而且檔是可搜索的,任何人都可以查看該檔;兩周之後,檔會從區塊鏈中刪除,只保留它的hash值以證明該文件存在過。 使用方法: 登陸錢包介面,點擊右上角的齒輪按鈕, 在打開的下拉清單中選擇上傳檔按鈕,會彈出對話方塊: 輸入相應的內容,點擊選擇檔,上傳相應的檔,之後點擊上傳檔按鈕即可; 上傳之後其它用戶則可以通過搜索來查看到你上傳的內容。