用戶體驗(UX)描述了人們在與系統或服務交互時的感受,包括多個因素,包括可用性、設計、營銷、可訪問性、性能、舒適度和實用性。唐諾曼曾經說過,
“萬物皆有個性;一切都發出了情感信號。即使這不是設計師的本意,瀏覽網站的人也會推斷出個性并體驗情感。糟糕的網站具有可怕的個性,通常在不知不覺中向用戶灌輸可怕的情緒狀態。我們需要設計東西——產品、網站、服務——來傳達任何想要的個性和情感。”以太坊的個性是一個極其高深莫測且容易被誤解的人。更糟糕的是,大多數用戶在使用您的界面或錢包時甚至不會將其視為與以太坊進行交互。如果你曾經在Artblock拍賣的實時聊天中,你會注意到拍賣一結束,至少有十幾個人抱怨他們沒有搶到份額是Metamask的錯。我認為在過去的一年里,以太坊上許多dapp的用戶體驗在產品交互和交易的可解釋性方面都有了很大的改進。在大多數情況下,dapps不再只是在您簽署交易后給您留下一個加載微調器。
即使dapps的設計總體上在改進,但我不確定UX研究的深度。當我看到對各種協議的數據分析或研究時,用戶大多被視為同質的。根據我所看到的UniswapV3流動性提供商和RabbitholeQuesters的一些分析,這種情況有所改變,但即便如此,這些分析仍主要集中在剛剛確認的鏈上交易上。根據我自己的經驗,大多數情緒誘發和行為怪癖發生在我提交、等待、加速或取消交易時。對于某些應用程序,用戶可能會在提交交易后離開并去做其他事情。但是對于像Artblock的拍賣這樣的產品,他們會一直待到確認發生為止,可能會檢查所有可能的更新并增加焦慮。
我認為通過開始更多地利用內存池,我們可以更好地理解用戶行為和摩擦。內存池是節點臨時存儲未確認交易的地方。這意味著如果您提交、加速或取消您的交易,那么這些操作將首先顯示在內存池中。需要注意的是,來自內存池的數據并未存儲在節點中,因此您無法像查詢已確認交易那樣查詢歷史數據。從這里,您可以看到他們提交了一些交易,將交易加速了很多次,但遠未達到所需的gas價格,最終在20個區塊后看到了確認。我相信這是用戶體驗和他們在整個過程中可能感受到的情緒的一個很好的代表。如果我們了解不同用戶群體在這個循環中的行為,我們就可以弄清楚如何補充他們的決策或緩解他們的焦慮。據我所知,幾乎只有以太坊基金會、所有核心開發人員和一些錢包團隊出于用戶體驗的原因利用內存池數據。
用戶體驗研究論文:通過隨著時間的推移通過拍賣查看用戶的行為以及他們的錢包歷史,我們可以開始為不同的用戶群體提供行為身份。從這里,我們可以確定要嘗試緩解的主要問題。為此,我們將使用Blocknative獲取一個月的ArtblocksAuctions數據,并使用Dune查詢對這些地址的歷史進行分層。
這篇文章將比我之前的一些文章更具技術性,因為我相信這項工作可以而且應該很容易推廣。我想強調的是,我的背景不是用戶體驗研究,我純粹是在嘗試我認為加密原生用戶體驗研究的樣子。
數據來源和預處理所有拍賣數據
如果你對技術位不感興趣,請跳到下一節——關于特征工程
Optimism主網Bedrock升級將于6月7日進行,屆時需停機2至4小時:5月16日消息,以太坊二層解決方案Optimism發推文稱:“OP主網升級到Bedrock的官方日期已經確定:UTC時間6月6日16:00(北京時間6月7日00:00),升級將需要OP主網停機2-4小時。升級當天,停機期間將無法進行交易、充值和提款,OP主網鏈將停止運行。節點運營商需為Bedrock啟動一個全新的節點部署。”
據悉,Bedrock是由OP Labs開發的新一代去中心化Rollup基礎架構,旨在為Layer2網絡提供模塊化、簡單性和以太坊等效性。[2023/5/16 15:05:02]
Blocknative和Mempool數據流
使用Blocknative的Mempool瀏覽器,您可以過濾提交給特定合約或來自特定錢包的交易。就我而言,我想聽聽Artblock的NFT合約列入白名單的鑄幣合約。您可以在此處找到我使用的流,如果您想使用完全相同的設置,請將其保存下來。
您可以在其子圖?中使用以下查詢找到列入白名單的鑄幣地址:
{contracts(first:2){idmintWhitelisted}}獲得所有購買的訂閱過濾器需要三個步驟:
使用“創建新訂閱”按鈕添加新地址單擊地址旁邊的“ABI”按鈕添加ABI。就我而言,我只需要“購買”功能。{"inputs":,"name":"purchase","outputs":,"stateMutability":"payable","type":"function"}
3.為methodName匹配購買添加過濾器
最后,您的設置應如下所示:
為了存儲這些數據,我創建了一個ngrok/express端點來存儲在本地運行的SQLite數據庫中。我創建了一個GitHub模板?,其中包含復制此設置的步驟。可能這里要記住的最重要的一點是,在Blocknative帳戶頁面中將POST端點添加為webhook時,您需要將POST端點作為ngrokURL的一部分。
關鍵預處理函數
多個交易哈希
當您加速或取消交易時,原始交易哈希將替換為新交易。這意味著如果您想在其整個生命周期中跟蹤用戶的交易,您需要將新交易哈希與原始交易哈希進行協調。假設您將交易加速五次,您將擁有總共六個哈希值。我通過將tx_hash的字典映射到新的replaceHash來調和這一點,然后遞歸替換。
replaceHashKeys=dict(zip(auctions,auctions))#assigntx_hashbasedonreplacements,justtokeepconsistency.replaceHashKeys.pop("none")#removenonekeydefrecursive_tx_search(key):ifkeyinreplaceHashKeys:returnrecursive_tx_search(replaceHashKeys)else:returnkeyauctions=auctions.apply(lambdax:recursive_tx_search(x))
MicroStrategy與Silvergate簽訂協議拿回34,619枚抵押的比特幣:金色財經報道,據提交給美國SEC的披露,MicroStrategy已于3月24日和Silvergate Bank簽訂一份預付款、棄權和還款信用和擔保協議,MicroStrategy自愿向Silvergate支付1.61億美元以全面履行貸款和所有其他信貸協議義務,此前貸款所抵押的34,619枚比特幣已歸還給MicroStrategy保管。另據加密KOL@tier10k分析,MicroStrategy公司于2022年3月從Silvergate銀行獲得2.05億美元貸款,本次協議達成意味著Silvergate Bank在這筆交易中大約虧損了4500萬美元。[2023/3/27 13:29:29]
區塊編號問題
刪除的交易的區塊號為0,所以為了解決這個問題,我按時間戳按升序對數據幀進行排序,然后進行向后填充,這樣0就會被它放入的正確區塊號替換。這是功能的重要修復工程。
auctions=auctions.sort_values(by="timestamp",ascending=True)auctions=auctions.replace(to_replace=0,method='bfill')#dealwithdroppedtxsthatshowasblocknumber0
在主要拍賣期間處理鑄造
對于大多數項目,藝術家會在拍賣向公眾開放之前鑄造一些作品。有些項目不會立即售罄,因此在拍賣開始幾天后,您仍會收到鑄造。我的分析集中在關鍵的拍賣時段,主要是前30分鐘。為了擺脫上面的兩個鑄造案例,我刪除了基于區塊編號的異常值。
to_remove_indicies=forprojectinlist(set(auctions)):auction_spec=auctions==project]all_times=pd.Series(list(set(auction_spec.blocknumber)))to_remove_blocktimes=all_timesiflen(to_remove_blocktimes)==0:breakto_remove_indicies.extend(auction_spec.index.isin(to_remove_blocktimes)].tolist())auctions.drop(index=to_remove_indicies,inplace=True)
添加荷蘭拍賣價格
對于數據集中除項目118之外的所有項目,均使用荷蘭式拍賣價格格式。我使用dune查詢獲取薄荷價格數據,然后將其合并到數據集上。我不得不對有內存池操作但在拍賣期間沒有確認的塊使用向前和向后填充。
auction_prices=pd.read_csv(r'artblock_auctions_analytics/datasets/dune_auction_prices.csv',index_col=0)auctions=pd.merge(auctions,auction_prices,how="left",left_on=,right_on=)auctions.sort_values(by=,ascending=True,inplace=True)auctions.fillna(method="ffill",inplace=True)auctions.fillna(method="bfill",inplace=True)
美聯儲:出乎意料且持續的高通脹和高利率或將對經濟和金融體系帶來風險:11月5日消息,美聯儲《金融穩定報告》稱,出乎意料且持續的高通脹和高利率或將對經濟和金融體系帶來風險,在美國,利率可能會超過目前的預期水平。“而若通脹壓力較預期更頑固,經濟活動或將大幅放緩。”美聯儲表明,其將削弱家庭和企業的償債能力,導致違約、破產和其他形式的財務困境的增加。美聯儲補充稱,這或進一步致使市場波動加劇、流動性緊張和包括住房在內的資產價格進一步下跌。[2022/11/5 12:20:32]
每次拍賣的特征工程
如果您對技術部分不感興趣,只需閱讀粗體部分并跳過其余部分。
在數據科學中,特征是從更大的數據集計算出來的變量,用作某種模型或算法的輸入。所有特征都在preprocess_auction函數中計算,并且每次拍賣都會計算,而不是將所有拍賣組合成一個特征集。
第一組特性是交易狀態的總數,是一個簡單的pivot_table函數:
number_submitted:提交的交易總數cancel:以取消結束的交易計數failed:以失敗結束的交易計數dropped:以丟棄結束的交易計數confirmed:以確認結束的交易計數我之前提到過,由于各種問題,一些數據沒有用于拍賣,這些交易從數據集中刪除。
下一組特性包括它們的gas行為。這里的關鍵概念是捕捉他們的交易gas與每個區塊的平均確認gas相差多遠。然后,我們可以為整個拍賣的gas價格距離的平均值、中位數和標準差創建特征。有一堆轉置和索引重置以按正確的順序獲取區塊編號列,但重要的函數是fill_pending_values_gas,它在捕獲的操作之間向前填充gas價格。這意味著,如果我在區塊編號1000處使用0.05ETH的gas進行交易,而我的下一個操作是在區塊編號1005之前我加速到0.1ETH的gas,那么此函數將用0.05ETH填充編號1000-1005之間的區塊。
deffill_pending_values_gas(x):first=x.first_valid_index()last=x.last_valid_index()x.loc=x.loc.fillna(method="ffill")returnx
第三組特性是計算拍賣中采取的行動的總數和頻率。在這里,我們從每個塊的總操作的支點開始,并進行一些特殊計算以獲取每個事務的第一個待處理實例:
get_first_pending=df=="pending"]#firstsubmittedget_first_pending=get_first_pending.drop_duplicates(subset=,keep="first")auctions_time_data=pd.concat(=="speedup"]],axis=0)time_action=auctions_time_data.pivot_table(index=,columns="blocknumber",values="status",aggfunc="count")\.reindex(set(df),axis=1,fill_value=np.nan)
在過去30天內開發活動最多的項目中ETH位居第一:金色財經報道,Weiss Crypto在社交媒體上稱,根據區塊鏈分析平臺Santiment 8月22日提供的數據,在過去 30 天內開發活動最多的項目中, ETH排名第一。 Polkadot ( DOT ) 和Kusama ( KSM ) 排名第二,第三,而Cardano ( ADA ) 排名第四。考慮到我們現在離合并還有不到一個月的時間,ETH的高開發活動并不令人驚訝。然而,ADA排在第四位讓我們感到驚訝,主要是因為它一直是開發者活動方面的頂級項目之一,而且它曾經被排在第一位。[2022/8/24 12:46:00]
從這里我們通過三個步驟到達average_action_delay:
我們對每個區塊采取動作action的數量我們在沒有動作的情況下丟棄區塊,然后計算剩余區塊編號之間的差值。我們為每個區塊采取的每個額外動作添加一個0。對差異和給我們average_action_delay的添加的0取平均值,defget_actions_diff(row):row=row.dropna().reset_index()actions_diff_nominal=list(row.diff(1).fillna(0))#taketheblockswithmulipleactionsandsubtractone,thensumup.zeros_to_add=sum(]])actions_diff_nominal.extend(list(np.zeros(int(zeros_to_add))))actions_diff=np.mean(actions_diff_nominal)if(actions_diff==0)and(zeros_to_add==0):return2000#meaningtheynevertookanotheractionelse:returnactions_diff
total_actions簡單得多,因為它只是整個樞軸的動作總和。
time_action=time_action.iloc.sum(axis=1)
最后一個依賴時間的特性是block_entry,由于引入了荷蘭式拍賣,這是一個重要的特性。本質上,這會跟蹤自開始以來提交事務的區塊。
get_first_pending=get_first_pending-get_first_pending.min()entry_pivot=get_first_pending.pivot_table(index="sender",values="block_entry",aggfunc="min")
price_eth也被添加為一個特性,它與block_entry點相關聯。
最后一組特性基于Dune查詢,特別是自第一次交易以來的天數、交易中使用的總gas以及交易總數。為了以正確的格式獲取地址數組,我在讀入SQL數據后使用了以下代碼行:
外媒:包括Sorare在內的四個平臺正在爭奪英超NFT版權:5月18日消息,包括Sorare在內的四個NFT平臺正在爭奪英超NFT版權,但未披露另外3家平臺名稱。據報道,英超聯賽未來四年的NFT版權價值高達5.9億美元。根據英超此前公布的數據顯示,2019/20賽季收入高達45億英鎊(約合56億美元)比德甲收入高出20億美元。
此前報道,德甲聯賽已與One Football完成了簽約,從2023-24賽季德甲聯賽開始,One Football被指定為德甲官方合作伙伴并將幫助德甲推出相關NFT。(ledgerinsights)[2022/5/18 3:25:57]
all_users=list(set(auctions.apply(lambdax:x.replace('0x','\\x'))))all_users_string="('"+"'),('".join(all_users)+"')"
對此的Dune查詢相當簡單。我將地址字符串粘貼到VALUES下,并制作了一些CTE以獲得我想要的功能。在最后的SELECT中,我也嘗試添加每個地址的ens。您可以在此處找到查詢:https://dune.xyz/queries/96523
最后,我們只是合并了每個錢包的活躍天數、使用的總gas和交易總數的數據。
auctions_all_df=pd.merge(auctions_all_df,wh,on="sender",how="left")auctions_all_df.set_index(,inplace=True)
完成所有這些后,我們終于準備好運行一些有趣的無監督學習算法,并嘗試驗證我們對用戶群的假設。
聚類和可視化用戶組
在我開始這個項目之前,我預計會看到以下用戶組從數據中彈出:
設置然后忘掉:這里應該有兩個群體,那些設置了非常高的gas和平均/低gas的交易,然后在拍賣的剩余時間里不要碰它。加速:這里也應該有兩個群體,一類是經常加速并直接更新交易作為gas價格的因素,一類是經常加速交易但gas價格基本上沒有變化的人。我對驗證這些群體非常感興趣,看看每個群體有多大,看看是否有用戶在多次拍賣過程中在群體之間移動。最簡單的方法是使用無監督機器學習,根據所有特征的可變性來識別用戶組群。從本質上講,這就像查看一個州的收入分配,然后將其分成不同收入集中度、地理坐標和年齡的子分配。請注意,這不是分箱,其中分布被分成相等的范圍-它是根據整個范圍內的觀察密度計算的。我們將采用的方法稱為“無監督”,因為我們的數據集沒有任何現有標簽,而不是像回歸分析這樣的方法,其中預測的值可以被驗證為正確或錯誤。
我決定使用的算法稱為k-means,其中k代表您希望識別的集群數量。每個集群都有一個“質心”,就像一個圓的中心。有多種方法可以確定最佳集群的數量,我使用的兩種方法是肘點和輪廓分數。這兩種提問方式都很奇葩,
“每個額外的集群是否有助于增加集群的密度并保持集群之間的足夠分離?”我發現3個集群在大多數慣性改進方面是最佳的,同時保持高輪廓分數。
本次分析使用了6次拍賣
選擇集群后,我們希望能夠可視化并驗證它們的存在。這里有超過15個變量,因此我們需要減少維數以繪制它。減少維數通常依賴于PCA或t-SNE算法,在我們的例子中我使用了t-SNE。不要太擔心理解這部分,這些算法本質上捕獲所有特征的方差,為我們提供X和Y分量,使點彼此的傳播最大化。
讓我們從8月4日看看項目118,LeWittGeneratorGenerator:
這些是使用KDE計算的按集群劃分的每個變量的子分布。顏色與上述集群中的顏色相匹配。
在查看了每個變量的子分布和一些數據示例后,我能夠對集群進行分類。Orange集群是速度最快的組,同時平均提交的gas交易也略低。Blue和Green集群彼此表現出相似的行為,但Blue中的地址通常比Green集群中的地址具有更少的歷史記錄。
縱觀全局,原來的“提速”和“高低設置”產生兩組的假設似乎是錯誤的。相反,我們有一個“加速”群體和一個“一勞永逸”群體。我認為“設置并忘掉”群體中的新錢包與舊錢包可能在實際用戶中有很多重疊,用戶只是創建了新錢包來競標更多的鑄幣。基于他們的不耐煩和低于平均水平的gas價格,“加速”群體在我看來要么經驗不足,要么比其他用戶更貪婪。在整個拍賣過程中,這群人似乎也相當焦慮。令我驚訝的是,加速群體占投標者總數的比例較小,因為我曾預計該群體占投標者的60-70%,而不是30%。
現在,這個用戶行為研究真正有趣的地方在于將項目118與項目140。
這是8月21日開始的項目140GoodVibrations的集群聚集:
我們可以看到,現在大部分聚類變異性來自block_entry、price_eth和所有gas_behavior特征。這與項目118的主要變量大相徑庭。在118中,設定價格意味著人們以相當均勻的分布進入拍賣,而“加速”群體使行動相當無休止-可能非常焦慮。
在項目140中,我們在average_action_delay或total_actions中沒有看到相同的動作差異,相反,我們可能看到相同的“加速”群體在非常晚的階段進入并設置遠低于平均水平的gas價格,如平均gas行為。綠色集群可能代表比橙色集群有更多經驗的用戶,但他們的行為仍在橙色和藍色之間轉換。如果我嘗試將其映射到118中的集群,我相信“加速”群體現在已成為進入較晚并發出低gas量的“貪婪”群體。“設置并忘記”群體很好地映射到“早搶”群體,因為他們都表現出很好的耐心和足夠的gas投標安全性凈值。
我稱橙色群體為“貪婪”,不僅因為他們的行為,還因為他們的交易失敗率。
對于項目118,“加速”群體與“設置并忘掉”群體的失敗率在10-15%之間。
percent_losttakes(cancel+dropped+failed)/number_submitted
對于項目140,“貪婪”集群的失敗率約為69%,而“早期搶奪”群體的失敗率約為5-15%。
總的來說,我對此的理解是,該團體的壞習慣和情緒被放大了——我覺得我們在焦慮→貪婪之間做出了權衡。這可能使拍賣的壓力較小,但最終導致更多用戶感到不安。
我確信可以進行更細粒度的分析,以根據工廠/策劃/游樂場或藝術家本人對拍賣進行進一步細分。隨著社區的不斷發展,這只會變得更加有趣和復雜,并且情緒在單次拍賣和未來拍賣中是否回歸都會發揮更大的作用。
這項對多次拍賣的研究幫助我們驗證了我們的假設,了解用戶組的比例,并了解用戶的好壞行為如何隨時間變化。現在我們需要將其插入到產品周期流程的其余部分中。
我們從哪里開始:
我為此只選擇Artblocks拍賣而不是混合平臺的原因是因為我想尋找一個可以控制界面和項目類型可變性的地方。這應該為我們提供了相當一致的用戶和行為類型。
這只是UX研究周期的開始,因此理想情況下,我們可以繼續以下步驟:
使用無監督機器學習算法來識別用戶群體并查看有多少人在進入拍賣時犯了“錯誤”。這是我們今天介紹的步驟?。創建一個新的用戶界面,例如出價屏幕上的直方圖視圖,或顯示大多數人通常何時進入/擁擠拍賣以及以什么價格參加的歷史數據。任何可以為用戶提供當前和歷史背景的東西,尤其是來自速度集群的那些。在每次拍賣中,通過創建的算法運行內存池/錢包數據,以查看用戶群體是否發生了變化,以及特定用戶是否“學會”以不同方式參與拍賣。我認為如果做得好,可以在這一步中找到最大的價值。使用ENS或其他標識符來幫助補充這個分組也會成倍地有用。根據結果??,繼續迭代用戶界面和設計。您還可以運行更明智的A/B測試,因為您甚至可以通過基于用戶的最后一個集群進行有根據的猜測來確定要顯示的屏幕。荷蘭式拍賣風格的變化也是第2步的一個例子,我們能夠看到用戶行為的明顯轉變。雖然通常這種A/B測試側重于提高參與度或轉化率,但我們在這里優化的是用戶的學習和改進能力。如果在多平臺背景中進行迭代,這可能會變得更加健壯,以便我們可以研究某人如何在生態系統級別進行學習。由于我的Artblocks用戶研究全部基于公開來源的數據,因此可以被任何其他拍賣/銷售平臺復制和補充。加密可能是第一個擁有同步且透明的用戶組和用戶體驗研究的行業,可應用于產品和學術界。Nansen錢包標簽已經朝著這個方向邁出了一步,但是當來自不同產品的團隊從不同的方面和方法構建它時,情況就不一樣了。
我最終的設想是使用數據來構建以下用戶角色:
我想購買一個Fidenza,所以我可以通過私人銷售購買一個,自己也可以在拍賣會上出價,在prtyDAO出價拍賣中出價,或者通過fractional.art購買一小部分。我一般喜歡Fidenzas,所以我只會購買NFTXFidenza指數代幣或fractional.art上的ArtblocksNFT籃子。我已經是一個收藏家,所以我想使用我已經持有的一組精選的NFT和ERC20交換或競標Fidenza。我喜歡通過初始鑄造與二級市場進行收購的熱潮,并大量參與Artblocks在線鑄造之類的拍賣。我希望你覺得這個項目有趣和/或有幫助,我玩得很開心。感謝Blocknative的人們為我提供幫助,感謝Artblocks的社區回答我的許多拍賣問題。與往常一樣,如有任何問題或想法,請隨時與我們聯系!
您可以在此處找到包含所有數據和腳本的GitHub存儲庫。該腳本可能有點難以閱讀,因為我仍在重構和清理它。當我分析8月最后幾次拍賣的新模式時,這里的腳本和一些分析可能會更新。
隱私比較是指在不暴露雙方具體數值的前提下,獲取雙方數值的大小關系。最早起源于姚期智的百萬富翁問題:有兩個百萬富翁想要比較下誰更富有,但是又不想透露自己有多少錢,如何在沒有可信第三方的情況下進行比.
1900/1/1 0:00:00“Firsttotheegg!”斯皮爾伯格《頭號玩家》的上映,為無數影迷和游戲迷呈現出一個龐大又真實的虛擬世界.
1900/1/1 0:00:00據Oicanadian消息,哥斯達黎加央行行長RodrigoCubero發布一份名為“圍繞數字貨幣和加密資產的一些考量”的文件.
1900/1/1 0:00:00巴比特訊,8月12日,推特用戶@ZachXBT發推對NFT頭像項目PudgyPenguins聯合創始人ColeThereum提起質疑.
1900/1/1 0:00:001.背景介紹 自2018年以來,Vitalik一直主張二次方融資作為一種在去中心化的、自組織的生態系統中生成最優公共產品供應的方法。QF面臨的最具挑戰性的問題之一是共謀.
1900/1/1 0:00:00經過幾個月的研究和工程實現,我們準備在今天發布二次方資助V2協議。*注:原文的發布日期為2021年6月27日HackerLink是第一個實現鏈上二次方投票和資助并使其具有可擴展性的產品.
1900/1/1 0:00:00