Docs
Search
K

Proof of Attention

The mechanism design for the Proof of Attention algorithm.

What is Proof of Attention

As a platform where readers contribute and get rewarded with their attention, Proof-of-Attention (PoA) is the proof of work of the t2 network. It helps to record users' network contributions, curate network content, and align incentives between all stakeholders (readers, writers, and curators).
In a nutshell, the PoA is a measure of quality attention spent by readers. By adding content consumption to the creator's economy, we finally see through how value is floating across all users, and recognize the quantity & quality of everyone's contribution in simple metrics.
Since POA uses our attention as the ultimate media of the value exchange, the retrospective nature help mitigates speculation, brings simplicity, and sets the foundation of the value distribution within the creator's economy.

How to measure Proof of Attention

We measure it by estimating the amount of quality attention readers spend reading the network content. We define quality attention as attention when readers are actively consuming the content, based on the most objective dimension - time.
However, as we aim to measure "quality attention", not each second of time is equal. We acknowledge the difference in reading behaviors of different people and different contexts, but also hold beliefs to the fact that people share a general reading pattern.
For example, for a piece of article that’s worth 20 minutes of reading, we consider readers’ first 20 minutes spent on it as quality attention. And for the more time spent on it after 20 minutes, we decay it exponentially.
We compute PoA for each reader’s each reading in a way that reflects this belief. POA is indicated on each article's reading page on the top right (see below the product screenshot).

The Utility of Proof of Attention

POA (together with the user's reputation) is used as the major input to recognize users' network contribution. It helps to:
  • Distribute the time points as reputation points through users and grow users' on-chain identity.
  • Align incentives within the creator's economy by transparently mapping all stakeholder's contributions in time points growth. While the reading happens, the related content creators, curators, and propagators will also get their Time Points growth as contributors to the network.
  • Further curate the network content from users' reading as a passive curation and shape subculture communities. The content ranking, territory reputation, and incentive distribution are all highly connected with POA.

POA Mathematics formulation

The POA calculation of one read is with input and derived parameters as the followings:
  • Median reading time of an article:
    tmrt_{mr}
  • POA assigned if a reader read the article with median reading time:
    pmrp_{mr}
  • Actual reading time:
    trt_r
  • Sweet-spot reading time:
    ts=tmr0.5t_s=t_{mr}*0.5
We then define POA as
PoA=11+et(trts)PoA =\frac{1}{1+e^{-t*(t_r-t_s)}}
with
t=log(1pmrpmr)/(tstmr)t = log(\frac{1-p_{mr}}{p_{mr}})/(t_s-t_{mr})
This is derived from an ordinary sigmoid function with the below steps:
  1. 1.
    Sigmoid function:
    f(x)=11+exf(x)=\frac{1}{1+e^{-x}}
  2. 2.
    Horizontal stretch transformation: let
    f(ms)=11+et(sm)=kf(m-s)=\frac{1}{1+e^{t*(s-m)}}=k
    , we get
    t=ln(1kk)smt=\frac{ln(\frac{1-k}{k})}{s-m}
  3. 3.
    Horizontal move transformation: replace
    xx
    with
    xsx-s
    , we have
    f(x)=11+et(xs)f(x)=\frac{1}{1+e^{-t(x-s)}}
    , where
    t=ln(1kk)smt=\frac{ln(\frac{1-k}{k})}{s-m}
An example
For an article with 300 words, typically it takes a reader 1 minute (60 seconds) to read. Therefore, the POA that's related to the article is 1 POA.
In our mechanism design, we assign 99% POA to users who finish reading it with median reading time, that the reader would get 0.99 POA, rounding to 1 POA.
For a typical reader who spent 70 seconds reading the article, we have the following information:
  • tmr=60,pmr=0.99,tr=70,ts=600.5=30t_{mr}=60, p_{mr}=0.99, t_r=70,t_s=60*0.5=30
The time point he/ she would get would be:
t=log(10.990.99)/(3060)=0.15,POA=11+e0.15(7030)=0.997t = log(\frac{1-0.99}{0.99})/(30-60)=0.15, POA=\frac{1}{1+e^{-0.15*(70-30)}}=0.997

PoA Growth Implication

With the current setup, we aim to achieve the following relationship between a user’s reading time on a particular article and the accumulated PoA. Below is an example where we set the total POA accumulated from the article as 1.
By this design, the following will hold true during this PoA growth curve:
  • If a user read an article with median reading time, he/ she will accumulates
    pmp_m
    of total POA that’s assigned to the content. We typically set
    pmp_m
    to be 95%.
  • PoA accumulates fastest in the middle of the median reading time of a piece of content.
It’s also noted that the median PoA is based on our estimated reading time of a piece of content, computed based on its length and digestibility.
An example
With the aforementioned article as an example, we have John, Mike, and Linda. All of them read an article for a 1-minute read (for simplicity):
  • John browsed the article and quickly jumped into another article, spending 10 seconds on the article;
  • Mike quickly read through the article, spending 50 seconds;
  • Linda read the article carefully, spending 70 seconds. The POA for them are:
  • John:
    POA=11+e0.15(1030)=0.05POA=\frac{1}{1+e^{-0.15*(10-30)}}=0.05
  • Mike:
    POA=11+e0.15(5030)=0.95POA=\frac{1}{1+e^{-0.15*(50-30)}}=0.95
  • Linda:
    POA=11+e0.15(7030)=0.997=˜1POA=\frac{1}{1+e^{-0.15*(70-30)}}=0.997\~=1

Prevent Spam and POA minting

  • POA Growth function: Based on the common reading pattern, to eliminate shallow engagement and prevent POA minting
  • Engineering: One account only count one active window as reading, gated by t2 ID to distinguish human & bots
  • Daily POA Cap: The Standard daily reading cap as the active reading window is set to 120 mins per 24h per user. The users will need to further level up with proven contributions to expand the daily reading cap.
The POA implementation is a constant-evolving development that we'll learn from users' real engagements and actions to be further optimized, more robust, and humane.